@adonisjs/auth 9.0.0-9 → 9.0.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 (125) hide show
  1. package/build/chunk-3HZHOWKL.js +8 -0
  2. package/build/chunk-3HZHOWKL.js.map +1 -0
  3. package/build/chunk-52DVKHJR.js +246 -0
  4. package/build/chunk-52DVKHJR.js.map +1 -0
  5. package/build/chunk-BHB55PBJ.js +197 -0
  6. package/build/chunk-BHB55PBJ.js.map +1 -0
  7. package/build/chunk-CZCFTIBB.js +21 -0
  8. package/build/chunk-CZCFTIBB.js.map +1 -0
  9. package/build/index.d.ts +7 -6
  10. package/build/index.js +146 -15
  11. package/build/index.js.map +1 -0
  12. package/build/modules/access_tokens_guard/access_token.d.ts +137 -0
  13. package/build/modules/access_tokens_guard/crc32.d.ts +16 -0
  14. package/build/modules/access_tokens_guard/define_config.d.ts +17 -0
  15. package/build/modules/access_tokens_guard/guard.d.ts +81 -0
  16. package/build/modules/access_tokens_guard/main.d.ts +5 -0
  17. package/build/modules/access_tokens_guard/main.js +929 -0
  18. package/build/modules/access_tokens_guard/main.js.map +1 -0
  19. package/build/modules/access_tokens_guard/token_providers/db.d.ts +76 -0
  20. package/build/modules/access_tokens_guard/types.d.ts +208 -0
  21. package/build/modules/access_tokens_guard/types.js +1 -0
  22. package/build/modules/access_tokens_guard/types.js.map +1 -0
  23. package/build/modules/access_tokens_guard/user_providers/lucid.d.ts +53 -0
  24. package/build/modules/session_guard/define_config.d.ts +17 -0
  25. package/build/modules/session_guard/guard.d.ts +98 -0
  26. package/build/modules/session_guard/main.d.ts +5 -0
  27. package/build/modules/session_guard/main.js +741 -0
  28. package/build/modules/session_guard/main.js.map +1 -0
  29. package/build/modules/session_guard/remember_me_token.d.ts +88 -0
  30. package/build/modules/session_guard/token_providers/db.d.ts +69 -0
  31. package/build/modules/session_guard/types.d.ts +243 -0
  32. package/build/modules/session_guard/types.js +1 -0
  33. package/build/modules/session_guard/types.js.map +1 -0
  34. package/build/modules/session_guard/user_providers/lucid.d.ts +57 -0
  35. package/build/providers/auth_provider.d.ts +1 -1
  36. package/build/providers/auth_provider.js +31 -27
  37. package/build/providers/auth_provider.js.map +1 -0
  38. package/build/services/auth.d.ts +1 -1
  39. package/build/services/auth.js +10 -15
  40. package/build/services/auth.js.map +1 -0
  41. package/build/src/{auth/auth_manager.d.ts → auth_manager.d.ts} +8 -3
  42. package/build/src/authenticator.d.ts +81 -0
  43. package/build/src/{auth/authenticator_client.d.ts → authenticator_client.d.ts} +4 -4
  44. package/build/src/{auth/define_config.d.ts → define_config.d.ts} +0 -10
  45. package/build/src/errors.d.ts +105 -0
  46. package/build/src/{auth/middleware → middleware}/initialize_auth_middleware.d.ts +3 -2
  47. package/build/src/middleware/initialize_auth_middleware.js +17 -0
  48. package/build/src/middleware/initialize_auth_middleware.js.map +1 -0
  49. package/build/src/mixins/with_auth_finder.d.ts +156 -0
  50. package/build/src/{auth/plugins → plugins}/japa/api_client.d.ts +8 -8
  51. package/build/src/plugins/japa/api_client.js +59 -0
  52. package/build/src/plugins/japa/api_client.js.map +1 -0
  53. package/build/src/{auth/plugins → plugins}/japa/browser_client.d.ts +10 -7
  54. package/build/src/plugins/japa/browser_client.js +67 -0
  55. package/build/src/plugins/japa/browser_client.js.map +1 -0
  56. package/build/src/{auth/types.d.ts → types.d.ts} +31 -26
  57. package/build/src/types.js +1 -0
  58. package/build/src/types.js.map +1 -0
  59. package/package.json +88 -68
  60. package/build/configure.js +0 -47
  61. package/build/factories/basic_auth_guard_factory.d.ts +0 -12
  62. package/build/factories/basic_auth_guard_factory.js +0 -22
  63. package/build/factories/database_token_factory.d.ts +0 -36
  64. package/build/factories/database_token_factory.js +0 -54
  65. package/build/factories/database_user_provider.d.ts +0 -14
  66. package/build/factories/database_user_provider.js +0 -27
  67. package/build/factories/lucid_user_provider.d.ts +0 -28
  68. package/build/factories/lucid_user_provider.js +0 -68
  69. package/build/factories/main.d.ts +0 -4
  70. package/build/factories/main.js +0 -12
  71. package/build/factories/session_guard_factory.d.ts +0 -13
  72. package/build/factories/session_guard_factory.js +0 -24
  73. package/build/src/auth/auth_manager.js +0 -41
  74. package/build/src/auth/authenticator.d.ts +0 -63
  75. package/build/src/auth/authenticator.js +0 -129
  76. package/build/src/auth/authenticator_client.js +0 -59
  77. package/build/src/auth/debug.js +0 -10
  78. package/build/src/auth/define_config.js +0 -54
  79. package/build/src/auth/errors.d.ts +0 -90
  80. package/build/src/auth/errors.js +0 -201
  81. package/build/src/auth/middleware/initialize_auth_middleware.js +0 -25
  82. package/build/src/auth/plugins/japa/api_client.js +0 -63
  83. package/build/src/auth/plugins/japa/browser_client.js +0 -64
  84. package/build/src/auth/symbols.js +0 -17
  85. package/build/src/auth/types.js +0 -9
  86. package/build/src/auth/user_providers/main.d.ts +0 -15
  87. package/build/src/auth/user_providers/main.js +0 -22
  88. package/build/src/core/guard_user.d.ts +0 -26
  89. package/build/src/core/guard_user.js +0 -29
  90. package/build/src/core/token.d.ts +0 -89
  91. package/build/src/core/token.js +0 -114
  92. package/build/src/core/token_providers/database.d.ts +0 -77
  93. package/build/src/core/token_providers/database.js +0 -113
  94. package/build/src/core/types.d.ts +0 -178
  95. package/build/src/core/types.js +0 -9
  96. package/build/src/core/user_providers/database.d.ts +0 -78
  97. package/build/src/core/user_providers/database.js +0 -117
  98. package/build/src/core/user_providers/lucid.d.ts +0 -61
  99. package/build/src/core/user_providers/lucid.js +0 -122
  100. package/build/src/guards/basic_auth/define_config.d.ts +0 -16
  101. package/build/src/guards/basic_auth/define_config.js +0 -38
  102. package/build/src/guards/basic_auth/guard.d.ts +0 -70
  103. package/build/src/guards/basic_auth/guard.js +0 -190
  104. package/build/src/guards/basic_auth/main.d.ts +0 -2
  105. package/build/src/guards/basic_auth/main.js +0 -10
  106. package/build/src/guards/basic_auth/types.d.ts +0 -35
  107. package/build/src/guards/basic_auth/types.js +0 -9
  108. package/build/src/guards/session/define_config.d.ts +0 -23
  109. package/build/src/guards/session/define_config.js +0 -56
  110. package/build/src/guards/session/guard.d.ts +0 -123
  111. package/build/src/guards/session/guard.js +0 -510
  112. package/build/src/guards/session/main.d.ts +0 -3
  113. package/build/src/guards/session/main.js +0 -11
  114. package/build/src/guards/session/token.d.ts +0 -57
  115. package/build/src/guards/session/token.js +0 -58
  116. package/build/src/guards/session/token_providers/main.d.ts +0 -33
  117. package/build/src/guards/session/token_providers/main.js +0 -42
  118. package/build/src/guards/session/types.d.ts +0 -104
  119. package/build/src/guards/session/types.js +0 -9
  120. package/build/stubs/main.d.ts +0 -1
  121. package/build/stubs/main.js +0 -10
  122. package/build/stubs/middleware/auth_middleware.stub +0 -30
  123. package/build/stubs/middleware/guest_middleware.stub +0 -36
  124. /package/build/src/{auth/debug.d.ts → debug.d.ts} +0 -0
  125. /package/build/src/{auth/symbols.d.ts → symbols.d.ts} +0 -0
