@adonisjs/auth 8.2.3 → 9.0.0-1

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/LICENSE.md +1 -1
  2. package/README.md +19 -40
  3. package/build/configure.d.ts +5 -0
  4. package/build/configure.js +55 -0
  5. package/build/factories/database_token_factory.d.ts +36 -0
  6. package/build/factories/database_token_factory.js +54 -0
  7. package/build/factories/database_user_provider.d.ts +14 -0
  8. package/build/factories/database_user_provider.js +27 -0
  9. package/build/factories/lucid_user_provider.d.ts +28 -0
  10. package/build/factories/lucid_user_provider.js +68 -0
  11. package/build/factories/main.d.ts +4 -0
  12. package/build/factories/main.js +12 -0
  13. package/build/factories/session_guard_factory.d.ts +13 -0
  14. package/build/factories/session_guard_factory.js +24 -0
  15. package/build/index.d.ts +7 -0
  16. package/build/index.js +15 -0
  17. package/build/providers/auth_provider.d.ts +12 -0
  18. package/build/providers/auth_provider.js +27 -0
  19. package/build/services/auth.d.ts +3 -0
  20. package/build/services/auth.js +17 -0
  21. package/build/src/auth/auth_manager.d.ts +22 -0
  22. package/build/src/auth/auth_manager.js +34 -0
  23. package/build/src/auth/authenticator.d.ts +56 -0
  24. package/build/src/auth/authenticator.js +122 -0
  25. package/build/src/auth/debug.d.ts +3 -0
  26. package/build/{adonis-typings/container.js → src/auth/debug.js} +3 -1
  27. package/build/src/auth/define_config.d.ts +30 -0
  28. package/build/src/auth/define_config.js +54 -0
  29. package/build/src/auth/errors.d.ts +82 -0
  30. package/build/src/auth/errors.js +181 -0
  31. package/build/src/auth/middleware/auth_middleware.d.ts +13 -0
  32. package/build/src/auth/middleware/auth_middleware.js +6 -0
  33. package/build/src/auth/middleware/initialize_auth_middleware.d.ts +18 -0
  34. package/build/src/auth/middleware/initialize_auth_middleware.js +25 -0
  35. package/build/src/auth/symbols.d.ts +9 -0
  36. package/build/src/auth/symbols.js +17 -0
  37. package/build/src/auth/types.d.ts +75 -0
  38. package/build/{adonis-typings/context.js → src/auth/types.js} +2 -1
  39. package/build/src/auth/user_providers/main.d.ts +15 -0
  40. package/build/src/auth/user_providers/main.js +22 -0
  41. package/build/src/core/guard_user.d.ts +26 -0
  42. package/build/src/core/guard_user.js +29 -0
  43. package/build/src/core/token.d.ts +89 -0
  44. package/build/src/core/token.js +114 -0
  45. package/build/src/core/token_providers/database.d.ts +77 -0
  46. package/build/src/core/token_providers/database.js +113 -0
  47. package/build/src/core/types.d.ts +178 -0
  48. package/build/{adonis-typings/auth.js → src/core/types.js} +2 -1
  49. package/build/src/core/user_providers/database.d.ts +78 -0
  50. package/build/src/core/user_providers/database.js +117 -0
  51. package/build/src/core/user_providers/lucid.d.ts +61 -0
  52. package/build/src/core/user_providers/lucid.js +122 -0
  53. package/build/src/guards/session/define_config.d.ts +23 -0
  54. package/build/src/guards/session/define_config.js +56 -0
  55. package/build/src/guards/session/guard.d.ts +112 -0
  56. package/build/src/guards/session/guard.js +454 -0
  57. package/build/src/guards/session/main.d.ts +3 -0
  58. package/build/src/guards/session/main.js +11 -0
  59. package/build/src/guards/session/token.d.ts +57 -0
  60. package/build/src/guards/session/token.js +58 -0
  61. package/build/src/guards/session/token_providers/main.d.ts +33 -0
  62. package/build/src/guards/session/token_providers/main.js +42 -0
  63. package/build/src/guards/session/types.d.ts +96 -0
  64. package/build/{adonis-typings/events.js → src/guards/session/types.js} +2 -1
  65. package/build/stubs/config.stub +35 -0
  66. package/build/stubs/main.d.ts +1 -0
  67. package/build/{adonis-typings/tests.js → stubs/main.js} +2 -3
  68. package/package.json +99 -91
  69. package/build/adonis-typings/auth.d.ts +0 -635
  70. package/build/adonis-typings/container.d.ts +0 -6
  71. package/build/adonis-typings/context.d.ts +0 -6
  72. package/build/adonis-typings/events.d.ts +0 -10
  73. package/build/adonis-typings/index.d.ts +0 -5
  74. package/build/adonis-typings/index.js +0 -13
  75. package/build/adonis-typings/tests.d.ts +0 -23
  76. package/build/instructions.js +0 -338
  77. package/build/providers/AuthProvider.d.ts +0 -30
  78. package/build/providers/AuthProvider.js +0 -69
  79. package/build/src/Auth/index.d.ts +0 -97
  80. package/build/src/Auth/index.js +0 -155
  81. package/build/src/AuthManager/index.d.ts +0 -117
  82. package/build/src/AuthManager/index.js +0 -262
  83. package/build/src/Bindings/Tests.d.ts +0 -6
  84. package/build/src/Bindings/Tests.js +0 -69
  85. package/build/src/Clients/Oat/index.d.ts +0 -50
  86. package/build/src/Clients/Oat/index.js +0 -123
  87. package/build/src/Clients/Session/index.d.ts +0 -34
  88. package/build/src/Clients/Session/index.js +0 -72
  89. package/build/src/Exceptions/AuthenticationException.d.ts +0 -47
  90. package/build/src/Exceptions/AuthenticationException.js +0 -142
  91. package/build/src/Exceptions/InvalidCredentialsException.d.ts +0 -34
  92. package/build/src/Exceptions/InvalidCredentialsException.js +0 -112
  93. package/build/src/Guards/Base/index.d.ts +0 -75
  94. package/build/src/Guards/Base/index.js +0 -138
  95. package/build/src/Guards/BasicAuth/index.d.ts +0 -67
  96. package/build/src/Guards/BasicAuth/index.js +0 -181
  97. package/build/src/Guards/Oat/index.d.ts +0 -149
  98. package/build/src/Guards/Oat/index.js +0 -347
  99. package/build/src/Guards/Session/index.d.ts +0 -127
  100. package/build/src/Guards/Session/index.js +0 -338
  101. package/build/src/TokenProviders/Database/index.d.ts +0 -43
  102. package/build/src/TokenProviders/Database/index.js +0 -126
  103. package/build/src/TokenProviders/Redis/index.d.ts +0 -44
  104. package/build/src/TokenProviders/Redis/index.js +0 -129
  105. package/build/src/Tokens/OpaqueToken/index.d.ts +0 -46
  106. package/build/src/Tokens/OpaqueToken/index.js +0 -43
  107. package/build/src/Tokens/ProviderToken/index.d.ts +0 -23
  108. package/build/src/Tokens/ProviderToken/index.js +0 -27
  109. package/build/src/UserProviders/Database/User.d.ts +0 -28
  110. package/build/src/UserProviders/Database/User.js +0 -74
  111. package/build/src/UserProviders/Database/index.d.ts +0 -75
  112. package/build/src/UserProviders/Database/index.js +0 -141
  113. package/build/src/UserProviders/Lucid/User.d.ts +0 -28
  114. package/build/src/UserProviders/Lucid/User.js +0 -74
  115. package/build/src/UserProviders/Lucid/index.d.ts +0 -72
  116. package/build/src/UserProviders/Lucid/index.js +0 -146
  117. package/build/standalone.d.ts +0 -1
  118. package/build/standalone.js +0 -13
  119. package/build/templates/config/auth.txt +0 -34
  120. package/build/templates/config/partials/api-guard.txt +0 -22
  121. package/build/templates/config/partials/basic-guard.txt +0 -19
  122. package/build/templates/config/partials/tokens-provider-database.txt +0 -19
  123. package/build/templates/config/partials/tokens-provider-redis.txt +0 -22
  124. package/build/templates/config/partials/user-provider-database.txt +0 -43
  125. package/build/templates/config/partials/user-provider-lucid.txt +0 -45
  126. package/build/templates/config/partials/web-guard.txt +0 -17
  127. package/build/templates/contract/auth.txt +0 -55
  128. package/build/templates/contract/partials/api-guard.txt +0 -14
  129. package/build/templates/contract/partials/basic-guard.txt +0 -14
  130. package/build/templates/contract/partials/user-provider-database.txt +0 -16
  131. package/build/templates/contract/partials/user-provider-lucid.txt +0 -16
  132. package/build/templates/contract/partials/web-guard.txt +0 -14
  133. package/build/templates/middleware/Auth.txt +0 -76
  134. package/build/templates/middleware/SilentAuth.txt +0 -21
  135. package/build/templates/migrations/api_tokens.txt +0 -25
  136. package/build/templates/migrations/auth.txt +0 -24
  137. package/build/templates/model.txt +0 -30
