Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
dc2e3b8
Bump the react group with 2 updates
dependabot[bot] Nov 1, 2025
70299f0
Merge pull request #608 from shapehq/dependabot/npm_and_yarn/react-3e…
simonbs Nov 3, 2025
213e344
Bump next-auth from 5.0.0-beta.29 to 5.0.0-beta.30
dependabot[bot] Nov 15, 2025
bf4a151
Merge pull request #611 from shapehq/dependabot/npm_and_yarn/next-aut…
simonbs Nov 17, 2025
9805658
Bump next from 15.3.4 to 15.5.6
dependabot[bot] Nov 17, 2025
9833ede
Bump the everything-else group across 1 directory with 35 updates
dependabot[bot] Nov 17, 2025
12c821c
Fixes incorrect types
simonbs Nov 17, 2025
955c58d
Merge pull request #610 from shapehq/dependabot/npm_and_yarn/next-15.5.6
simonbs Nov 17, 2025
64a9d31
Sets jsx to preserve
simonbs Nov 17, 2025
59fae5e
Merge pull request #613 from shapehq/enhancement/jsx-preserve
simonbs Nov 17, 2025
5a79b82
Merge branch 'develop' into dependabot/npm_and_yarn/everything-else-e…
simonbs Nov 17, 2025
a3d0cc3
Fixes incorrect schema
simonbs Nov 17, 2025
93d086f
Fixes build issue
simonbs Nov 17, 2025
85a9c52
Migrates to eslint
simonbs Nov 17, 2025
9b8435c
Fixes linting errors
simonbs Nov 17, 2025
111606e
Fixes random color
simonbs Nov 17, 2025
920e036
Fixes build error
simonbs Nov 17, 2025
e877e32
Extends next/core-web-vitals
simonbs Nov 17, 2025
622d871
Fixes test
simonbs Nov 17, 2025
d096a85
Ignores .next
simonbs Nov 17, 2025
065fb2b
Improves formatting
simonbs Nov 17, 2025
37e2a4f
Fixes build error
simonbs Nov 17, 2025
c2961c0
Ignores linting error
simonbs Nov 17, 2025
566ff3f
Merge pull request #614 from shapehq/enhancement/migrate-to-es-lint
simonbs Nov 17, 2025
52da9f3
Merge branch 'develop' into dependabot/npm_and_yarn/everything-else-e…
simonbs Nov 17, 2025
10d878a
Fixes package installation
simonbs Nov 17, 2025
b2956ae
Fixes merge error
simonbs Nov 17, 2025
51db08f
Removes trailing whitespace
simonbs Nov 17, 2025
a47b3db
Lowers eslint-config-next to v15
simonbs Nov 17, 2025
03b5bfb
Updates packages
simonbs Nov 17, 2025
6b9ce07
Merge pull request #612 from shapehq/dependabot/npm_and_yarn/everythi…
simonbs Nov 17, 2025
7a47789
Upgrades to Next 16
simonbs Nov 17, 2025
eee9371
Removes eslint from next.config.js
simonbs Nov 17, 2025
16fc020
Removes .eslintrc.json
simonbs Nov 17, 2025
8f8e8a5
Updates to eslint-config-next v16
simonbs Nov 17, 2025
6dba2ce
Updates to eslint-config-next v16
simonbs Nov 17, 2025
32a0549
Merge branch 'next16' of github.com:shapehq/framna-docs into next16
simonbs Nov 17, 2025
3f173a8
Merge branch 'develop' into next16
simonbs Nov 17, 2025
dee3e66
Updates packages
simonbs Nov 17, 2025
8cd1aa1
Adds missing package
simonbs Nov 17, 2025
280932d
Implements Copilot's feedback
simonbs Nov 17, 2025
a246301
Fixes hydration error
simonbs Nov 17, 2025
cc3e0f8
Uses Node 24.11
simonbs Nov 17, 2025
421b8f7
Specifies any Node 24 version
simonbs Nov 17, 2025
49e0c62
Docker uses Node 24
simonbs Nov 17, 2025
7863eaf
Removes GitHub Actions linting
simonbs Nov 17, 2025
de25c89
Merge pull request #616 from shapehq/remove-action-lint
simonbs Nov 17, 2025
0e92fbb
Merge branch 'develop' into next16
simonbs Nov 17, 2025
7ad7a7c
Setup Node version in lint workflow
simonbs Nov 17, 2025
2c2e2ba
Relaxes the npm requirement
simonbs Nov 17, 2025
7c1862d
Merge pull request #615 from shapehq/next16
simonbs Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 0 additions & 27 deletions .eslintrc.json

This file was deleted.

31 changes: 0 additions & 31 deletions .github/workflows/action-lint.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 24
- name: Setup Environment
run: cp .env.example .env.local
- name: Install Dependencies
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ jobs:
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
- name: Install modules
run: npm install
- name: Run ESLint
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 24
- name: Install Dependencies
run: npm install
- name: Run Unit Tests
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.13.1
24
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:20.8.1-alpine AS base
FROM node:24-alpine AS base