@@ -0,0 +1,67 @@
1
+ import {
2
+ debug_default
3
+ } from "../../../chunk-3HZHOWKL.js";
4
+ import "../../../chunk-CZCFTIBB.js";
5
+
6
+ // src/plugins/japa/browser_client.ts
7
+ import { decoratorsCollection } from "@japa/browser-client";
8
+ import { RuntimeException } from "@adonisjs/core/exceptions";
9
+ var authBrowserClient = (app) => {
10
+ const pluginFn = async function() {
11
+ debug_default("installing auth browser client plugin");
12
+ const auth = await app.container.make("auth.manager");
13
+ decoratorsCollection.register({
14
+ context(context) {
15
+ context.withGuard = function(guardName) {
16
+ return {
17
+ async loginAs(...args) {
18
+ const client = auth.createAuthenticatorClient();
19
+ const guard = client.use(guardName);
20
+ const requestData = await guard.authenticateAsClient(
21
+ ...args
22
+ );
23
+ if (requestData.headers) {
24
+ throw new RuntimeException(
25
+ `Cannot use "${guard.driverName}" guard with browser client`
26
+ );
27
+ }
28
+ if (requestData.cookies) {
29
+ debug_default("defining cookies with browser context %O", requestData.cookies);
30
+ Object.keys(requestData.cookies).forEach((cookie) => {
31
+ context.setCookie(cookie, requestData.cookies[cookie]);
32
+ });
33
+ }
34
+ if (requestData.session) {
35
+ debug_default("defining session with browser context %O", requestData.session);
36
+ context.setSession(requestData.session);
37
+ }
38
+ }
39
+ };
40
+ };
41
+ context.loginAs = async function(user, ...args) {
42
+ const client = auth.createAuthenticatorClient();
43
+ const guard = client.use();
44
+ const requestData = await guard.authenticateAsClient(user, ...args);
45
+ if (requestData.headers) {
46
+ throw new RuntimeException(`Cannot use "${guard.driverName}" guard with browser client`);
47
+ }
48
+ if (requestData.cookies) {
49
+ debug_default("defining cookies with browser context %O", requestData.cookies);
50
+ Object.keys(requestData.cookies).forEach((cookie) => {
51
+ context.setCookie(cookie, requestData.cookies[cookie]);
52
+ });
53
+ }
54
+ if (requestData.session) {
55
+ debug_default("defining session with browser context %O", requestData.session);
56
+ context.setSession(requestData.session);
57
+ }
58
+ };
59
+ }
60
+ });
61
+ };
62
+ return pluginFn;
63
+ };
64
+ export {
65
+ authBrowserClient
66
+ };
67
+ //# sourceMappingURL=browser_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/japa/browser_client.ts"],"sourcesContent":["/*\n * @adoniss/auth\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/// <reference types=\"@japa/plugin-adonisjs\" />\n/// <reference types=\"@adonisjs/session/plugins/browser_client\" />\n\nimport type { PluginFn } from '@japa/runner/types'\nimport { decoratorsCollection } from '@japa/browser-client'\nimport { RuntimeException } from '@adonisjs/core/exceptions'\nimport type { ApplicationService } from '@adonisjs/core/types'\n\nimport debug from '../../debug.js'\nimport type { Authenticators, GuardContract, GuardFactory } from '../../types.js'\n\ndeclare module 'playwright' {\n export interface BrowserContext {\n /**\n * Login a user using the default authentication guard when\n * using the browser context to make page visits\n */\n loginAs(\n ...args: {\n [K in keyof Authenticators]: Authenticators[K] extends GuardFactory\n ? ReturnType<Authenticators[K]> extends GuardContract<unknown>\n ? Parameters<ReturnType<Authenticators[K]>['authenticateAsClient']>\n : never\n : never\n }[keyof Authenticators]\n ): Promise<void>\n\n /**\n * Define the authentication guard for login\n */\n withGuard<K extends keyof Authenticators>(\n guard: K\n ): {\n /**\n * Login a user using a specific auth guard\n */\n loginAs(\n ...args: ReturnType<Authenticators[K]> extends GuardContract<unknown>\n ? Parameters<ReturnType<Authenticators[K]>['authenticateAsClient']>\n : never\n ): Promise<void>\n }\n }\n}\n\n/**\n * Browser API client to authenticate users when making\n * HTTP requests using the Japa Browser client.\n */\nexport const authBrowserClient = (app: ApplicationService) => {\n const pluginFn: PluginFn = async function () {\n debug('installing auth browser client plugin')\n\n const auth = await app.container.make('auth.manager')\n\n decoratorsCollection.register({\n context(context) {\n /**\n * Define the authentication guard for login and perform\n * login\n */\n context.withGuard = function (guardName) {\n return {\n async loginAs(...args) {\n const client = auth.createAuthenticatorClient()\n const guard = client.use(guardName) as GuardContract<unknown>\n const requestData = await guard.authenticateAsClient(\n ...(args as [user: unknown, ...any[]])\n )\n\n /* c8 ignore next 17 */\n if (requestData.headers) {\n throw new RuntimeException(\n `Cannot use \"${guard.driverName}\" guard with browser client`\n )\n }\n\n if (requestData.cookies) {\n debug('defining cookies with browser context %O', requestData.cookies)\n Object.keys(requestData.cookies).forEach((cookie) => {\n context.setCookie(cookie, requestData.cookies![cookie])\n })\n }\n\n if (requestData.session) {\n debug('defining session with browser context %O', requestData.session)\n context.setSession(requestData.session)\n }\n },\n }\n }\n\n /**\n * Login a user using the default authentication guard when\n * using the browser context to make page visits\n */\n context.loginAs = async function (user, ...args) {\n const client = auth.createAuthenticatorClient()\n const guard = client.use() as GuardContract<unknown>\n const requestData = await guard.authenticateAsClient(user, ...args)\n\n /* c8 ignore next 15 */\n if (requestData.headers) {\n throw new RuntimeException(`Cannot use \"${guard.driverName}\" guard with browser client`)\n }\n\n if (requestData.cookies) {\n debug('defining cookies with browser context %O', requestData.cookies)\n Object.keys(requestData.cookies).forEach((cookie) => {\n context.setCookie(cookie, requestData.cookies![cookie])\n })\n }\n\n if (requestData.session) {\n debug('defining session with browser context %O', requestData.session)\n context.setSession(requestData.session)\n }\n }\n },\n })\n }\n\n return pluginFn\n}\n"],"mappings":";;;;;;AAaA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AA4C1B,IAAM,oBAAoB,CAAC,QAA4B;AAC5D,QAAM,WAAqB,iBAAkB;AAC3C,kBAAM,uCAAuC;AAE7C,UAAM,OAAO,MAAM,IAAI,UAAU,KAAK,cAAc;AAEpD,yBAAqB,SAAS;AAAA,MAC5B,QAAQ,SAAS;AAKf,gBAAQ,YAAY,SAAU,WAAW;AACvC,iBAAO;AAAA,YACL,MAAM,WAAW,MAAM;AACrB,oBAAM,SAAS,KAAK,0BAA0B;AAC9C,oBAAM,QAAQ,OAAO,IAAI,SAAS;AAClC,oBAAM,cAAc,MAAM,MAAM;AAAA,gBAC9B,GAAI;AAAA,cACN;AAGA,kBAAI,YAAY,SAAS;AACvB,sBAAM,IAAI;AAAA,kBACR,eAAe,MAAM,UAAU;AAAA,gBACjC;AAAA,cACF;AAEA,kBAAI,YAAY,SAAS;AACvB,8BAAM,4CAA4C,YAAY,OAAO;AACrE,uBAAO,KAAK,YAAY,OAAO,EAAE,QAAQ,CAAC,WAAW;AACnD,0BAAQ,UAAU,QAAQ,YAAY,QAAS,MAAM,CAAC;AAAA,gBACxD,CAAC;AAAA,cACH;AAEA,kBAAI,YAAY,SAAS;AACvB,8BAAM,4CAA4C,YAAY,OAAO;AACrE,wBAAQ,WAAW,YAAY,OAAO;AAAA,cACxC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAMA,gBAAQ,UAAU,eAAgB,SAAS,MAAM;AAC/C,gBAAM,SAAS,KAAK,0BAA0B;AAC9C,gBAAM,QAAQ,OAAO,IAAI;AACzB,gBAAM,cAAc,MAAM,MAAM,qBAAqB,MAAM,GAAG,IAAI;AAGlE,cAAI,YAAY,SAAS;AACvB,kBAAM,IAAI,iBAAiB,eAAe,MAAM,UAAU,6BAA6B;AAAA,UACzF;AAEA,cAAI,YAAY,SAAS;AACvB,0BAAM,4CAA4C,YAAY,OAAO;AACrE,mBAAO,KAAK,YAAY,OAAO,EAAE,QAAQ,CAAC,WAAW;AACnD,sBAAQ,UAAU,QAAQ,YAAY,QAAS,MAAM,CAAC;AAAA,YACxD,CAAC;AAAA,UACH;AAEA,cAAI,YAAY,SAAS;AACvB,0BAAM,4CAA4C,YAAY,OAAO;AACrE,oBAAQ,WAAW,YAAY,OAAO;AAAA,UACxC;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
@@ -3,7 +3,8 @@ import type { ApplicationService, ConfigProvider } from '@adonisjs/core/types';
3
3
  import type { AuthManager } from './auth_manager.js';
