1
0
mirror of synced 2026-02-03 18:01:02 -05:00

Compare commits

...

7 Commits

Author SHA1 Message Date
Siddharth Suresh
e68d69813b Merge branch 'main' into eslint 2023-03-18 16:48:45 +05:30
Siddharth Suresh
00fd00f082 add codemod 2023-03-11 15:49:59 +05:30
Siddharth Suresh
645b2fc5ba Update khaki-wombats-exercise.md 2023-03-11 14:04:51 +05:30
Siddharth Suresh
e898c8bf05 make new package the default eslint config 2023-03-11 13:45:44 +05:30
Siddharth Suresh
a8c96b7713 update to blitz-next 2023-03-11 09:36:21 +05:30
Siddharth Suresh
12d0acb595 pnpm lock 2023-03-06 20:52:12 +05:30
Siddharth Suresh
6bc1472edf add new package for blitz eslint 2023-03-06 20:50:18 +05:30
46 changed files with 505 additions and 134 deletions

View File

@@ -0,0 +1,18 @@
---
"eslint-config-blitz-next": major
"@blitzjs/next": major
---
Moves the eslint config from the `@blitzjs/next` package to a separate package to allow easier use and extension of eslint configuration.
```diff
- module.exports = require("@blitzjs/next/eslint")
+ module.exports = {
+ "extends": "blitz-next",
+ "rules": {
+ // enable additional rules
+
+ }
+}
```

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/next/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -31,6 +31,7 @@
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"openid-client": "5.2.1",
"prisma": "4.6.1",

View File

@@ -1 +1,7 @@
module.exports = require("@blitzjs/next/eslint")
module.exports = {
"extends": "blitz-next",
"rules": {
// enable additional rules
}
}

View File

@@ -32,6 +32,7 @@
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"prisma": "4.6.1",
"react": "18.2.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -38,6 +38,7 @@
"@next/bundle-analyzer": "12.0.8",
"@types/react": "18.0.25",
"eslint": "8.27.0",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"typescript": "^4.8.4"
}
}

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/next/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -26,6 +26,7 @@
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"delay": "5.0.0",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"prisma": "4.6.1",
"react": "18.2.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -22,6 +22,7 @@
"@blitzjs/next": "workspace:2.0.0-beta.23",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"lowdb": "3.0.0",
"next": "12.2.5",
"prisma": "4.6.1",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -21,6 +21,7 @@
"@blitzjs/rpc": "workspace:2.0.0-beta.23",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"lowdb": "3.0.0",
"next": "12.2.5",
"prisma": "4.6.1",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -15,6 +15,7 @@
"@blitzjs/next": "workspace:2.0.0-beta.23",
"@blitzjs/rpc": "workspace:2.0.0-beta.23",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"react": "18.2.0",
"react-dom": "18.2.0"

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -21,6 +21,7 @@
"@blitzjs/rpc": "workspace:2.0.0-beta.23",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"lowdb": "3.0.0",
"next": "12.2.5",
"prisma": "4.6.1",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -15,6 +15,7 @@
"@prisma/client": "4.6.1",
"@tanstack/react-query": "4.0.10",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"prisma": "4.6.1",
"react": "18.2.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -20,6 +20,7 @@
"@blitzjs/rpc": "workspace:2.0.0-beta.23",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"lowdb": "3.0.0",
"next": "12.2.5",
"prisma": "4.6.1",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -21,6 +21,7 @@
"@blitzjs/rpc": "workspace:2.0.0-beta.23",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"lowdb": "3.0.0",
"next": "12.2.5",
"prisma": "4.6.1",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -62,6 +62,7 @@
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"react": "18.2.0",
"react-dom": "18.2.0",
"secure-password": "4.0.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -56,6 +56,7 @@
"@types/testing-library__react-hooks": "4.0.0",
"blitz": "2.0.0-beta.23",
"cross-spawn": "7.0.3",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"find-up": "4.1.0",
"next": "12.2.5",
"react": "18.2.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -46,6 +46,7 @@
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-beta.23",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"next": "12.2.5",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -97,6 +97,7 @@
"@types/react-dom": "17.0.14",
"@types/test-listen": "1.1.0",
"@types/watchpack": "1.1.1",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"express": "4.17.3",
"react": "18.2.0",
"test-listen": "1.1.0",

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -42,6 +42,7 @@
"@types/jscodeshift": "0.11.2",
"@types/node": "18.11.9",
"ast-types": "0.14.2",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"unbuild": "0.7.6",
"watch": "1.0.2"
},