# Install dependencies only when needed
FROM base AS deps
Expand Down
6 changes: 3 additions & 3 deletions __test__/auth/AuthjsAccountsOAuthTokenRepository.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ test("It gets token for user ID and provider", async () => {
async disconnect() {},
}
},
async query(_query, values: any[] = []) {
async query(_query, values: readonly unknown[] = []) {
queryProvider = values[0]
queryUserId = values[1]
return {
Expand Down Expand Up @@ -44,7 +44,7 @@ test("It does not set token", async () => {
async disconnect() {},
}
},
async query(_query, _values: any[] = []) {
async query(_query, _values: readonly unknown[] = []) {
didSetToken = true
return { rows: [] }
}
Expand All @@ -67,7 +67,7 @@ test("It does not delete token", async () => {
async disconnect() {},
}
},
async query(_query, _values: any[] = []) {
async query(_query, _values: readonly unknown[] = []) {
didDeleteToken = true
return { rows: [] }
}
Expand Down
16 changes: 8 additions & 8 deletions __test__/auth/OAuthTokenRepository.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ test("It reads the auth token for the specified user", async () => {
db: {
async connect() {
return {
async query(_query: string, _values: any[] = []) {
async query(_query: string, _values: readonly unknown[] = []) {
return { rows: [] }
},
async disconnect() {},
}
},
async query(_query: string, values: any[] = []) {
async query(_query: string, values: [string, string]) {
readProvider = values[0]
readUserId = values[1]
return {
Expand All @@ -36,20 +36,20 @@ test("It reads the auth token for the specified user", async () => {
test("It stores the auth token for the specified user", async () => {
let storedProvider: string | undefined
let storedUserId: string | undefined
let storedAccessToken: any | undefined
let storedRefreshToken: any | undefined
let storedAccessToken: string | undefined
let storedRefreshToken: string | undefined
const sut = new OAuthTokenRepository({
provider: "github",
db: {
async connect() {
return {
async query(_query: string, _values: any[] = []) {
async query(_query: string, _values: readonly unknown[] = []) {
return { rows: [] }
},
async disconnect() {},
}
},
async query(_query: string, values: any[] = []) {
async query(_query: string, values: [string, string, string, string]) {
storedProvider = values[0]
storedUserId = values[1]
storedAccessToken = values[2]
Expand All @@ -76,13 +76,13 @@ test("It deletes the auth token for the specified user", async () => {
db: {
async connect() {
return {
async query(_query: string, _values: any[] = []) {
async query(_query: string, _values: readonly unknown[] = []) {
return { rows: [] }
},
async disconnect() {},
}
},
async query(_query: string, values: any[] = []) {
async query(_query: string, values: [string, string]) {
deletedUserId = values[1]
return { rows: [] }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ test("It does not refresh an OAuth token when the initial request was successful
},
oauthTokenRefresher: {
async refreshOAuthToken(_refreshToken) {
didRefreshOAuthToken = true
return {
accessToken: "newAccessToken",
refreshToken: "newRefreshToken"
Expand Down
2 changes: 1 addition & 1 deletion __test__/common/utils/saneParseInt.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { saneParseInt } from "@/common"

test("It parses an integer", async () => {
// @ts-ignore
// @ts-expect-error - verifying that non-string input is rejected
const val = saneParseInt(42 as string)
expect(val).toBe(42)
})
Expand Down
2 changes: 1 addition & 1 deletion __test__/projects/GitHubRepositoryDataSource.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ test("It queries for both .yml and .yaml file extension with no extension", asyn
})

test("It loads repositories for all logins", async () => {
let searchQueries: string[] = []
const searchQueries: string[] = []
const sut = new GitHubRepositoryDataSource({
repositoryNameSuffix: "-openapi",
projectConfigurationFilename: ".demo-docs",
Expand Down
31 changes: 31 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import js from "@eslint/js"
import nextCoreWebVitals from "eslint-config-next/core-web-vitals"
import tseslint from "typescript-eslint"

const config = [
...nextCoreWebVitals,
js.configs.recommended,
...tseslint.configs.recommended,
{
ignores: ["next-env.d.ts", ".next"],
rules: {
"array-callback-return": ["error"],
"no-await-in-loop": ["error"],
"no-constant-binary-expression": ["error"],
"no-constructor-return": ["error"],
"no-duplicate-imports": ["error"],
"no-new-native-nonconstructor": ["error"],
"no-self-compare": ["error"],
"no-template-curly-in-string": ["error"],
"no-unmodified-loop-condition": ["error"],
"no-unreachable-loop": ["error"],
"no-unused-private-class-members": ["error"],
"require-atomic-updates": ["error"],
"@typescript-eslint/no-unused-vars": ["error", {
argsIgnorePattern: "^_",
}],
},
}
]

export default config
5 changes: 0 additions & 5 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
eslint: {
// Allows production builds to successfully complete even if it has linting errors.
// This is only OK because we do linting as part of our CI setup.
ignoreDuringBuilds: true,
},
// Output standalone to be used for Docker builds.
output: 'standalone',
}
Expand Down
Loading
Loading