@@ -0,0 +1,96 @@
1
+ import { Exception } from '@poppinss/utils';
2
+ import type { RememberMeToken } from './token.js';
3
+ import type { UserProviderContract, TokenProviderContract, DatabaseTokenProviderOptions } from '../../core/types.js';
4
+ /**
5
+ * The SessionUserProvider is used to lookup a user for session based authentication.
6
+ */
7
+ export interface SessionUserProviderContract<RealUser> extends UserProviderContract<RealUser> {
8
+ }
9
+ /**
10
+ * The RememberMeProviderContract is used to persist and lookup tokens for
11
+ * session based authentication with remember me option.
12
+ */
13
+ export interface RememberMeProviderContract extends TokenProviderContract<RememberMeToken> {
14
+ }
15
+ /**
16
+ * Config accepted by the session guard
17
+ */
18
+ export type SessionGuardConfig = {
19
+ /**
20
+ * The expiry for the remember me cookie.
21
+ *
22
+ * Defaults to "5 years"
23
+ */
24
+ rememberMeTokenAge?: string | number;
25
+ };
26
+ /**
27
+ * Events emitted by the session guard
28
+ */
29
+ export type SessionGuardEvents<User> = {
30
+ /**
31
+ * The event is emitted when the user credentials
32
+ * have been verified successfully.
33
+ */
34
+ 'session_auth:credentials_verified': {
35
+ uid: string;
36
+ user: User;
37
+ };
38
+ /**
39
+ * The event is emitted when unable to login the
40
+ * user.
41
+ */
42
+ 'session_auth:login_failed': {
43
+ error: Exception;
44
+ user: User | null;
45
+ };
46
+ /**
47
+ * The event is emitted when login is attempted for
48
+ * a given user.
49
+ */
50
+ 'session_auth:login_attempted': {
51
+ user: User;
52
+ };
53
+ /**
54
+ * The event is emitted when user has been logged in
55
+ * successfully
56
+ */
57
+ 'session_auth:login_succeeded': {
58
+ user: User;
59
+ sessionId: string;
60
+ rememberMeToken?: RememberMeToken;
61
+ };
62
+ /**
63
+ * Attempting to authenticate the user
64
+ */
65
+ 'session_auth:authentication_attempted': {
66
+ sessionId: string;
67
+ };
68
+ /**
69
+ * Authentication was successful
70
+ */
71
+ 'session_auth:authentication_succeeded': {
72
+ user: User;
73
+ sessionId: string;
74
+ rememberMeToken?: RememberMeToken;
75
+ };
76
+ /**
77
+ * Authentication failed
78
+ */
79
+ 'session_auth:authentication_failed': {
80
+ error: Exception;
81
+ sessionId: string;
82
+ };
83
+ /**
84
+ * The event is emitted when user has been logged out
85
+ * sucessfully
86
+ */
87
+ 'session_auth:logged_out': {
88
+ user: User;
89
+ sessionId: string;
90
+ };
91
+ };
92
+ /**
93
+ * Options accepted by the database implementation of the
94
+ * RememberMeProvider
95
+ */
96
+ export type DatabaseRememberMeProviderOptions = DatabaseTokenProviderOptions;
@@ -1,8 +1,9 @@
1
1
  /*
2
2
  * @adonisjs/auth
3
3
  *
4
- * (c) Harminder Virk <virk@adonisjs.com>
4
+ * (c) AdonisJS
5
5
  *
6
6
  * For the full copyright and license information, please view the LICENSE
7
7
  * file that was distributed with this source code.
8
8
  */
