Merge pull request #3122 from jspsych/update-config-package

Update `@jspsych/config` dependencies

(rebased-with-history from commit 76fca2712f)
This commit is contained in:
bjoluc 2023-11-10 21:15:13 +01:00
commit c31b859533
9 changed files with 2095 additions and 1384 deletions

View File

@ -0,0 +1,5 @@
---
"@jspsych/config": patch
---
Remove erroneous browser builds from the rollup configuration returned by `makeNodeRollupConfig()`

View File

@ -0,0 +1,9 @@
---
"@jspsych/config": major
---
Upgrade build tools to their latest versions. This doesn't introduce breaking changes to the artifacts built using `@jspsych/config`, but it requires some minor changes to projects using `@jspsych/config`:
- The minimum required Node.js version is now 18.0.0
- Jest has been upgraded from v28 to v29 and ts-jest has been replaced with the more performant Sucrase Jest plugin to avoid significant memory leaks. As a consequence, Jest does no longer type-check code. If you are facing any issues, please check Jest's [upgrade guide](https://jestjs.io/docs/upgrading-to-jest29) for instructions on updating your tests.
- TypeScript has been upgraded from version 4 to version 5. This is very unlikely to break anything in your code though.

View File

@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
node: [18] node: [18, 20]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node }} - name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v3 uses: actions/setup-node@v3
@ -38,13 +38,5 @@ jobs:
- name: Build packages - name: Build packages
run: npm run build run: npm run build
# TODO setup linting
# - name: Lint
# run: npm run lint
- name: Run tests - name: Run tests
run: npm run test -- --ci --coverage --maxWorkers=2 --reporters=default --reporters=github-actions run: npm run test -- --ci --coverage --maxWorkers=2 --reporters=default --reporters=github-actions
# TODO setup codecov or coveralls
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v1

View File

@ -16,12 +16,12 @@ jobs:
name: Release name: Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 20
cache: npm cache: npm
- name: Install dependencies - name: Install dependencies
@ -31,9 +31,9 @@ jobs:
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: node_modules/.cache/turbo path: node_modules/.cache/turbo
key: ${{ runner.os }}-node-18-turbo-${{ hashFiles('node_modules/.cache/turbo') }} key: ${{ runner.os }}-node-20-turbo-${{ hashFiles('node_modules/.cache/turbo') }}
restore-keys: | restore-keys: |
${{ runner.os }}-node-18-turbo- ${{ runner.os }}-node-20-turbo-
- name: Check types - name: Check types
run: npm run tsc run: npm run tsc

3401
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -19,6 +19,11 @@
"docs:deploy": "poetry install && poetry run mike deploy -u", "docs:deploy": "poetry install && poetry run mike deploy -u",
"docs:serve": "poetry install && poetry run mike serve" "docs:serve": "poetry install && poetry run mike serve"
}, },
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
},
"packageManager": "npm@8.3.1",
"devDependencies": { "devDependencies": {
"@changesets/changelog-github": "^0.4.7", "@changesets/changelog-github": "^0.4.7",
"@changesets/cli": "^2.25.2", "@changesets/cli": "^2.25.2",

View File

@ -21,8 +21,7 @@
"./tsconfig.contrib.json": "./tsconfig.contrib.json" "./tsconfig.contrib.json": "./tsconfig.contrib.json"
}, },
"engines": { "engines": {
"node": ">=18", "node": ">=18.0.0"
"npm": ">=8"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -36,29 +35,29 @@
}, },
"homepage": "https://www.jspsych.org/latest/developers/configuration", "homepage": "https://www.jspsych.org/latest/developers/configuration",
"dependencies": { "dependencies": {
"@rollup/plugin-commonjs": "23.0.2", "@rollup/plugin-commonjs": "25.0.7",
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.2.3",
"@sucrase/jest-plugin": "3.0.0", "@sucrase/jest-plugin": "3.0.0",
"@types/gulp": "4.0.10", "@types/gulp": "4.0.17",
"@types/jest": "29.2.3", "@types/jest": "29.5.8",
"alias-hq": "github:bjoluc/alias-hq#fix-jest-plugin", "alias-hq": "6.2.3",
"canvas": "2.11.2", "canvas": "^2.11.2",
"esbuild": "0.15.14", "esbuild": "0.15.14",
"gulp": "4.0.2", "gulp": "4.0.2",
"gulp-cli": "2.3.0", "gulp-cli": "2.3.0",
"gulp-file": "0.4.0", "gulp-file": "0.4.0",
"gulp-rename": "2.0.0", "gulp-rename": "2.0.0",
"gulp-replace": "1.1.3", "gulp-replace": "1.1.4",
"gulp-zip": "5.1.0", "gulp-zip": "6.0.0",
"jest": "29.3.1", "jest": "29.7.0",
"jest-environment-jsdom": "29.3.1", "jest-environment-jsdom": "29.7.0",
"merge-stream": "2.0.0", "merge-stream": "2.0.0",
"rollup": "3.3.0", "rollup": "4.3.0",
"rollup-plugin-dts": "5.0.0", "rollup-plugin-dts": "5.0.0",
"rollup-plugin-esbuild": "5.0.0", "rollup-plugin-esbuild": "5.0.0",
"rollup-plugin-node-externals": "5.0.2", "rollup-plugin-node-externals": "5.0.2",
"sucrase": "3.29.0", "sucrase": "3.34.0",
"tslib": "2.4.1", "tslib": "2.6.2",
"typescript": "4.9.3" "typescript": "^5.2.2"
} }
} }

View File

@ -14,7 +14,7 @@ describe("survey-html-form plugin", () => {
]); ]);
expect( expect(
displayElement.querySelectorAll('#jspsych-survey-html-form input:not([type="submit"]').length displayElement.querySelectorAll('#jspsych-survey-html-form input:not([type="submit"])').length
).toBe(3); ).toBe(3);
// Provide some test input // Provide some test input

View File

@ -62,7 +62,7 @@ describe("survey-likert plugin simulation", () => {
await expectFinished(); await expectFinished();
const surveyData = getData().values()[0].response; const surveyData = getData().values()[0].response as Record<string, number>;
const all_valid = Object.entries(surveyData).every((x) => { const all_valid = Object.entries(surveyData).every((x) => {
return x[1] <= 4 && x[1] >= 0; return x[1] <= 4 && x[1] >= 0;
}); });
@ -94,7 +94,7 @@ describe("survey-likert plugin simulation", () => {
await expectFinished(); await expectFinished();
const surveyData = getData().values()[0].response; const surveyData = getData().values()[0].response as Record<string, number>;
const all_valid = Object.entries(surveyData).every((x) => { const all_valid = Object.entries(surveyData).every((x) => {
return x[1] <= 4 && x[1] >= 0; return x[1] <= 4 && x[1] >= 0;
}); });