Skip to content

Commit 2469e44

Browse files
feat: allow standard Request in NextAuthHandler (#4704)
* chore: upgrade dev dependencies * chore: use SWC for test transforms * feat: allow standard `Request` as `NextAuthHandler` argument * test: add initial core tests * chore: ignore `tests` in build * chore: fix lint * chore: move `lib` to `utils` * add body parsing, simplify * fix tests * chore: use `NPM_TOKEN_PKG` for experimental release
1 parent 408b6b1 commit 2469e44

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+15025
-17760
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ jobs:
103103
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
104104
pnpm publish --no-git-checks --access public --tag experimental
105105
env:
106-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
106+
NPM_TOKEN: ${{ secrets.NPM_TOKEN_PKG }}
107107
- name: Comment version on PR
108108
uses: NejcZdovc/comment-pr@v1
109109
with:

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ packages/next-auth/providers
3030
packages/next-auth/src/providers/oauth-types.ts
3131
packages/next-auth/client
3232
packages/next-auth/css
33-
packages/next-auth/lib
33+
packages/next-auth/utils
3434
packages/next-auth/core
3535
packages/next-auth/jwt
3636
packages/next-auth/react

packages/adapter-test/jest/jest-preset.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module.exports = {
22
transform: {
3-
".(ts|tsx)$": "ts-jest",
4-
".(js|jsx)$": "babel-jest", // jest's default
3+
".(ts|tsx)$": "@swc/jest",
4+
".(js|jsx)$": "@swc/jest", // jest's default
55
},
66
transformIgnorePatterns: ["[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$"],
77
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],

packages/adapter-test/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"@types/nodemailer": "^6.4.4",
2020
"@typescript-eslint/eslint-plugin": "^4.24.0",
2121
"@typescript-eslint/parser": "^4.24.0",
22-
"babel-jest": "^27.4.2",
2322
"eslint": "^7.27.0",
2423
"eslint-config-prettier": "^8.3.0",
2524
"eslint-config-standard-with-typescript": "^20.0.0",

packages/next-auth/config/babel.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ module.exports = (api) => {
2525
ignore: [
2626
"../src/**/__tests__/**",
2727
"../src/adapters.ts",
28-
"../src/lib/types.ts",
28+
"../src/core/types.ts",
2929
"../src/providers/oauth-types.ts",
3030
],
3131
comments: false,
3232
overrides: [
3333
{
3434
test: [
3535
"../src/react/index.tsx",
36-
"../src/lib/logger.ts",
36+
"../src/utils/logger.ts",
3737
"../src/core/errors.ts",
3838
"../src/client/**",
3939
],

packages/next-auth/config/jest.config.js renamed to packages/next-auth/config/jest.client.config.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
/** @type {import('@jest/types').Config.InitialOptions} */
22
module.exports = {
33
transform: {
4-
"\\.(js|jsx|ts|tsx)$": [
5-
"babel-jest",
6-
{ configFile: "./config/babel.config.js" },
7-
],
4+
"\\.(js|jsx|ts|tsx)$": ["@swc/jest", require("./swc.config")],
85
},
96
rootDir: "../src",
107
setupFilesAfterEnv: ["../config/jest-setup.js"],
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/** @type {import('@jest/types').Config.InitialOptions} */
2+
module.exports = {
3+
transform: {
4+
"\\.(js|jsx|ts|tsx)$": ["@swc/jest", require("./swc.config")],
5+
},
6+
rootDir: "..",
7+
testMatch: ["**/*.test.ts"],
8+
setupFilesAfterEnv: ["./config/jest-setup.js"],
9+
watchPlugins: [
10+
"jest-watch-typeahead/filename",
11+
"jest-watch-typeahead/testname",
12+
],
13+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
module.exports = {
2+
jsc: {
3+
parser: {
4+
syntax: "typescript",
5+
tsx: true,
6+
},
7+
transform: {
8+
react: {
9+
runtime: "automatic",
10+
pragma: "React.createElement",
11+
pragmaFrag: "React.Fragment",
12+
throwIfNamespace: true,
13+
useBuiltins: true,
14+
},
15+
},
16+
},
17+
}

packages/next-auth/package.json

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,13 @@
3737
},
3838
"scripts": {
3939
"build": "pnpm clean && pnpm build:js && pnpm build:css",
40-
"clean": "rm -rf client css lib providers core jwt react next index.d.ts index.js adapters.d.ts middleware.d.ts middleware.js",
40+
"clean": "rm -rf client css utils providers core jwt react next index.d.ts index.js adapters.d.ts middleware.d.ts middleware.js",
4141
"build:js": "pnpm clean && pnpm generate-providers && tsc && babel --config-file ./config/babel.config.js src --out-dir . --extensions \".tsx,.ts,.js,.jsx\"",
4242
"build:css": "postcss --config config/postcss.config.js src/**/*.css --base src --dir . && node config/wrap-css.js",
4343
"watch:css": "postcss --config config/postcss.config.js --watch src/**/*.css --base src --dir .",
44-
"test": "jest --config ./config/jest.config.js",
44+
"test:client": "jest --config ./config/jest.client.config.js",
45+
"test:core": "jest --config ./config/jest.core.config.js",
46+
"test": "pnpm test:core && pnpm test:client",
4547
"prepublishOnly": "pnpm build",
4648
"generate-providers": "node ./config/generate-providers.js",
4749
"setup": "pnpm generate-providers",
@@ -85,38 +87,40 @@
8587
}
8688
},
8789
"devDependencies": {
88-
"@babel/cli": "^7.16.0",
89-
"@babel/core": "^7.16.0",
90-
"@babel/plugin-proposal-optional-catch-binding": "^7.16.0",
91-
"@babel/plugin-transform-runtime": "^7.16.4",
92-
"@babel/preset-env": "^7.16.4",
93-
"@babel/preset-react": "^7.16.0",
94-
"@babel/preset-typescript": "^7.16.0",
90+
"@babel/cli": "^7.17.10",
91+
"@babel/core": "^7.18.2",
92+
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
93+
"@babel/plugin-transform-runtime": "^7.18.2",
94+
"@babel/preset-env": "^7.18.2",
95+
"@babel/preset-react": "^7.17.12",
96+
"@babel/preset-typescript": "^7.17.12",
9597
"@next-auth/tsconfig": "workspace:^0.0.0",
96-
"@testing-library/dom": "^8.11.3",
97-
"@testing-library/jest-dom": "^5.16.1",
98-
"@testing-library/react": "^12.1.2",
99-
"@testing-library/react-hooks": "^7.0.2",
100-
"@testing-library/user-event": "^13.5.0",
101-
"@types/node": "^16.11.12",
98+
"@swc/core": "^1.2.198",
99+
"@swc/jest": "^0.2.21",
100+
"@testing-library/dom": "^8.13.0",
101+
"@testing-library/jest-dom": "^5.16.4",
102+
"@testing-library/react": "^13.3.0",
103+
"@testing-library/react-hooks": "^8.0.0",
104+
"@testing-library/user-event": "^14.2.0",
105+
"@types/node": "^17.0.42",
102106
"@types/nodemailer": "^6.4.4",
103107
"@types/oauth": "^0.9.1",
104-
"@types/react": "^17.0.37",
105-
"@types/react-dom": "^17.0.11",
106-
"autoprefixer": "^10.4.0",
107-
"babel-jest": "^27.4.2",
108+
"@types/react": "^18.0.2",
109+
"@types/react-dom": "^18.0.5",
110+
"autoprefixer": "^10.4.7",
108111
"babel-plugin-jsx-pragmatic": "^1.0.2",
109112
"babel-preset-preact": "^2.0.0",
110-
"cssnano": "^5.0.12",
111-
"jest": "^27.4.3",
112-
"jest-watch-typeahead": "^1.0.0",
113-
"msw": "^0.36.3",
114-
"next": "12.1.0",
115-
"postcss": "^8.4.12",
116-
"postcss-cli": "^9.0.2",
113+
"cssnano": "^5.1.11",
114+
"jest": "^28.1.1",
115+
"jest-environment-jsdom": "^28.1.1",
116+
"jest-watch-typeahead": "^1.1.0",
117+
"msw": "^0.42.1",
118+
"next": "^12.1.6",
119+
"postcss": "^8.4.14",
120+
"postcss-cli": "^9.1.0",
117121
"postcss-nested": "^5.0.6",
118-
"react": "^17.0.2",
119-
"react-dom": "^17.0.2",
122+
"react": "^18.1.0",
123+
"react-dom": "^18.1.0",
120124
"whatwg-fetch": "^3.6.2"
121125
},
122126
"engines": {

packages/next-auth/src/client/__tests__/csrf.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { useState } from "react"
22
import userEvent from "@testing-library/user-event"
33
import { render, screen, waitFor } from "@testing-library/react"
44
import { server, mockCSRFToken } from "./helpers/mocks"
5-
import logger from "../../lib/logger"
5+
import logger from "../../utils/logger"
66
import { getCsrfToken } from "../../react"
77
import { rest } from "msw"
88

9-
jest.mock("../../lib/logger", () => ({
9+
jest.mock("../../utils/logger", () => ({
1010
__esModule: true,
1111
default: {
1212
warn: jest.fn(),

0 commit comments

Comments
 (0)