View File

@@ -0,0 +1,186 @@
import j, {
Identifier,
MemberExpression,
ObjectExpression,
ObjectProperty,
StringLiteral,
} from "jscodeshift"
import * as fs from "fs-extra"
import path from "path"
import {findImport, getAllFiles, getCollectionFromSource} from "./utils"
import {log} from "blitz"
class ExpectedError extends Error {
constructor(message: string) {
super(message)
this.name = "Expected Error"
}
}
type Step = {name: string; action: (stepIndex: number) => Promise<void>}
const eslintBreakingChange = async () => {
const appDir = path.resolve("src")
let failedAt =
fs.existsSync(path.resolve(".migration.json")) && fs.readJSONSync("./.migration.json").failedAt
let collectedErrors: {message: string; step: number}[] = []
let steps: Step[] = []
// Add steps in order
steps.push({
name: "update .eslintrc.js configuration",
action: async (stepIndex) => {
if (fs.existsSync(path.resolve(".eslintrc.js"))) {
const program = getCollectionFromSource(".eslintrc.js")
const parsedProgram = program.get()
let hasExtends = false
// check the value of the right side of the assignment of module.exports
const moduleExports = program.find(j.AssignmentExpression, {
left: {
type: "MemberExpression",
object: {
type: "Identifier",
name: "module",
},
property: {
type: "Identifier",
name: "exports",
},
},
})
if (moduleExports.length) {
const moduleExportsValue: ObjectExpression = moduleExports.get().value.right
if (moduleExportsValue.type === "ObjectExpression") {
const rules = moduleExportsValue.properties.find(
(p) => ((p as ObjectProperty).key as StringLiteral).value === "extends",
) as ObjectProperty
if (rules) {
const rulesValue = rules.value
if (
rulesValue.type === "CallExpression" &&
(rulesValue.callee as MemberExpression).property.type === "Identifier" &&
(rulesValue.arguments[0] as StringLiteral).value === "@blitzjs/next/eslint"
) {
moduleExportsValue.properties.splice(
moduleExportsValue.properties.indexOf(rules),
1,
)
moduleExportsValue.properties.unshift(
j.objectProperty(j.stringLiteral("extends"), j.stringLiteral("blitz-next")),
)
hasExtends = true
} else if (rulesValue.type === "ArrayExpression") {
const rulesValueElements = rulesValue.elements
const requireResolve = rulesValueElements.find((e) => {
if (e?.type === "CallExpression") {
const callee = e.callee
if (
callee.type === "MemberExpression" &&
(callee.object as Identifier).name === "require"
) {
const property = callee.property
if (property.type === "Identifier" && property.name === "resolve") {
const args = e.arguments
if (args.length === 1 && args[0]?.type === "StringLiteral") {
const arg = args[0]
if (arg.value === "@blitzjs/next/eslint") {
return true
}
}
}
}
}
return false
})
if (requireResolve) {
rulesValueElements.splice(rulesValueElements.indexOf(requireResolve), 1)
rulesValueElements.push(j.stringLiteral("blitz-next"))
hasExtends = true
}
}
}
}
if (!hasExtends) {
parsedProgram.value.program.body = []
const moduleExport = j.expressionStatement(
j.assignmentExpression(
"=",
j.memberExpression(j.identifier("module"), j.identifier("exports")),
j.objectExpression([
j.objectProperty(j.stringLiteral("extends"), j.stringLiteral("blitz-next")),
j.objectProperty(j.stringLiteral("rules"), j.objectExpression([])),
]),
),
)
parsedProgram.value.program.body.push(moduleExport)
}
console.log("Program", program.toSource())
fs.writeFileSync(".eslintrc.js", program.toSource())
throw new Error("For testing")
} else {
collectedErrors.push({
message: ".eslintrc.js does not exist",
step: stepIndex,
})
}
}
},
})
// Loop through steps and run the action
if ((failedAt && failedAt < steps.length) || failedAt !== "SUCCESS") {
for (let [index, step] of steps.entries()) {
// Ignore previous steps and continue at step that was failed
if (failedAt && index + 1 < failedAt) {
continue
}
const spinner = log.spinner(log.withBrand(`Running ${step.name}...`)).start()
try {
await step.action(index)
if (collectedErrors.filter((e) => e.step === index).length) {
// Soft stored error
spinner.fail(`${step.name}`)
} else {
spinner.succeed(`Successfully ran ${step.name}`)
}
} catch (err) {
// Hard exit error
const error = err as {code: string} | string
spinner.fail(`${step.name}`)
log.error(error as string)
if (error && typeof error === "object" && error.code === "BABEL_PARSE_ERROR") {
log.error(
log.withBrand(
"Don't panic, go to the file with the error & manually fix it. Then run the codemod again. It will continue where it left off.",
),
)
} else if (!(err instanceof ExpectedError)) {
log.error(
log.withBrand(
"This is an unexpected error. Please ask for help in the discord #general-help channel. https://discord.blitzjs.com",
),
)
}
failedAt = index + 1
fs.writeJsonSync(".migration.json", {
failedAt,
})
process.exit(1)
}
}
if (collectedErrors.length) {
for (const error of collectedErrors) {
log.error(`⚠️ ${error.message}`)
}
}
fs.writeJsonSync(".migration.json", {
failedAt: "SUCCESS",
})
} else {
if (failedAt === "SUCCESS") {
log.withBrand("Migration already successful")
process.exit(0)
}
}
}
export {eslintBreakingChange}

