c6ef857d57
<!-- Thanks for opening a PR! Your contribution is much appreciated. In order to make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below. Choose the right checklist for the change that you're making: --> This serves to add support for [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) hashes for scripts added from the new app directory. This also has support for utilizing nonce values passed from request headers (expected to be generated per request in middleware) in the bootstrapping scripts via the `Content-Security-Policy` header as such: ``` Content-Security-Policy: script-src 'nonce-2726c7f26c' ``` Which results in the inline scripts having a new `nonce` attribute hash added. These features combined support for setting an aggressive Content Security Policy on scripts loaded. ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [x] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [x] Make sure the linting passes by running `pnpm lint` - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples) Co-authored-by: Steven <steven@ceriously.com>
220 lines
8.4 KiB
JSON
220 lines
8.4 KiB
JSON
{
|
|
"name": "nextjs-project",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"workspaces": [
|
|
"packages/*"
|
|
],
|
|
"scripts": {
|
|
"new-error": "plop error",
|
|
"new-test": "plop test",
|
|
"clean": "pnpm lerna clean -y && pnpm lerna bootstrap && pnpm lerna exec 'rm -rf ./dist'",
|
|
"build": "turbo run build",
|
|
"lerna": "lerna",
|
|
"dev": "lerna run dev --stream --parallel",
|
|
"test-types": "pnpm tsc",
|
|
"test-unit": "pnpm jest test/unit/",
|
|
"test-dev": "cross-env NEXT_TEST_MODE=dev pnpm testheadless",
|
|
"test-start": "cross-env NEXT_TEST_MODE=start pnpm testheadless",
|
|
"test-deploy": "cross-env NEXT_TEST_MODE=deploy pnpm testheadless",
|
|
"testonly": "pnpm jest --runInBand",
|
|
"testheadless": "cross-env HEADLESS=true pnpm testonly",
|
|
"genstats": "cross-env LOCAL_STATS=true node .github/actions/next-stats-action/src/index.js",
|
|
"git-reset": "git reset --hard HEAD",
|
|
"git-clean": "git clean -d -x -e node_modules -e packages -f",
|
|
"lint-typescript": "lerna run typescript",
|
|
"lint-eslint": "eslint . --ext js,jsx,ts,tsx --max-warnings=0 --config .eslintrc.json --no-eslintrc",
|
|
"lint-no-typescript": "run-p prettier-check lint-eslint",
|
|
"lint": "run-p test-types lint-typescript prettier-check lint-eslint lint-language",
|
|
"lint-fix": "pnpm prettier-fix && eslint . --ext js,jsx,ts,tsx --fix --max-warnings=0 --config .eslintrc.json --no-eslintrc",
|
|
"lint-language": "alex .",
|
|
"prettier-check": "prettier --check .",
|
|
"prettier-fix": "prettier --write .",
|
|
"types": "lerna run types --stream",
|
|
"typescript": "turbo run typescript",
|
|
"prepublishOnly": "turbo run build",
|
|
"publish-canary": "git checkout canary && git pull && lerna version prerelease --preid canary --force-publish && release --pre --skip-questions",
|
|
"publish-stable": "lerna version --force-publish",
|
|
"lint-staged": "lint-staged",
|
|
"next-with-deps": "./scripts/next-with-deps.sh",
|
|
"next": "node --trace-deprecation --enable-source-maps packages/next/dist/bin/next",
|
|
"next-react-17": "__NEXT_REACT_CHANNEL=17 node --trace-deprecation --enable-source-maps -r ./test/lib/react-channel-require-hook.js packages/next/dist/bin/next",
|
|
"next-react-exp": "__NEXT_REACT_CHANNEL=exp node --trace-deprecation --enable-source-maps -r ./test/lib/react-channel-require-hook.js packages/next/dist/bin/next",
|
|
"next-no-sourcemaps": "node --trace-deprecation packages/next/dist/bin/next",
|
|
"clean-trace-jaeger": "rm -rf test/integration/basic/.next && TRACE_TARGET=JAEGER node --trace-deprecation --enable-source-maps packages/next/dist/bin/next build test/integration/basic",
|
|
"debug": "node --inspect packages/next/dist/bin/next",
|
|
"debug-react-exp": "__NEXT_REACT_CHANNEL=exp node --inspect --trace-deprecation --enable-source-maps -r ./test/lib/react-channel-require-hook.js packages/next/dist/bin/next",
|
|
"postinstall": "git config feature.manyFiles true && node scripts/install-native.mjs",
|
|
"version": "pnpm install && git add pnpm-lock.yaml",
|
|
"prepare": "husky install"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "7.18.0",
|
|
"@babel/eslint-parser": "7.18.2",
|
|
"@babel/generator": "7.18.0",
|
|
"@babel/parser": "7.12.11",
|
|
"@babel/plugin-proposal-object-rest-spread": "7.14.7",
|
|
"@babel/preset-flow": "7.14.5",
|
|
"@babel/preset-react": "7.14.5",
|
|
"@edge-runtime/jest-environment": "1.1.0-beta.31",
|
|
"@fullhuman/postcss-purgecss": "1.3.0",
|
|
"@mdx-js/loader": "0.18.0",
|
|
"@next/bundle-analyzer": "workspace:*",
|
|
"@next/env": "workspace:*",
|
|
"@next/eslint-plugin-next": "workspace:*",
|
|
"@next/mdx": "workspace:*",
|
|
"@next/plugin-storybook": "workspace:*",
|
|
"@next/polyfill-module": "workspace:*",
|
|
"@next/polyfill-nomodule": "workspace:*",
|
|
"@next/swc": "workspace:*",
|
|
"@svgr/webpack": "5.5.0",
|
|
"@swc/cli": "0.1.55",
|
|
"@swc/core": "1.2.203",
|
|
"@swc/helpers": "0.4.11",
|
|
"@testing-library/react": "13.0.0",
|
|
"@types/cheerio": "0.22.16",
|
|
"@types/fs-extra": "8.1.0",
|
|
"@types/html-validator": "5.0.3",
|
|
"@types/http-proxy": "1.17.3",
|
|
"@types/jest": "24.0.13",
|
|
"@types/node": "13.11.0",
|
|
"@types/node-fetch": "2.6.1",
|
|
"@types/react": "16.9.17",
|
|
"@types/react-dom": "16.9.4",
|
|
"@types/relay-runtime": "13.0.0",
|
|
"@types/selenium-webdriver": "4.0.15",
|
|
"@types/sharp": "0.29.3",
|
|
"@types/string-hash": "1.1.1",
|
|
"@types/trusted-types": "2.0.2",
|
|
"@typescript-eslint/eslint-plugin": "4.29.1",
|
|
"@typescript-eslint/parser": "4.29.1",
|
|
"@vercel/fetch": "6.1.1",
|
|
"@webassemblyjs/ast": "1.11.1",
|
|
"@webassemblyjs/floating-point-hex-parser": "1.11.1",
|
|
"@webassemblyjs/helper-api-error": "1.11.1",
|
|
"@webassemblyjs/helper-buffer": "1.11.1",
|
|
"@webassemblyjs/helper-code-frame": "npm:empty-npm-package@1.0.0",
|
|
"@webassemblyjs/helper-module-context": "npm:empty-npm-package@1.0.0",
|
|
"@webassemblyjs/helper-numbers": "1.11.1",
|
|
"@webassemblyjs/helper-wasm-bytecode": "1.11.1",
|
|
"@webassemblyjs/helper-wasm-section": "1.11.1",
|
|
"@webassemblyjs/ieee754": "1.11.1",
|
|
"@webassemblyjs/leb128": "1.11.1",
|
|
"@webassemblyjs/utf8": "1.11.1",
|
|
"@webassemblyjs/wasm-edit": "1.11.1",
|
|
"@webassemblyjs/wasm-gen": "1.11.1",
|
|
"@webassemblyjs/wasm-opt": "1.11.1",
|
|
"@webassemblyjs/wasm-parser": "1.11.1",
|
|
"@webassemblyjs/wast-parser": "npm:empty-npm-package@1.0.0",
|
|
"@webassemblyjs/wast-printer": "1.11.1",
|
|
"@zeit/next-typescript": "1.1.2-canary.0",
|
|
"abort-controller": "3.0.0",
|
|
"alex": "9.1.0",
|
|
"amphtml-validator": "1.0.35",
|
|
"async-sema": "3.0.1",
|
|
"browserslist": "4.20.2",
|
|
"chalk": "5.0.1",
|
|
"cheerio": "0.22.0",
|
|
"cookie": "0.4.1",
|
|
"cors": "2.8.5",
|
|
"coveralls": "3.0.3",
|
|
"create-next-app": "workspace:*",
|
|
"critters": "0.0.6",
|
|
"cross-env": "6.0.3",
|
|
"cross-spawn": "6.0.5",
|
|
"dd-trace": "2.3.0",
|
|
"es5-ext": "0.10.53",
|
|
"escape-string-regexp": "2.0.0",
|
|
"eslint": "7.24.0",
|
|
"eslint-config-next": "workspace:*",
|
|
"eslint-plugin-eslint-plugin": "4.3.0",
|
|
"eslint-plugin-import": "2.22.1",
|
|
"eslint-plugin-jest": "24.3.5",
|
|
"eslint-plugin-react": "7.23.2",
|
|
"eslint-plugin-react-hooks": "4.5.0",
|
|
"event-stream": "4.0.1",
|
|
"execa": "2.0.3",
|
|
"express": "4.17.0",
|
|
"faker": "5.5.3",
|
|
"faunadb": "2.6.1",
|
|
"firebase": "7.14.5",
|
|
"flat": "5.0.2",
|
|
"fs-extra": "9.0.0",
|
|
"get-port": "5.1.1",
|
|
"glob": "7.1.6",
|
|
"gzip-size": "5.1.1",
|
|
"html-validator": "5.1.18",
|
|
"husky": "8.0.0",
|
|
"image-size": "0.9.3",
|
|
"is-animated": "2.0.2",
|
|
"isomorphic-unfetch": "3.0.0",
|
|
"jest": "27.0.6",
|
|
"jest-extended": "1.2.1",
|
|
"ky": "0.19.1",
|
|
"ky-universal": "0.6.0",
|
|
"lerna": "4.0.0",
|
|
"lint-staged": "10.1.7",
|
|
"lost": "8.3.1",
|
|
"minimatch": "3.0.4",
|
|
"moment": "^2.24.0",
|
|
"nanoid": "3.1.30",
|
|
"next": "workspace:*",
|
|
"node-fetch": "2.6.7",
|
|
"node-notifier": "8.0.1",
|
|
"npm-run-all": "4.1.5",
|
|
"nprogress": "0.2.0",
|
|
"pixrem": "5.0.0",
|
|
"playwright-chromium": "1.22.2",
|
|
"plop": "3.0.5",
|
|
"postcss-nested": "4.2.1",
|
|
"postcss-pseudoelements": "5.0.0",
|
|
"postcss-short-size": "4.0.0",
|
|
"postcss-trolling": "0.1.7",
|
|
"prettier": "2.5.1",
|
|
"pretty-bytes": "5.3.0",
|
|
"pretty-ms": "7.0.0",
|
|
"random-seed": "0.3.0",
|
|
"react": "18.2.0",
|
|
"react-17": "npm:react@17.0.2",
|
|
"react-dom": "18.2.0",
|
|
"react-dom-17": "npm:react-dom@17.0.2",
|
|
"react-dom-exp": "npm:react-dom@0.0.0-experimental-7028ce745-20220907",
|
|
"react-exp": "npm:react@0.0.0-experimental-7028ce745-20220907",
|
|
"react-ssr-prepass": "1.0.8",
|
|
"react-virtualized": "9.22.3",
|
|
"relay-compiler": "13.0.2",
|
|
"relay-runtime": "13.0.2",
|
|
"release": "6.3.1",
|
|
"request-promise-core": "1.1.2",
|
|
"resolve-from": "5.0.0",
|
|
"sass": "1.54.0",
|
|
"seedrandom": "3.0.5",
|
|
"selenium-webdriver": "4.0.0-beta.4",
|
|
"semver": "7.3.7",
|
|
"shell-quote": "1.7.3",
|
|
"styled-components": "5.3.3",
|
|
"styled-jsx-plugin-postcss": "3.0.2",
|
|
"tailwindcss": "1.1.3",
|
|
"taskr": "1.1.0",
|
|
"tree-kill": "1.2.2",
|
|
"tsec": "0.2.1",
|
|
"turbo": "1.3.2-canary.1",
|
|
"typescript": "4.8.2",
|
|
"wait-port": "0.2.2",
|
|
"webpack": "5.74.0",
|
|
"webpack-bundle-analyzer": "4.3.0"
|
|
},
|
|
"resolutions": {
|
|
"browserslist": "4.20.2",
|
|
"caniuse-lite": "1.0.30001332",
|
|
"@babel/core": "7.18.0",
|
|
"@babel/parser": "7.18.0",
|
|
"@babel/types": "7.18.0",
|
|
"@babel/traverse": "7.18.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=12.22.0",
|
|
"pnpm": ">= 7.2.1"
|
|
},
|
|
"packageManager": "pnpm@7.3.0"
|
|
}
|