4
4
  import type { GUARD_KNOWN_EVENTS } from './symbols.js';
5
5
  /**
6
- * The client response for authentication.
6
+ * Authentication response to login a user as a client.
7
+ * This response is used by Japa plugins
7
8
  */
8
9
  export interface AuthClientResponse {
9
10
  headers?: Record<string, any>;
@@ -11,9 +12,14 @@ export interface AuthClientResponse {
11
12
  session?: Record<string, any>;
12
13
  }
13
14
  /**
14
- * A set of properties a guard must implement.
15
+ * A set of properties a guard must implement to authenticate
16
+ * incoming HTTP requests
15
17
  */
16
18
  export interface GuardContract<User> {
19
+ /**
20
+ * A unique name for the guard driver
21
+ */
22
+ readonly driverName: string;
17
23
  /**
18
24
  * Reference to the currently authenticated user
19
25
  */
@@ -33,26 +39,24 @@ export interface GuardContract<User> {
33
39
  */
34
40
  authenticationAttempted: boolean;
35
41
  /**
36
- * Check if the current request has been
37
- * authenticated without throwing an
38
- * exception
39
- */
40
- check(): Promise<boolean>;
41
- /**
42
- * The method is used to authenticate the user as
43
- * client. This method should return cookies,
44
- * headers, or session state.
42
+ * Authenticates the current request and throws an
43
+ * exception if the request is not authenticated.
45
44
  */
46
- authenticateAsClient(user: User): Promise<AuthClientResponse>;
45
+ authenticate(): Promise<User>;
47
46
  /**
48
- * Authenticates the current request and throws
49
- * an exception if the request is not authenticated.
47
+ * Check if the current request has been authenticated
48
+ * without throwing an exception.
50
49
  */
51
- authenticate(): Promise<User>;
50
+ check(): Promise<boolean>;
52
51
  /**
53
- * A unique name for the guard driver
52
+ * The method is used to authenticate the user as client.
53
+ * This method should return cookies, headers, or
54
+ * session state.
55
+ *
56
+ * The rest of the arguments can be anything the guard wants
57
+ * to accept
54
58
  */
55
- driverName: string;
59
+ authenticateAsClient(user: User, ...args: any[]): Promise<AuthClientResponse>;
56
60
  /**
57
61
  * Aymbol for infer the events emitted by a specific
58
62
  * guard
@@ -60,11 +64,18 @@ export interface GuardContract<User> {
60
64
  [GUARD_KNOWN_EVENTS]: unknown;
61
65
  }
62
66
  /**
63
- * The authenticator guard factory method is called by the
64
- * Authenticator class to create an instance of a specific
65
- * guard during an HTTP request
67
+ * The guard factory method is called by the create an instance
68
+ * of a guard during an HTTP request
66
69
  */
67
70
  export type GuardFactory = (ctx: HttpContext) => GuardContract<unknown>;
71
+ /**
72
+ * Config provider for registering guards. The "name" property
73
+ * is reference to the object key to which the guard is
74
+ * assigned.
75
+ */
76
+ export type GuardConfigProvider<Factory extends GuardFactory> = {
77
+ resolver: (name: string, app: ApplicationService) => Promise<Factory>;
78
+ };
68
79
  /**
69
80
  * Authenticators are inferred inside the user application
70
81
  * from the config file
@@ -95,10 +106,4 @@ export type InferAuthEvents<KnownAuthenticators extends Record<string, GuardFact
95
106
  */
96
107
  export interface AuthService extends AuthManager<Authenticators extends Record<string, GuardFactory> ? Authenticators : never> {
97
108
  }
98
- /**
99
- * Config provider for exporting guard
100
- */
101
- export type GuardConfigProvider<Guard extends GuardFactory> = {
102
- resolver: (name: string, app: ApplicationService) => Promise<Guard>;
103
- };
104
109
  export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,55 +1,48 @@
1
1
  {
2
2
  "name": "@adonisjs/auth",
3
- "version": "9.0.0-9",
3
+ "version": "9.0.0",
4
4
  "description": "Official authentication provider for Adonis framework",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
7
7
  "files": [
8
- "build/configure.js",
9
- "build/configure.d.ts",
10
- "build/index.js",
11
- "build/index.d.ts",
12
- "build/factories",
13
- "build/providers",
14
- "build/services",
15
- "build/src",
16
- "build/stubs"
8
+ "build",
9
+ "!build/bin",
10
+ "!build/tests",
11
+ "!build/factories"
17
12
  ],
18
13
  "engines": {
19
14
  "node": ">=18.16.0"
20
15
  },
21
16
  "exports": {
22
17
  ".": "./build/index.js",
23
- "./types": "./build/src/auth/types.js",
18
+ "./types": "./build/src/types.js",
24
19
  "./auth_provider": "./build/providers/auth_provider.js",
25
- "./plugins/api_client": "./build/src/auth/plugins/japa/api_client.js",
26
- "./plugins/browser_client": "./build/src/auth/plugins/japa/browser_client.js",
20
+ "./plugins/api_client": "./build/src/plugins/japa/api_client.js",
21
+ "./plugins/browser_client": "./build/src/plugins/japa/browser_client.js",
27
22
  "./services/main": "./build/services/auth.js",
28
- "./core/token": "./build/src/core/token.js",
29
- "./core/guard_user": "./build/src/core/guard_user.js",
30
- "./core/user_providers/*": "./build/src/core/user_providers/*.js",
31
- "./core/token_providers/*": "./build/src/core/token_providers/*.js",
32
- "./types/core": "./build/src/core/types.js",
33
- "./session": "./build/src/guards/session/main.js",
34
- "./basic_auth": "./build/src/guards/basic_auth/main.js",
35
- "./initialize_auth_middleware": "./build/src/auth/middleware/initialize_auth_middleware.js",
36
- "./types/session": "./build/src/guards/session/types.js"
23
+ "./initialize_auth_middleware": "./build/src/middleware/initialize_auth_middleware.js",
24
+ "./access_tokens": "./build/modules/access_tokens_guard/main.js",
25
+ "./types/access_tokens": "./build/modules/access_tokens_guard/types.js",
26
+ "./session": "./build/modules/session_guard/main.js",
27
+ "./types/session": "./build/modules/session_guard/types.js"
37
28
  },
38
29
  "scripts": {
39
30
  "pretest": "npm run lint",
40
31
  "test": "c8 npm run quick:test",
41
- "quick:test": "cross-env NODE_DEBUG=\"adonisjs:auth\" node --enable-source-maps --loader=ts-node/esm ./bin/test.js",
42
32
  "clean": "del-cli build",
43
- "copy:templates": "copyfiles \"stubs/**/**/*.stub\" build",
44
- "compile": "npm run lint && npm run clean && tsc && npm run copy:templates",
33
+ "typecheck": "tsc --noEmit",
34
+ "copy:templates": "copyfiles \"stubs/**/*.stub\" --up=\"1\" build",
35
+ "precompile": "npm run lint && npm run clean",
36
+ "compile": "tsup-node && tsc --emitDeclarationOnly --declaration",
37
+ "postcompile": "npm run copy:templates",
45
38
  "build": "npm run compile",
46
- "release": "np",
47
- "version": "npm run build",
48
39
  "prepublishOnly": "npm run build",
49
40
  "lint": "eslint . --ext=.ts",
50
- "typecheck": "tsc --noEmit",
41
+ "format": "prettier --write .",
42
+ "release": "np",
43
+ "version": "npm run build",
51
44
  "sync-labels": "github-label-sync --labels .github/labels.json adonisjs/auth",
52
- "format": "prettier --write ."
45
+ "quick:test": "cross-env NODE_DEBUG=\"adonisjs:auth:*\" node --enable-source-maps --loader=ts-node/esm ./bin/test.js"
53
46
  },
54
47
  "keywords": [
55
48
  "adonisjs",
@@ -67,45 +60,50 @@
67
60
  "url": "https://github.com/adonisjs/auth/issues"
68
61
  },
69
62
  "devDependencies": {
70
- "@adonisjs/assembler": "^6.1.3-28",
71
- "@adonisjs/core": "^6.1.5-32",
72
- "@adonisjs/eslint-config": "^1.1.9",
73
- "@adonisjs/i18n": "^2.0.0-8",
74
- "@adonisjs/lucid": "^19.0.0-4",
75
- "@adonisjs/prettier-config": "^1.1.9",
76
- "@adonisjs/session": "^7.0.0-14",
77
- "@adonisjs/tsconfig": "^1.1.9",
78
- "@commitlint/cli": "^18.4.3",
79
- "@commitlint/config-conventional": "^18.4.3",
80
- "@japa/api-client": "^2.0.1",
81
- "@japa/assert": "^2.0.1",
82
- "@japa/browser-client": "^2.0.1",
83
- "@japa/expect-type": "^2.0.0",
84
- "@japa/file-system": "^2.0.1",
85
- "@japa/plugin-adonisjs": "^2.0.1",
86
- "@japa/runner": "^3.1.0",
87
- "@japa/snapshot": "^2.0.3",
88
- "@swc/core": "^1.3.99",
89
- "@types/basic-auth": "^1.1.6",
90
- "@types/luxon": "^3.3.5",
91
- "@types/node": "^20.10.0",
63
+ "@adonisjs/assembler": "^7.1.0",
64
+ "@adonisjs/core": "^6.2.0",
65
+ "@adonisjs/eslint-config": "^1.2.1",
66
+ "@adonisjs/i18n": "^2.0.0",
67
+ "@adonisjs/lucid": "^19.0.0",
68
+ "@adonisjs/prettier-config": "^1.2.1",
69
+ "@adonisjs/session": "^7.0.0",
70
+ "@adonisjs/tsconfig": "^1.2.1",
71
+ "@commitlint/cli": "^18.4.4",
72
+ "@commitlint/config-conventional": "^18.4.4",
73
+ "@japa/api-client": "^2.0.2",
74
+ "@japa/assert": "^2.1.0",
75
+ "@japa/browser-client": "^2.0.2",
76
+ "@japa/expect-type": "^2.0.1",
77
+ "@japa/file-system": "^2.1.1",
78
+ "@japa/plugin-adonisjs": "^3.0.0",
79
+ "@japa/runner": "^3.1.1",
80
+ "@japa/snapshot": "^2.0.4",
81
+ "@swc/core": "^1.3.102",
82
+ "@types/basic-auth": "^1.1.7",
83
+ "@types/luxon": "^3.4.0",
84
+ "@types/node": "^20.10.8",
92
85
  "@types/set-cookie-parser": "^2.4.7",
93
- "c8": "^8.0.1",
86
+ "@types/sinon": "^17.0.3",
87
+ "c8": "^9.0.0",
88
+ "convert-hrtime": "^5.0.0",
94
89
  "copyfiles": "^2.4.1",
95
90
  "cross-env": "^7.0.3",
96
91
  "del-cli": "^5.1.0",
97
- "eslint": "^8.54.0",
92
+ "eslint": "^8.56.0",
98
93
  "github-label-sync": "^2.3.1",
99
94
  "husky": "^8.0.3",
100
95
  "luxon": "^3.4.4",
101
- "np": "^8.0.4",
102
- "playwright": "^1.40.0",
103
- "prettier": "^3.1.0",
96
+ "nock": "^13.5.0",
97
+ "np": "^9.2.0",
98
+ "playwright": "^1.40.1",
99
+ "prettier": "^3.1.1",
104
100
  "set-cookie-parser": "^2.6.0",
105
- "sqlite3": "^5.1.6",
101
+ "sinon": "^17.0.1",
102
+ "sqlite3": "^5.1.7",
106
103
  "timekeeper": "^2.3.1",
107
- "ts-node": "^10.9.1",
108
- "typescript": "5.2.2"
104
+ "ts-node": "^10.9.2",
105
+ "tsup": "^8.0.1",
106
+ "typescript": "^5.3.3"
109
107
  },
110
108
  "prettier": "@adonisjs/prettier-config",
111
109
  "eslintConfig": {
@@ -118,11 +116,11 @@
118
116
  },
119
117
  "publishConfig": {
120
118
  "access": "public",
121
- "tag": "next"
119
+ "tag": "latest"
122
120
  },
123
121
  "np": {
124
122
  "message": "chore(release): %s",
125
- "tag": "next",
123
+ "tag": "latest",
126
124
  "branch": "main",
127
125
  "anyBranch": false
128
126
  },
@@ -133,20 +131,21 @@
133
131
  ],
134
132
  "exclude": [
135
133
  "tests/**",
134
+ "backup/**",
136
135
  "factories/**"
137
136
  ]
138
137
  },
139
138
  "dependencies": {
140
- "@poppinss/utils": "^6.5.1",
139
+ "@adonisjs/presets": "^2.2.0",
141
140
  "basic-auth": "^2.0.1"
142
141
  },
143
142
  "peerDependencies": {
144
- "@adonisjs/core": "^6.1.5-32",
145
- "@adonisjs/lucid": "^19.0.0-4",
146
- "@adonisjs/session": "^7.0.0-14",
147
- "@japa/api-client": "^2.0.1",
148
- "@japa/browser-client": "^2.0.1",
149
- "@japa/plugin-adonisjs": "^2.0.1"
143
+ "@adonisjs/core": "^6.2.0",
144
+ "@adonisjs/lucid": "^19.0.0",
145
+ "@adonisjs/session": "^7.0.0",
146
+ "@japa/api-client": "^2.0.2",
147
+ "@japa/browser-client": "^2.0.2",
148
+ "@japa/plugin-adonisjs": "^3.0.0"
150
149
  },
151
150
  "peerDependenciesMeta": {
152
151
  "@adonisjs/lucid": {
@@ -164,5 +163,26 @@
164
163
  "@japa/plugin-adonisjs": {
165
164
  "optional": true
166
165
  }
166
+ },
167
+ "tsup": {
168
+ "entry": [
169
+ "./index.ts",
170
+ "./src/types.ts",
171
+ "./providers/auth_provider.ts",
172
+ "./src/plugins/japa/api_client.ts",
173
+ "./src/plugins/japa/browser_client.ts",
174
+ "./services/auth.ts",
175
+ "./src/middleware/initialize_auth_middleware.ts",
176
+ "./modules/access_tokens_guard/main.ts",
177
+ "./modules/access_tokens_guard/types.ts",
178
+ "./modules/session_guard/main.ts",
179
+ "./modules/session_guard/types.ts"
180
+ ],
181
+ "outDir": "./build",
182
+ "clean": true,
183
+ "format": "esm",
184
+ "dts": false,
185
+ "sourcemap": true,
186
+ "target": "esnext"
167
187
  }
168
188
  }
@@ -1,47 +0,0 @@
1
- /*
2
- * @adonisjs/auth
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- /**
10
- * Configures the auth package
11
- */
12
- export async function configure(command) {
13
- const codemods = await command.createCodemods();
14
- /**
15
- * Publish middleware to user application
16
- */
17
- await command.publishStub('middleware/auth_middleware.stub', {
18
- entity: command.app.generators.createEntity('auth'),
19
- });
20
- await command.publishStub('middleware/guest_middleware.stub', {
21
- entity: command.app.generators.createEntity('guest'),
22
- });
23
- /**
24
- * Register provider
25
- */
26
- await codemods.updateRcFile((rcFile) => {
27
- rcFile.addProvider('@adonisjs/auth/auth_provider');
28
- });
29
- /**
30
- * Register middleware
31
- */
32
- await codemods.registerMiddleware('router', [
33
- {
34
- path: '@adonisjs/auth/initialize_auth_middleware',
35
- },
36
- ]);
37
- await codemods.registerMiddleware('named', [
38
- {
39
- name: 'auth',
40
- path: '#middleware/auth_middleware',
41
- },
42
- {
43
- name: 'guest',
44
- path: '#middleware/guest_middleware',
45
- },
46
- ]);
47
- }
@@ -1,12 +0,0 @@
1
- import type { HttpContext } from '@adonisjs/core/http';
2
- import { FactoryUser, TestLucidUserProvider } from './lucid_user_provider.js';
3
- import { BasicAuthGuard } from '../src/guards/basic_auth/guard.js';
4
- import type { UserProviderContract } from '../src/core/types.js';
5
- /**
6
- * Exposes the API to create a basic auth guard for testing. Under
7
- * the hood configures Lucid models for looking up users
8
- */
9
- export declare class BasicAuthGuardFactory {
10
- merge(): this;
11
- create<UserProvider extends UserProviderContract<unknown> = TestLucidUserProvider<typeof FactoryUser>>(ctx: HttpContext, provider?: UserProvider): BasicAuthGuard<TestLucidUserProvider<typeof FactoryUser> | UserProvider>;
12
- }
@@ -1,22 +0,0 @@
1
- /*
2
- * @adonisjs/auth
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- import { LucidUserProviderFactory, } from './lucid_user_provider.js';
10
- import { BasicAuthGuard } from '../src/guards/basic_auth/guard.js';
11
- /**
12
- * Exposes the API to create a basic auth guard for testing. Under
13
- * the hood configures Lucid models for looking up users
14
- */
15
- export class BasicAuthGuardFactory {
16
- merge() {
17
- return this;
18
- }
19
- create(ctx, provider) {
20
- return new BasicAuthGuard('basic', ctx, provider || new LucidUserProviderFactory().create());
21
- }
22
- }
@@ -1,36 +0,0 @@
1
- import { Database } from '@adonisjs/lucid/database';
2
- import { Token } from '../src/core/token.js';
3
- import { DatabaseTokenProvider } from '../src/core/token_providers/database.js';
4
- /**
5
- * Representation of token used for testing
6
- */
7
- export declare class TestToken extends Token {
8
- type: string;
9
- userId: string | number;
10
- static create(userId: number | string, expiry: string | number, size?: number): TestToken;
11
- }
12
- /**
13
- * Test implementation of the database token provider
14
- */
15
- export declare class TestDatabaseTokenProvider extends DatabaseTokenProvider<TestToken> {
16
- protected prepareToken(dbRow: {
17
- series: string;
18
- user_id: string | number;
19
- type: string;
20
- token: string;
21
- created_at: Date;
22
- expires_at: Date | null;
23
- }): TestToken;
24
- protected parseToken(token: TestToken): {
25
- series: string;
26
- user_id: string | number;
27
- type: string;
28
- token: string;
29
- created_at: Date;
30
- updated_at: Date;
31
- expires_at: Date | null;
32
- };
33
- }
34
- export declare class DatabaseTokenProviderFactory {
35
- create(db: Database): TestDatabaseTokenProvider;
36
- }
@@ -1,54 +0,0 @@
1
- /*
2
- * @adonisjs/auth
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- import { Token } from '../src/core/token.js';
10
- import { DatabaseTokenProvider } from '../src/core/token_providers/database.js';
11
- /**
12
- * Representation of token used for testing
13
- */
14
- export class TestToken extends Token {
15
- type = 'test_token';
16
- static create(userId, expiry, size) {
17
- const { series, value, hash } = this.seed(size);
18
- const token = new TestToken(series, value, hash);
19
- token.setExpiry(expiry);
20
- token.userId = userId;
21
- return token;
22
- }
23
- }
24
- /**
25
- * Test implementation of the database token provider
26
- */
27
- export class TestDatabaseTokenProvider extends DatabaseTokenProvider {
28
- prepareToken(dbRow) {
29
- const token = new TestToken(dbRow.series, undefined, dbRow.token);
30
- token.createdAt = dbRow.created_at;
31
- if (dbRow.expires_at) {
32
- token.expiresAt = dbRow.expires_at;
33
- }
34
- return token;
35
- }
36
- parseToken(token) {
37
- return {
38
- series: token.series,
39
- user_id: token.userId,
40
- type: token.type,
41
- token: token.hash,
42
- created_at: token.createdAt,
43
- updated_at: token.createdAt,
44
- expires_at: token.expiresAt || null,
45
- };
46
- }
47
- }
48
- export class DatabaseTokenProviderFactory {
49
- create(db) {
50
- return new TestDatabaseTokenProvider(db, {
51
- table: 'remember_me_tokens',
52
- });
53
- }
54
- }
@@ -1,14 +0,0 @@
1
- import type { Database } from '@adonisjs/lucid/database';
2
- import { BaseDatabaseUserProvider } from '../src/core/user_providers/database.js';
3
- export declare class TestDatabaseUserProvider<RealUser extends Record<string, any>> extends BaseDatabaseUserProvider<RealUser> {
4
- }
5
- /**
6
- * Creates an instance of the DatabaseUserProvider with sane
7
- * defaults for testing
8
- */
9
- export declare class DatabaseUserProviderFactory {
10
- create(db: Database): TestDatabaseUserProvider<{
11
- email: any;
12
- username: any;
13
- }>;
14
- }
@@ -1,27 +0,0 @@
1
- /*
2
- * @adonisjs/auth
3
- *
4
- * (c) AdonisJS
5
- *
6
- * For the full copyright and license information, please view the LICENSE
7
- * file that was distributed with this source code.
8
- */
9
- import { Hash } from '@adonisjs/core/hash';
10
- import { Scrypt } from '@adonisjs/core/hash/drivers/scrypt';
11
- import { BaseDatabaseUserProvider } from '../src/core/user_providers/database.js';
12
- export class TestDatabaseUserProvider extends BaseDatabaseUserProvider {
13
- }
14
- /**
15
- * Creates an instance of the DatabaseUserProvider with sane
16
- * defaults for testing
17
- */
18
- export class DatabaseUserProviderFactory {
19
- create(db) {
20
- return new TestDatabaseUserProvider(db, new Hash(new Scrypt({})), {
21
- id: 'id',
22
- table: 'users',
23
- passwordColumnName: 'password',
24
- uids: ['email', 'username'],
25
- });
26
- }
27
- }