View File

@@ -14,6 +14,7 @@ const args = arg(commonArgs, {
const commands: {[command: string]: () => Promise<() => void>} = {
"upgrade-legacy": () => import("./upgrade-legacy").then((i) => i.upgradeLegacy),
"eslint": () => import("./eslint").then((i) => i.eslintBreakingChange),
"secure-password": () => import("./secure-password").then((i) => i.securePasswordBreakingChange),
}

View File

@@ -1,29 +0,0 @@
module.exports = {
extends: ["eslint-config-next", "prettier"],
ignorePatterns: ["*.d.ts"],
settings: {
next: {
rootDir: ["./apps/*/", "./packages/*/"],
},
},
rules: {
"@next/next/no-html-link-for-pages": "off",
},
overrides: [
{
files: ["**/*.ts?(x)"],
plugins: ["@typescript-eslint"],
parserOptions: {
project: "./tsconfig.json",
},
rules: {
"@typescript-eslint/no-floating-promises": "error",
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": ["off"],
"no-redeclare": "off",
"@typescript-eslint/no-redeclare": ["error"],
"react/display-name": "off",
},
},
],
}

View File

@@ -5,9 +5,7 @@
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.42.1",
"@typescript-eslint/parser": "5.9.1",
"eslint-config-next": "12.3.1",
"eslint-config-prettier": "8.5.0"
"@typescript-eslint/parser": "5.9.1"
},
"devDependencies": {
"typescript": "^4.8.4"

View File

@@ -0,0 +1,13 @@
{
"name": "eslint-config-blitz-next",
"version": "2.0.0-beta.23",
"main": "index.js",
"license": "MIT",
"dependencies": {
"eslint-config-next": "latest",
"eslint-config-prettier": "^8.3.0"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -70,6 +70,7 @@
"babylon": "6.18.0",
"debug": "4.3.3",
"eslint": "8.27.0",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"react": "18.2.0",
"typescript": "^4.8.4",
"unbuild": "0.6.9",

View File

@@ -1 +1,7 @@
module.exports = require("@blitzjs/next/eslint")
module.exports = {
"extends": "blitz-next",
"rules": {
// enable additional rules
}
}

View File

@@ -1 +1,7 @@
module.exports = require("@blitzjs/next/eslint")
module.exports = {
"extends": "blitz-next",
"rules": {
// enable additional rules
}
}

View File

@@ -1 +1,6 @@
module.exports = require("@blitzjs/config/eslint")
module.exports = {
extends: "blitz-next",
rules: {
// enable additional rules
},
}

View File

@@ -28,6 +28,7 @@
"@blitzjs/config": "2.0.0-beta.23",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"eslint-config-blitz-next": "workspace:2.0.0-beta.23",
"react": "18.2.0",
"typescript": "^4.8.4",
"unbuild": "0.7.6",

227
pnpm-lock.yaml generated
View File

@@ -53,6 +53,7 @@ importers:
"@vitejs/plugin-react": 2.2.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
eslint-config-next: 12.3.1
eslint-config-prettier: 8.5.0
husky: 8.0.2
@@ -81,6 +82,7 @@ importers:
"@hookform/resolvers": 2.9.10_react-hook-form@7.39.1
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
react: 18.2.0
@@ -131,6 +133,7 @@ importers:
"@typescript-eslint/eslint-plugin": 5.42.1
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
eslint-config-next: 12.3.1
eslint-config-prettier: 8.5.0
husky: 8.0.2
@@ -159,6 +162,7 @@ importers:
"@hookform/resolvers": 2.9.10_react-hook-form@7.39.1
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
openid-client: 5.2.1
prisma: 4.6.1
@@ -202,6 +206,7 @@ importers:
"@types/react": 18.0.25
blitz: workspace:*
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
jest: 29.3.0
jest-environment-jsdom: 29.3.0
next: 12.2.5
@@ -234,6 +239,7 @@ importers:
"@next/bundle-analyzer": 12.0.8
"@types/react": 18.0.25
eslint: 8.27.0
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
typescript: 4.8.4
integration-tests/auth:
@@ -251,6 +257,7 @@ importers:
b64-lite: 1.4.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
@@ -270,6 +277,7 @@ importers:
"@blitzjs/next": link:../../packages/blitz-next
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
lowdb: 3.0.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
@@ -314,6 +322,7 @@ importers:
blitz: workspace:2.0.0-beta.23
delay: 5.0.0
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
eslint-config-next: 12.3.1
eslint-config-prettier: 8.5.0
husky: 8.0.2
@@ -344,6 +353,7 @@ importers:
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
delay: 5.0.0
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
react: 18.2.0
@@ -391,6 +401,7 @@ importers:
b64-lite: 1.4.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
@@ -406,6 +417,7 @@ importers:
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
lowdb: 3.0.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
@@ -437,6 +449,7 @@ importers:
"@types/react": 18.0.25
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
next: 12.2.5
@@ -449,6 +462,7 @@ importers:
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@@ -479,6 +493,7 @@ importers:
b64-lite: 1.4.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
@@ -494,6 +509,7 @@ importers:
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
lowdb: 3.0.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
@@ -527,6 +543,7 @@ importers:
blitz: workspace:2.0.0-beta.23
delay: 5.0.0
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
eslint-config-next: latest
eslint-plugin-testing-library: 5.0.1
jsdom: ^19.0.0
@@ -543,6 +560,7 @@ importers:
"@prisma/client": 4.6.1_prisma@4.6.1
"@tanstack/react-query": 4.0.10_biqbaboplfbrettd7655fr4n2y
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
react: 18.2.0
@@ -572,6 +590,7 @@ importers:
b64-lite: 1.4.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
@@ -586,6 +605,7 @@ importers:
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
lowdb: 3.0.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
@@ -690,6 +710,7 @@ importers:
b64-lite: 1.4.0
blitz: workspace:2.0.0-beta.23
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
@@ -705,6 +726,7 @@ importers:
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 4.6.1_prisma@4.6.1
blitz: link:../../packages/blitz
eslint-config-blitz-next: link:../../packages/eslint-config-blitz-next
lowdb: 3.0.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
prisma: 4.6.1
@@ -820,6 +842,7 @@ importers:
envinfo: 7.8.1
esbuild: 0.14.34
esbuild-register: 3.3.3
eslint-config-blitz-next: workspace:2.0.0-beta.23
express: 4.17.3
find-up: 4.1.0
fs-extra: 10.0.1
@@ -923,6 +946,7 @@ importers:
"@types/react-dom": 17.0.14
"@types/test-listen": 1.1.0
"@types/watchpack": 1.1.1
eslint-config-blitz-next: link:../eslint-config-blitz-next
express: 4.17.3_supports-color@8.1.1
react: 18.2.0
test-listen: 1.1.0
@@ -951,6 +975,7 @@ importers:
cookie: 0.4.1
cookie-session: 2.0.0
debug: 4.3.3
eslint-config-blitz-next: workspace:2.0.0-beta.23
http: 0.0.1-security
jsonwebtoken: 9.0.0
nanoid: 3.2.0
@@ -991,6 +1016,7 @@ importers:
"@types/react": 18.0.25
"@types/react-dom": 17.0.14
blitz: link:../blitz
eslint-config-blitz-next: link:../eslint-config-blitz-next
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
secure-password: 4.0.0
@@ -1016,6 +1042,7 @@ importers:
blitz: 2.0.0-beta.23
cross-spawn: 7.0.3
debug: 4.3.3
eslint-config-blitz-next: workspace:2.0.0-beta.23
find-up: 4.1.0
fs-extra: 10.0.1
hoist-non-react-statics: 3.3.2
@@ -1051,6 +1078,7 @@ importers:
"@types/testing-library__react-hooks": 4.0.0_2zx2umvpluuhvlq44va5bta2da
blitz: link:../blitz
cross-spawn: 7.0.3
eslint-config-blitz-next: link:../eslint-config-blitz-next
find-up: 4.1.0
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
@@ -1075,6 +1103,7 @@ importers:
blitz: 2.0.0-beta.23
chalk: ^4.1.0
debug: 4.3.3
eslint-config-blitz-next: workspace:2.0.0-beta.23
next: 12.2.5
react: 18.2.0
react-dom: 18.2.0
@@ -1100,6 +1129,7 @@ importers:
"@types/react": 18.0.25
"@types/react-dom": 17.0.14
blitz: link:../blitz
eslint-config-blitz-next: link:../eslint-config-blitz-next
next: 12.2.5_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
@@ -1126,6 +1156,7 @@ importers:
cross-spawn: 7.0.3
debug: 4.3.3
esbuild: 0.14.34
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
jscodeshift: 0.13.0
prompts: 2.4.2
@@ -1152,6 +1183,7 @@ importers:
"@types/jscodeshift": 0.11.2
"@types/node": 18.11.9
ast-types: 0.14.2
eslint-config-blitz-next: link:../eslint-config-blitz-next
unbuild: 0.7.6
watch: 1.0.2
@@ -1159,17 +1191,21 @@ importers:
specifiers:
"@typescript-eslint/eslint-plugin": 5.42.1
"@typescript-eslint/parser": 5.9.1
eslint-config-next: 12.3.1
eslint-config-prettier: 8.5.0
typescript: ^4.8.4
dependencies:
"@typescript-eslint/eslint-plugin": 5.42.1_z4ocgzhfuku3ho6vky337zbopm
"@typescript-eslint/parser": 5.9.1_typescript@4.8.4
eslint-config-next: 12.3.1_typescript@4.8.4
eslint-config-prettier: 8.5.0
devDependencies:
typescript: 4.8.4
packages/eslint-config-blitz-next:
specifiers:
eslint-config-next: latest
eslint-config-prettier: ^8.3.0
dependencies:
eslint-config-next: 13.2.4
eslint-config-prettier: 8.5.0
packages/generator:
specifiers:
"@babel/core": 7.12.10
@@ -1200,6 +1236,7 @@ importers:
diff: 5.0.0
enquirer: 2.3.6
eslint: 8.27.0
eslint-config-blitz-next: workspace:2.0.0-beta.23
fs-extra: 10.0.1
globby: 13.1.2
got: ^11.8.1
@@ -1264,6 +1301,7 @@ importers:
babylon: 6.18.0
debug: 4.3.3_supports-color@8.1.1
eslint: 8.27.0_supports-color@8.1.1
eslint-config-blitz-next: link:../eslint-config-blitz-next
react: 18.2.0
typescript: 4.8.4
unbuild: 0.6.9_supports-color@8.1.1
@@ -1276,6 +1314,7 @@ importers:
"@types/react-dom": 17.0.14
"@typescript-eslint/eslint-plugin": 5.42.1
"@typescript-eslint/parser": 5.9.1
eslint-config-blitz-next: workspace:2.0.0-beta.23
react: 18.2.0
typescript: ^4.8.4
unbuild: 0.7.6
@@ -1287,6 +1326,7 @@ importers:
"@blitzjs/config": link:../config
"@types/react": 18.0.25
"@types/react-dom": 17.0.14
eslint-config-blitz-next: link:../eslint-config-blitz-next
react: 18.2.0
typescript: 4.8.4
unbuild: 0.7.6
@@ -2521,7 +2561,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
"@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.18.2
dev: false
@@ -2591,7 +2631,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
"@babel/helper-skip-transparent-expression-wrappers": 7.16.0
"@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.18.2
@@ -2727,7 +2767,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
dev: false
@@ -2856,7 +2896,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
dev: false
@@ -2956,7 +2996,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
dev: false
@@ -3017,7 +3057,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
dev: false
@@ -3216,7 +3256,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
"@babel/plugin-syntax-flow": 7.17.12_@babel+core@7.18.2
dev: false
@@ -3962,7 +4002,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
"@babel/helper-plugin-utils": 7.17.12
"@babel/helper-validator-option": 7.16.7
"@babel/plugin-transform-flow-strip-types": 7.17.12_@babel+core@7.18.2
@@ -4026,7 +4066,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@@ -5096,6 +5136,7 @@ packages:
}
dependencies:
glob: 7.1.7
dev: true
/@next/eslint-plugin-next/13.2.4:
resolution:
@@ -5104,7 +5145,6 @@ packages:
}
dependencies:
glob: 7.1.7
dev: true
/@next/swc-android-arm-eabi/12.2.5:
resolution:
@@ -5297,7 +5337,6 @@ packages:
picocolors: 1.0.0
tiny-glob: 0.2.9
tslib: 2.4.0
dev: true
/@polka/url/1.0.0-next.21:
resolution:
@@ -6851,6 +6890,27 @@ packages:
- typescript
dev: true
/@typescript-eslint/parser/5.43.0:
resolution:
{
integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==,
}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@typescript-eslint/scope-manager": 5.43.0
"@typescript-eslint/types": 5.43.0
"@typescript-eslint/typescript-estree": 5.43.0
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/parser/5.43.0_rmayb2veg2btbq6mbmnyivgasy:
resolution:
{
@@ -6873,28 +6933,6 @@ packages:
transitivePeerDependencies:
- supports-color
/@typescript-eslint/parser/5.43.0_typescript@4.8.4:
resolution:
{
integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==,
}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@typescript-eslint/scope-manager": 5.43.0
"@typescript-eslint/types": 5.43.0
"@typescript-eslint/typescript-estree": 5.43.0_typescript@4.8.4
debug: 4.3.4
typescript: 4.8.4
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/parser/5.9.1_nw6v2wse7au2evadw7vu3hneg4:
resolution:
{
@@ -7149,6 +7187,29 @@ packages:
transitivePeerDependencies:
- supports-color
/@typescript-eslint/typescript-estree/5.43.0:
resolution:
{
integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==,
}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@typescript-eslint/types": 5.43.0
"@typescript-eslint/visitor-keys": 5.43.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
tsutils: 3.21.0
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/typescript-estree/5.43.0_typescript@4.8.4:
resolution:
{
@@ -7914,7 +7975,7 @@ packages:
peerDependencies:
"@babel/core": ^7.0.0-0
dependencies:
"@babel/core": 7.18.2_supports-color@8.1.1
"@babel/core": 7.18.2
dev: false
/babel-jest/29.3.0_@babel+core@7.20.2:
@@ -9518,7 +9579,6 @@ packages:
integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==,
}
engines: {node: ">=8"}
dev: true
/define-properties/1.1.4:
resolution:
@@ -9931,7 +9991,6 @@ packages:
dependencies:
graceful-fs: 4.2.10
tapable: 2.2.1
dev: true
/enquirer/2.3.6:
resolution:
@@ -10936,10 +10995,10 @@ packages:
- supports-color
dev: true
/eslint-config-next/12.3.1_typescript@4.8.4:
/eslint-config-next/13.2.4:
resolution:
{
integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==,
integrity: sha512-lunIBhsoeqw6/Lfkd6zPt25w1bn0znLA/JCL+au1HoEpSb4/PpsOYsYtgV/q+YPsoKIOzFyU5xnb04iZnXjUvg==,
}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@@ -10948,16 +11007,15 @@ packages:
typescript:
optional: true
dependencies:
"@next/eslint-plugin-next": 12.3.1
"@next/eslint-plugin-next": 13.2.4
"@rushstack/eslint-patch": 1.1.3
"@typescript-eslint/parser": 5.43.0_typescript@4.8.4
"@typescript-eslint/parser": 5.43.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
eslint-plugin-import: 2.26.0_thmqqzpxv5mluo3coertzplf2y
eslint-import-resolver-typescript: 3.5.2_fkfqfehjtk7sk2efaqbgxsuasa
eslint-plugin-import: 2.26.0_jnhknsizguq62sa5jffjas67nq
eslint-plugin-jsx-a11y: 6.5.1
eslint-plugin-react: 7.31.8
eslint-plugin-react-hooks: 4.5.0
typescript: 4.8.4
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
@@ -11043,26 +11101,7 @@ packages:
tsconfig-paths: 3.14.1
transitivePeerDependencies:
- supports-color
/eslint-import-resolver-typescript/2.7.1_fkfqfehjtk7sk2efaqbgxsuasa:
resolution:
{
integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==,
}
engines: {node: ">=4"}
peerDependencies:
eslint: "*"
eslint-plugin-import: "*"
dependencies:
debug: 4.3.4
eslint-plugin-import: 2.26.0_thmqqzpxv5mluo3coertzplf2y
glob: 7.2.0
is-glob: 4.0.3
resolve: 1.22.1
tsconfig-paths: 3.14.1
transitivePeerDependencies:
- supports-color
dev: false
dev: true
/eslint-import-resolver-typescript/3.5.2_dcpv4nbdr5ks2h5677xdltrk6e:
resolution:
@@ -11085,7 +11124,28 @@ packages:
synckit: 0.8.4
transitivePeerDependencies:
- supports-color
dev: true
/eslint-import-resolver-typescript/3.5.2_fkfqfehjtk7sk2efaqbgxsuasa:
resolution:
{
integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==,
}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
eslint: "*"
eslint-plugin-import: "*"
dependencies:
debug: 4.3.4
enhanced-resolve: 5.10.0
eslint-plugin-import: 2.26.0_jnhknsizguq62sa5jffjas67nq
get-tsconfig: 4.2.0
globby: 13.1.2
is-core-module: 2.11.0
is-glob: 4.0.3
synckit: 0.8.4
transitivePeerDependencies:
- supports-color
dev: false
/eslint-module-utils/2.7.3_clahhyedowhj7lywpxe6ohktxi:
resolution:
@@ -11115,7 +11175,6 @@ packages:
find-up: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-module-utils/2.7.3_rmba4edv35vyqs75pdxciqmxgu:
resolution:
@@ -11145,6 +11204,7 @@ packages:
find-up: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-import/2.26.0_bbzxof3vtngyannf3l4jlcflvy:
resolution:
@@ -11178,9 +11238,8 @@ packages:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-import/2.26.0_thmqqzpxv5mluo3coertzplf2y:
/eslint-plugin-import/2.26.0_jnhknsizguq62sa5jffjas67nq:
resolution:
{
integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==,
@@ -11193,13 +11252,13 @@ packages:
"@typescript-eslint/parser":
optional: true
dependencies:
"@typescript-eslint/parser": 5.43.0_typescript@4.8.4
"@typescript-eslint/parser": 5.43.0
array-includes: 3.1.5
array.prototype.flat: 1.3.0
debug: 2.6.9
doctrine: 2.1.0
eslint-import-resolver-node: 0.3.6
eslint-module-utils: 2.7.3_rmba4edv35vyqs75pdxciqmxgu
eslint-module-utils: 2.7.3_clahhyedowhj7lywpxe6ohktxi
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
@@ -11245,6 +11304,7 @@ packages:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-jsx-a11y/6.5.1:
resolution:
@@ -12485,7 +12545,6 @@ packages:
{
integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==,
}
dev: true
/get-value/2.0.6:
resolution:
@@ -12651,7 +12710,6 @@ packages:
{
integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==,
}
dev: true
/globby/11.1.0:
resolution:
@@ -12704,7 +12762,6 @@ packages:
{
integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==,
}
dev: true
/got/11.8.1:
resolution:
@@ -13416,7 +13473,6 @@ packages:
}
engines: {node: ">=8"}
hasBin: true
dev: true
/is-expression/4.0.0:
resolution:
@@ -13717,7 +13773,6 @@ packages:
engines: {node: ">=8"}
dependencies:
is-docker: 2.2.1
dev: true
/is2/2.0.7:
resolution:
@@ -16443,7 +16498,6 @@ packages:
define-lazy-prop: 2.0.0
is-docker: 2.2.1
is-wsl: 2.2.0
dev: true
/opener/1.5.2:
resolution:
@@ -19310,7 +19364,6 @@ packages:
dependencies:
"@pkgr/utils": 2.3.1
tslib: 2.4.0
dev: true
/tapable/2.2.1:
resolution:
@@ -19318,7 +19371,6 @@ packages:
integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==,
}
engines: {node: ">=6"}
dev: true
/tar/6.1.11:
resolution:
@@ -19441,7 +19493,6 @@ packages:
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
dev: true
/tinybench/2.3.1:
resolution:
@@ -19819,6 +19870,18 @@ packages:
engines: {node: ">=0.6.x"}
dev: false
/tsutils/3.21.0:
resolution:
{
integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==,
}
engines: {node: ">= 6"}
peerDependencies:
typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
dependencies:
tslib: 1.14.1
dev: false
/tsutils/3.21.0_typescript@4.8.4:
resolution:
{