9
+ export {};
@@ -0,0 +1,35 @@
1
+ {{{
2
+ exports({ to: app.configPath('auth.ts') })
3
+ }}}
4
+ import { defineConfig, providers } from '@adonisjs/auth'
5
+ {{#if provider === 'lucid'}}
6
+ /**
7
+ * Using the "models/user" model to find users during
8
+ * login and authentication
9
+ */
10
+ const userProvider = providers.lucid({
11
+ model: () => import('#models/user'),
12
+ uids: ['email'],
13
+ })
14
+ {{/if}}
15
+ {{#if provider === 'db'}}
16
+ /**
17
+ * Using Lucid query builder to directly query the database
18
+ * to find users during login and authentication.
19
+ */
20
+ const userProvider = providers.db({
21
+ table: 'users',
22
+ passwordColumnName: 'password',
23
+ id: 'id',
24
+ uids: ['email'],
25
+ })
26
+ {{/if}}
27
+
28
+ const authConfig = defineConfig({
29
+ guards: {}
30
+ })
31
+
32
+ export default authConfig
33
+ declare module '@adonisjs/auth/types' {
34
+ interface Authenticators extends InferAuthenticators<typeof authConfig> {}
35
+ }
@@ -0,0 +1 @@
1
+ export declare const stubsRoot: string;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * @adonisjs/auth
4
3
  *
@@ -7,5 +6,5 @@
7
6
  * For the full copyright and license information, please view the LICENSE
8
7
  * file that was distributed with this source code.
9
8
  */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- require("@japa/api-client");
9
+ import { getDirname } from '@poppinss/utils';
10
+ export const stubsRoot = getDirname(import.meta.url);
package/package.json CHANGED
@@ -1,39 +1,58 @@
1
1
  {
2
2
  "name": "@adonisjs/auth",
3
- "version": "8.2.3",
3
+ "version": "9.0.0-1",
4
4
  "description": "Official authentication provider for Adonis framework",
5
- "types": "build/adonis-typings/index.d.ts",
6
- "main": "build/providers/AuthProvider.js",
5
+ "type": "module",
6
+ "main": "build/index.js",
7
7
  "files": [
8
- "build/adonis-typings",
8
+ "build/configure.js",
9
+ "build/configure.d.ts",
10
+ "build/index.js",
11
+ "build/index.d.ts",
12
+ "build/factories",
9
13
  "build/providers",
10
- "build/templates",
14
+ "build/services",
11
15
  "build/src",
12
- "build/instructions.js",
13
- "build/standalone.js",
14
- "build/standalone.d.ts"
16
+ "build/stubs"
15
17
  ],
18
+ "engines": {
19
+ "node": ">=18.16.0"
20
+ },
21
+ "exports": {
22
+ ".": "./build/index.js",
23
+ "./types": "./build/src/auth/types.js",
24
+ "./auth_provider": "./build/providers/auth_provider.js",
25
+ "./services/main": "./build/services/auth.js",
26
+ "./core/token": "./build/src/core/token.js",
27
+ "./core/guard_user": "./build/src/core/guard_user.js",
28
+ "./core/user_providers/*": "./build/src/core/user_providers/*.js",
29
+ "./core/token_providers/*": "./build/src/core/token_providers/*.js",
30
+ "./types/core": "./build/src/core/types.js",
31
+ "./session": "./build/src/guards/session/main.js",
32
+ "./initialize_auth_middleware": "./build/src/auth/middleware/initialize_auth_middleware.js",
33
+ "./auth_middleware": "./build/src/auth/middleware/auth_middleware.js",
34
+ "./types/session": "./build/src/guards/session/types.js"
35
+ },
16
36
  "scripts": {
17
- "mrm": "mrm --preset=@adonisjs/mrm-preset",
18
37
  "pretest": "npm run lint",
19
- "test": "node -r @adonisjs/require-ts/build/register ./bin/test.ts",
38
+ "test": "c8 npm run quick:test",
39
+ "quick:test": "cross-env NODE_DEBUG=\"adonisjs:auth\" node --enable-source-maps --loader=ts-node/esm ./bin/test.js",
20
40
  "clean": "del-cli build",
21
- "copyfiles": "copyfiles \"templates/**/*.txt\" build",
22
- "compile": "npm run lint && npm run clean && tsc",
23
- "build": "npm run compile && npm run copyfiles",
24
- "commit": "git-cz",
41
+ "copy:templates": "copyfiles \"stubs/**/**/*.stub\" build",
42
+ "compile": "npm run lint && npm run clean && tsc && npm run copy:templates",
43
+ "build": "npm run compile",
25
44
  "release": "np",
26
45
  "version": "npm run build",
27
- "lint": "eslint . --ext=.ts",
28
46
  "prepublishOnly": "npm run build",
29
- "sync-labels": "github-label-sync --labels ./node_modules/@adonisjs/mrm-preset/gh-labels.json adonisjs/auth",
47
+ "lint": "eslint . --ext=.ts",
48
+ "typecheck": "tsc --noEmit",
49
+ "sync-labels": "github-label-sync --labels .github/labels.json adonisjs/auth",
30
50
  "format": "prettier --write ."
31
51
  },
32
52
  "keywords": [
33
- "adonis",
34
- "adonis-framework",
35
- "adonis-auth",
36
- "authentication"
53
+ "adonisjs",
54
+ "authentication",
55
+ "auth"
37
56
  ],
38
57
  "author": "adonisjs,virk",
39
58
  "license": "MIT",
@@ -46,95 +65,84 @@
46
65
  "url": "https://github.com/adonisjs/auth/issues"
47
66
  },
48
67
  "devDependencies": {
49
- "@adonisjs/core": "^5.8.8",
50
- "@adonisjs/i18n": "^1.5.6",
51
- "@adonisjs/lucid": "^18.2.0",
52
- "@adonisjs/mrm-preset": "^5.0.3",
53
- "@adonisjs/redis": "^7.3.1",
54
- "@adonisjs/repl": "^3.1.11",
55
- "@adonisjs/require-ts": "^2.0.13",
56
- "@adonisjs/session": "^6.4.0",
57
- "@adonisjs/sink": "^5.4.1",
58
- "@japa/assert": "^1.3.6",
59
- "@japa/preset-adonis": "^1.2.0",
60
- "@japa/run-failed-tests": "^1.1.0",
61
- "@japa/runner": "^2.2.2",
62
- "@japa/spec-reporter": "^1.3.2",
63
- "@poppinss/dev-utils": "^2.0.3",
64
- "@types/node": "^18.11.2",
65
- "@types/supertest": "^2.0.12",
68
+ "@adonisjs/assembler": "^6.1.3-25",
69
+ "@adonisjs/core": "^6.1.5-30",
70
+ "@adonisjs/eslint-config": "^1.1.8",
71
+ "@adonisjs/i18n": "^2.0.0-6",
72
+ "@adonisjs/lucid": "^19.0.0-3",
73
+ "@adonisjs/prettier-config": "^1.1.8",
74
+ "@adonisjs/session": "^7.0.0-13",
75
+ "@adonisjs/tsconfig": "^1.1.8",
76
+ "@commitlint/cli": "^18.0.0",
77
+ "@commitlint/config-conventional": "^18.0.0",
78
+ "@japa/assert": "^2.0.0",
79
+ "@japa/expect-type": "^2.0.0",
80
+ "@japa/file-system": "^2.0.0",
81
+ "@japa/runner": "^3.0.4",
82
+ "@japa/snapshot": "^2.0.0",
83
+ "@swc/core": "1.3.82",
84
+ "@types/luxon": "^3.3.3",
85
+ "@types/node": "^20.8.7",
86
+ "@types/set-cookie-parser": "^2.4.5",
87
+ "c8": "^8.0.1",
66
88
  "copyfiles": "^2.4.1",
67
- "del-cli": "^5.0.0",
68
- "eslint": "^8.25.0",
69
- "eslint-config-prettier": "^8.5.0",
70
- "eslint-plugin-adonis": "^2.1.1",
71
- "eslint-plugin-prettier": "^4.2.1",
72
- "github-label-sync": "^2.2.0",
73
- "husky": "^8.0.1",
74
- "mrm": "^4.1.13",
75
- "np": "^7.6.2",
76
- "phc-bcrypt": "^1.0.7",
77
- "pino-pretty": "^9.1.1",
78
- "prettier": "^2.7.1",
79
- "reflect-metadata": "^0.1.13",
80
- "set-cookie-parser": "^2.5.1",
81
- "sqlite3": "^5.1.2",
82
- "supertest": "^6.3.0",
83
- "ts-essentials": "^9.3.0",
84
- "typescript": "^4.8.4"
89
+ "cross-env": "^7.0.3",
90
+ "del-cli": "^5.1.0",
91
+ "eslint": "^8.52.0",
92
+ "github-label-sync": "^2.3.1",
93
+ "husky": "^8.0.3",
94
+ "luxon": "^3.4.3",
95
+ "np": "^8.0.4",
96
+ "prettier": "^3.0.3",
97
+ "set-cookie-parser": "^2.6.0",
98
+ "sqlite3": "^5.1.6",
99
+ "timekeeper": "^2.3.1",
100
+ "ts-node": "^10.9.1",
101
+ "typescript": "^5.2.2"
85
102
  },
86
- "nyc": {
87
- "exclude": [
88
- "test"
89
- ],
90
- "extension": [
91
- ".ts"
103
+ "prettier": "@adonisjs/prettier-config",
104
+ "eslintConfig": {
105
+ "extends": "@adonisjs/eslint-config/package"
106
+ },
107
+ "commitlint": {
108
+ "extends": [
109
+ "@commitlint/config-conventional"
92
110
  ]
93
111
  },
94
- "config": {
95
- "commitizen": {
96
- "path": "cz-conventional-changelog"
97
- }
112
+ "publishConfig": {
113
+ "access": "public",
114
+ "tag": "next"
98
115
  },
99
116
  "np": {
100
- "contents": ".",
117
+ "message": "chore(release): %s",
118
+ "tag": "next",
119
+ "branch": "main",
101
120
  "anyBranch": false
102
121
  },
122
+ "c8": {
123
+ "reporter": [
124
+ "text",
125
+ "html"
126
+ ],
127
+ "exclude": [
128
+ "tests/**",
129
+ "factories/**"
130
+ ]
131
+ },
103
132
  "dependencies": {
104
- "@poppinss/hooks": "^5.0.3",
105
- "@poppinss/utils": "^5.0.0",
106
- "luxon": "^3.0.4"
133
+ "@poppinss/utils": "^6.5.0"
107
134
  },
108
135
  "peerDependencies": {
109
- "@adonisjs/core": "^5.7.1",
110
- "@adonisjs/i18n": "^1.5.0",
111
- "@adonisjs/lucid": "^18.0.0",
112
- "@adonisjs/redis": "^7.2.0",
113
- "@adonisjs/session": "^6.2.0"
136
+ "@adonisjs/core": "^6.1.5-30",
137
+ "@adonisjs/lucid": "^19.0.0-3",
138
+ "@adonisjs/session": "^7.0.0-13"
114
139
  },
115
140
  "peerDependenciesMeta": {
116
- "@adonisjs/i18n": {
117
- "optional": true
118
- },
119
141
  "@adonisjs/lucid": {
120
142
  "optional": true
121
143
  },
122
144
  "@adonisjs/session": {
123
145
  "optional": true
124
- },
125
- "@adonisjs/redis": {
126
- "optional": true
127
146
  }
128
- },
129
- "publishConfig": {
130
- "access": "public",
131
- "tag": "latest"
132
- },
133
- "adonisjs": {
134
- "instructions": "./build/instructions.js",
135
- "types": "@adonisjs/auth",
136
- "providers": [
137
- "@adonisjs/auth"
138
- ]
139
147
  }
140
148
  }