diff --git a/package.json b/package.json index 019ab72308b514..e648d75e6027cb 100644 --- a/package.json +++ b/package.json @@ -135,6 +135,7 @@ "eslint-plugin-react-hooks": "4.5.0", "event-stream": "4.0.1", "execa": "2.0.3", + "expect-type": "0.14.2", "express": "4.17.0", "faker": "5.5.3", "faunadb": "2.6.1", diff --git a/packages/next/types/index.d.ts b/packages/next/types/index.d.ts index 0fb19548967310..80beebdef8aeee 100644 --- a/packages/next/types/index.d.ts +++ b/packages/next/types/index.d.ts @@ -175,10 +175,9 @@ export type GetServerSideProps< context: GetServerSidePropsContext<Q, D> ) => Promise<GetServerSidePropsResult<P>> -export type InferGetServerSidePropsType<T extends (args: any) => any> = Extract< - Awaited<ReturnType<T>>, - { props: any } ->['props'] +export type InferGetServerSidePropsType<T extends (args: any) => any> = Awaited< + Extract<Awaited<ReturnType<T>>, { props: any }>['props'] +> declare global { interface Crypto { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08b7b467097dcc..53b42905b68cd0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -96,6 +96,7 @@ importers: eslint-plugin-react-hooks: 4.5.0 event-stream: 4.0.1 execa: 2.0.3 + expect-type: 0.14.2 express: 4.17.0 faker: 5.5.3 faunadb: 2.6.1 @@ -251,6 +252,7 @@ importers: eslint-plugin-react-hooks: 4.5.0_eslint@7.24.0 event-stream: 4.0.1 execa: 2.0.3 + expect-type: 0.14.2 express: 4.17.0 faker: 5.5.3 faunadb: 2.6.1 @@ -368,22 +370,27 @@ importers: '@next/eslint-plugin-next': 12.3.1-canary.3 '@rushstack/eslint-patch': ^1.1.3 '@typescript-eslint/parser': ^5.21.0 + eslint: ^7.23.0 || ^8.0.0 eslint-import-resolver-node: ^0.3.6 eslint-import-resolver-typescript: ^2.7.1 eslint-plugin-import: ^2.26.0 eslint-plugin-jsx-a11y: ^6.5.1 eslint-plugin-react: ^7.31.7 eslint-plugin-react-hooks: ^4.5.0 + typescript: '>=3.3.1' dependencies: '@next/eslint-plugin-next': link:../eslint-plugin-next '@rushstack/eslint-patch': 1.1.3 '@typescript-eslint/parser': 5.21.0_td6yqss6ra3qoebludh4ctrhym + eslint: 7.32.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy eslint-plugin-import: 2.26.0_asoxhzjlkaozogjqriaz4fv5ly eslint-plugin-jsx-a11y: 6.5.1_eslint@7.32.0 eslint-plugin-react: 7.31.8_eslint@7.32.0 eslint-plugin-react-hooks: 4.5.0_eslint@7.32.0 + devDependencies: + typescript: 4.8.2 packages/eslint-plugin-next: specifiers: @@ -500,6 +507,7 @@ importers: domain-browser: 4.19.0 edge-runtime: 1.1.0-beta.31 events: 3.3.0 + fibers: '>= 3.1.0' find-cache-dir: 3.3.1 find-up: 4.1.0 fresh: 0.5.2 @@ -527,6 +535,7 @@ importers: neo-async: 2.6.1 node-fetch: 2.6.7 node-html-parser: 5.3.3 + node-sass: ^6.0.0 || ^7.0.0 ora: 4.0.4 os-browserify: 0.3.0 p-limit: 3.1.0 @@ -546,10 +555,13 @@ importers: punycode: 2.1.1 querystring-es3: 0.2.1 raw-body: 2.4.1 + react: ^17.0.2 || ^18.0.0-0 + react-dom: ^17.0.2 || ^18.0.0-0 react-is: 17.0.2 react-refresh: 0.12.0 react-server-dom-webpack: 0.0.0-experimental-975b64464-20220914 regenerator-runtime: 0.13.4 + sass: ^1.3.0 sass-loader: 12.4.0 schema-utils2: npm:schema-utils@2.7.1 schema-utils3: npm:schema-utils@3.0.0 @@ -585,9 +597,11 @@ importers: '@next/env': link:../next-env '@swc/helpers': 0.4.11 caniuse-lite: 1.0.30001332 + fibers: 5.0.3 + node-sass: 7.0.3 postcss: 8.4.14 - styled-jsx: 5.0.7_@babel+core@7.18.0 - use-sync-external-store: 1.2.0 + styled-jsx: 5.0.7_uuaxwgga6hqycsez5ok7v2wg4i + use-sync-external-store: 1.2.0_react@18.2.0 devDependencies: '@ampproject/toolbox-optimizer': 2.8.3 '@babel/code-frame': 7.12.11 @@ -735,11 +749,14 @@ importers: punycode: 2.1.1 querystring-es3: 0.2.1 raw-body: 2.4.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 react-is: 17.0.2 react-refresh: 0.12.0 - react-server-dom-webpack: 0.0.0-experimental-975b64464-20220914_webpack@5.74.0 + react-server-dom-webpack: 0.0.0-experimental-975b64464-20220914_zbur65pq5ttfo7ncb2n2vp2s3m regenerator-runtime: 0.13.4 - sass-loader: 12.4.0_webpack@5.74.0 + sass: 1.54.0 + sass-loader: 12.4.0_y7k4qxzyfvxio3t476zhrzlwf4 schema-utils2: /schema-utils/2.7.1 schema-utils3: /schema-utils/3.0.0 semver: 7.3.2 @@ -758,7 +775,7 @@ importers: timers-browserify: 2.0.12 tty-browserify: 0.0.1 ua-parser-js: 0.7.28 - unistore: 3.4.1 + unistore: 3.4.1_react@18.2.0 util: 0.12.4 uuid: 8.3.2 vm-browserify: 1.1.2 @@ -811,10 +828,19 @@ importers: rimraf: 3.0.2 packages/next-mdx: - specifiers: {} + specifiers: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '*' + dependencies: + '@mdx-js/react': 2.1.3_react@18.2.0 + devDependencies: + '@mdx-js/loader': 0.18.0_react@18.2.0 packages/next-plugin-storybook: - specifiers: {} + specifiers: + next: '*' + dependencies: + next: link:../next packages/next-polyfill-module: specifiers: @@ -849,10 +875,13 @@ importers: css.escape: 1.5.1 data-uri-to-buffer: 3.0.1 platform: 1.3.6 + react: ^17.0.2 + react-dom: ^17.0.2 shell-quote: 1.7.3 source-map: 0.8.0-beta.0 stacktrace-parser: 0.1.10 strip-ansi: 6.0.1 + webpack: ^4 || ^5 dependencies: '@babel/code-frame': 7.12.11 '@types/babel__code-frame': 7.0.2 @@ -865,6 +894,10 @@ importers: source-map: 0.8.0-beta.0 stacktrace-parser: 0.1.10 strip-ansi: 6.0.1 + devDependencies: + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + webpack: 5.74.0 packages/react-refresh-utils: specifiers: @@ -1102,6 +1135,21 @@ packages: semver: 6.3.0 dev: true + /@babel/helper-compilation-targets/7.18.2: + resolution: + { + integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.17.10 + '@babel/helper-validator-option': 7.16.7 + browserslist: 4.20.2 + semver: 6.3.0 + dev: true + /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.0: resolution: { @@ -1845,6 +1893,22 @@ packages: '@babel/plugin-transform-parameters': 7.14.5_@babel+core@7.18.0 dev: true + /@babel/plugin-proposal-object-rest-spread/7.18.0: + resolution: + { + integrity: sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.10 + '@babel/helper-compilation-targets': 7.18.2 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3 + '@babel/plugin-transform-parameters': 7.17.12 + dev: true + /@babel/plugin-proposal-object-rest-spread/7.18.0_@babel+core@7.18.0: resolution: { @@ -2137,6 +2201,18 @@ packages: '@babel/core': 7.18.0 '@babel/helper-plugin-utils': 7.16.7 + /@babel/plugin-syntax-jsx/7.14.5: + resolution: + { + integrity: sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.17.12 + dev: true + /@babel/plugin-syntax-jsx/7.14.5_@babel+core@7.18.0: resolution: { @@ -2183,6 +2259,17 @@ packages: '@babel/core': 7.18.0 '@babel/helper-plugin-utils': 7.16.7 + /@babel/plugin-syntax-object-rest-spread/7.8.3: + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.17.12 + dev: true + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.18.0: resolution: { @@ -2890,6 +2977,18 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true + /@babel/plugin-transform-parameters/7.17.12: + resolution: + { + integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.17.12 + dev: true + /@babel/plugin-transform-parameters/7.17.12_@babel+core@7.18.0: resolution: { @@ -4306,6 +4405,12 @@ packages: purgecss: 1.4.2 dev: true + /@gar/promisify/1.1.3: + resolution: + { + integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==, + } + /@grpc/grpc-js/0.8.1: resolution: { @@ -5627,6 +5732,20 @@ packages: - supports-color dev: true + /@mdx-js/loader/0.18.0_react@18.2.0: + resolution: + { + integrity: sha512-eRgtB14JwyIiZZPXjrpYhSHHQ5+GtZ5cbG744EV2DZVKjxxg4OT/EtKc4JoxWHRK2HVU6W7cf8IXjQpqDviRuQ==, + } + dependencies: + '@mdx-js/mdx': 0.18.2 + '@mdx-js/tag': 0.18.0_react@18.2.0 + loader-utils: 1.4.0 + transitivePeerDependencies: + - '@babel/core' + - react + dev: true + /@mdx-js/loader/0.18.0_uuaxwgga6hqycsez5ok7v2wg4i: resolution: { @@ -5641,6 +5760,27 @@ packages: - react dev: true + /@mdx-js/mdx/0.18.2: + resolution: + { + integrity: sha512-7DqNBOGPV+36qpH8YZmKI5uvuXhrGZFhJ4C9+9uaQSpH2hQg9xAfdzjSSEO8FQhAlu6wJtUgb72J5/eWdc1HFw==, + } + dependencies: + '@babel/plugin-proposal-object-rest-spread': 7.18.0 + '@babel/plugin-syntax-jsx': 7.14.5 + change-case: 3.1.0 + detab: 2.0.4 + mdast-util-to-hast: 4.0.0 + remark-parse: 6.0.3 + remark-squeeze-paragraphs: 3.0.4 + to-style: 1.3.3 + unified: 7.1.0 + unist-builder: 1.0.4 + unist-util-visit: 1.4.1 + transitivePeerDependencies: + - '@babel/core' + dev: true + /@mdx-js/mdx/0.18.2_@babel+core@7.18.0: resolution: { @@ -5662,6 +5802,19 @@ packages: - '@babel/core' dev: true + /@mdx-js/react/2.1.3_react@18.2.0: + resolution: + { + integrity: sha512-11n4lTvvRyxq3OYbWJwEYM+7q6PE0GxKbk0AwYIIQmrRkxDeljIsjDQkKOgdr/orgRRbYy5zi+iERdnwe01CHQ==, + } + peerDependencies: + react: '>=16' + dependencies: + '@types/mdx': 2.0.2 + '@types/react': 16.9.17 + react: 18.2.0 + dev: false + /@mdx-js/tag/0.18.0_react@18.2.0: resolution: { @@ -5742,6 +5895,15 @@ packages: } dev: true + /@npmcli/fs/1.1.1: + resolution: + { + integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==, + } + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.7 + /@npmcli/git/2.0.4: resolution: { @@ -5781,7 +5943,6 @@ packages: engines: { node: '>=10' } dependencies: mkdirp: 1.0.4 - dev: true /@npmcli/node-gyp/1.0.2: resolution: @@ -6729,7 +6890,6 @@ packages: integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, } engines: { node: '>= 6' } - dev: true /@types/amphtml-validator/1.0.0: resolution: @@ -7220,6 +7380,13 @@ packages: } dev: true + /@types/mdx/2.0.2: + resolution: + { + integrity: sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==, + } + dev: false + /@types/micromatch/4.0.2: resolution: { @@ -7354,7 +7521,6 @@ packages: { integrity: sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==, } - dev: true /@types/q/1.5.2: resolution: @@ -7405,7 +7571,6 @@ packages: dependencies: '@types/prop-types': 15.7.3 csstype: 2.6.8 - dev: true /@types/relay-runtime/13.0.0: resolution: @@ -8146,7 +8311,6 @@ packages: { integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, } - dev: true /abort-controller/3.0.0: resolution: @@ -8303,7 +8467,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /agentkeepalive/3.4.1: resolution: @@ -8327,7 +8490,6 @@ packages: humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: true /aggregate-error/3.0.1: resolution: @@ -8338,7 +8500,6 @@ packages: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true /ajv-keywords/3.5.2_ajv@6.12.6: resolution: @@ -8475,7 +8636,6 @@ packages: integrity: sha512-wFUFA5bg5dviipbQQ32yOQhl6gcJaJXiHE7dvR8VYPG97+J/GNC5FKGepKdEDUFeXRzDxPF1X/Btc8L+v7oqIQ==, } engines: { node: '>=4' } - dev: true /ansi-regex/4.1.0: resolution: @@ -8592,7 +8752,6 @@ packages: { integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==, } - dev: true /are-we-there-yet/1.1.5: resolution: @@ -8604,6 +8763,26 @@ packages: readable-stream: 2.3.7 dev: true + /are-we-there-yet/2.0.0: + resolution: + { + integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==, + } + engines: { node: '>=10' } + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + + /are-we-there-yet/3.0.1: + resolution: + { + integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + /arg/4.1.0: resolution: { @@ -8895,7 +9074,6 @@ packages: } dependencies: safer-buffer: 2.1.2 - dev: true /assert-plus/1.0.0: resolution: @@ -8903,7 +9081,6 @@ packages: integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, } engines: { node: '>=0.8' } - dev: true /assert/2.0.0: resolution: @@ -8955,6 +9132,12 @@ packages: } dev: true + /async-foreach/0.1.3: + resolution: + { + integrity: sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==, + } + /async-retry/1.2.1: resolution: { @@ -9015,7 +9198,6 @@ packages: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, } - dev: true /asyncro/3.0.0: resolution: @@ -9110,14 +9292,12 @@ packages: { integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, } - dev: true /aws4/1.9.0: resolution: { integrity: sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==, } - dev: true /axe-core/4.3.5: resolution: @@ -9442,7 +9622,6 @@ packages: } dependencies: tweetnacl: 0.14.5 - dev: true /before-after-hook/1.4.0: resolution: @@ -9941,6 +10120,34 @@ packages: - bluebird dev: true + /cacache/15.3.0: + resolution: + { + integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==, + } + engines: { node: '>= 10' } + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.0 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.1.3 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + /cache-base/1.0.1: resolution: { @@ -10181,7 +10388,6 @@ packages: { integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, } - dev: true /ccount/1.1.0: resolution: @@ -10503,7 +10709,6 @@ packages: integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, } engines: { node: '>=10' } - dev: true /chrome-trace-event/1.0.2: resolution: @@ -10565,7 +10770,6 @@ packages: integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, } engines: { node: '>=6' } - dev: true /cli-boxes/2.2.1: resolution: @@ -10674,7 +10878,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-deep/4.0.1: resolution: @@ -10830,6 +11033,13 @@ packages: simple-swizzle: 0.2.2 dev: true + /color-support/1.1.3: + resolution: + { + integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==, + } + hasBin: true + /color/3.1.3: resolution: { @@ -10873,7 +11083,6 @@ packages: engines: { node: '>= 0.8' } dependencies: delayed-stream: 1.0.0 - dev: true /comma-separated-tokens/1.0.8: resolution: @@ -11084,7 +11293,6 @@ packages: { integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, } - dev: true /constant-case/2.0.0: resolution: @@ -11341,7 +11549,6 @@ packages: { integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, } - dev: true /cors/2.8.5: resolution: @@ -12023,7 +12230,6 @@ packages: { integrity: sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==, } - dev: true /csstype/3.0.10: resolution: @@ -12092,7 +12298,6 @@ packages: engines: { node: '>=0.10' } dependencies: assert-plus: 1.0.0 - dev: true /data-uri-to-buffer/3.0.1: resolution: @@ -12463,14 +12668,12 @@ packages: integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, } engines: { node: '>=0.4.0' } - dev: true /delegates/1.0.0: resolution: { integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, } - dev: true /depd/1.1.2: resolution: @@ -12478,7 +12681,6 @@ packages: integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, } engines: { node: '>= 0.6' } - dev: true /deprecation/2.3.1: resolution: @@ -12544,7 +12746,6 @@ packages: } engines: { node: '>=0.10' } hasBin: true - dev: true /detect-newline/3.1.0: resolution: @@ -12952,7 +13153,6 @@ packages: dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 - dev: true /ecdsa-sig-formatter/1.0.11: resolution: @@ -13080,7 +13280,6 @@ packages: } dependencies: iconv-lite: 0.6.2 - dev: true /end-of-stream/1.4.4: resolution: @@ -13129,7 +13328,6 @@ packages: integrity: sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==, } engines: { node: '>=6' } - dev: true /envinfo/7.7.4: resolution: @@ -13149,7 +13347,6 @@ packages: { integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, } - dev: true /error-ex/1.3.2: resolution: @@ -14088,6 +14285,13 @@ packages: homedir-polyfill: 1.0.3 dev: true + /expect-type/0.14.2: + resolution: + { + integrity: sha512-ed3+tr5ujbIYXZ8Pl/VgIphwJQ0q5tBLGGdn7Zvwt1WyPBRX83xjT5pT77P/GkuQbctx0K2ZNSSan7eruJqTCQ==, + } + dev: true + /expect/26.6.2: resolution: { @@ -14192,7 +14396,6 @@ packages: { integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, } - dev: true /external-editor/2.2.0: resolution: @@ -14251,7 +14454,6 @@ packages: integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, } engines: { '0': node >=0.6.0 } - dev: true /extsprintf/1.4.0: resolution: @@ -14259,7 +14461,6 @@ packages: integrity: sha512-6NW8DZ8pWBc5NbGYUiqqccj9dXnuSzilZYqprdKJBZsQodGH9IyUoFOGxIWVDcBzHMb8ET24aqx9p66tZEWZkA==, } engines: { '0': node >=0.6.0 } - dev: true /faker/5.5.3: resolution: @@ -14391,6 +14592,16 @@ packages: ua-parser-js: 0.7.31 dev: true + /fibers/5.0.3: + resolution: + { + integrity: sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==, + } + engines: { node: '>=10.0.0' } + requiresBuild: true + dependencies: + detect-libc: 1.0.3 + /figgy-pudding/3.5.1: resolution: { @@ -14749,7 +14960,6 @@ packages: { integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, } - dev: true /form-data/2.3.3: resolution: @@ -14761,7 +14971,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.30 - dev: true /form-data/2.5.1: resolution: @@ -14907,7 +15116,6 @@ packages: engines: { node: '>= 8' } dependencies: minipass: 3.1.3 - dev: true /fs.realpath/1.0.0: resolution: @@ -15001,6 +15209,48 @@ packages: wide-align: 1.1.3 dev: true + /gauge/3.0.2: + resolution: + { + integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==, + } + engines: { node: '>=10' } + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.3 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.3 + + /gauge/4.0.4: + resolution: + { + integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + /gaze/1.1.3: + resolution: + { + integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==, + } + engines: { node: '>= 4.0.0' } + dependencies: + globule: 1.3.4 + /generic-names/2.0.1: resolution: { @@ -15023,7 +15273,6 @@ packages: integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, } engines: { node: 6.* || 8.* || >= 10.* } - dev: true /get-intrinsic/1.1.1: resolution: @@ -15088,7 +15337,6 @@ packages: integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==, } engines: { node: '>=0.10.0' } - dev: true /get-stream/3.0.0: resolution: @@ -15150,7 +15398,6 @@ packages: } dependencies: assert-plus: 1.0.0 - dev: true /gh-got/6.0.0: resolution: @@ -15558,6 +15805,17 @@ packages: } dev: true + /globule/1.3.4: + resolution: + { + integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==, + } + engines: { node: '>= 0.10' } + dependencies: + glob: 7.1.7 + lodash: 4.17.21 + minimatch: 3.0.4 + /got/10.7.0: resolution: { @@ -15636,7 +15894,6 @@ packages: { integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, } - dev: true /graceful-fs/4.2.9: resolution: @@ -15715,7 +15972,6 @@ packages: integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, } engines: { node: '>=4' } - dev: true /har-validator/5.1.3: resolution: @@ -15727,7 +15983,6 @@ packages: dependencies: ajv: 6.12.6 har-schema: 2.0.0 - dev: true /hard-rejection/2.1.0: resolution: @@ -15838,7 +16093,6 @@ packages: { integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, } - dev: true /has-value/0.3.1: resolution: @@ -16107,7 +16361,6 @@ packages: engines: { node: '>=10' } dependencies: lru-cache: 6.0.0 - dev: true /hsl-regex/1.0.0: resolution: @@ -16228,7 +16481,6 @@ packages: { integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==, } - dev: true /http-errors/1.7.2: resolution: @@ -16287,7 +16539,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /http-proxy/1.18.1: resolution: @@ -16313,7 +16564,6 @@ packages: assert-plus: 1.0.0 jsprim: 1.4.1 sshpk: 1.16.1 - dev: true /http-status/1.5.2: resolution: @@ -16351,7 +16601,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /human-signals/1.1.1: resolution: @@ -16375,7 +16624,6 @@ packages: } dependencies: ms: 2.1.2 - dev: true /husky/8.0.0: resolution: @@ -16403,7 +16651,6 @@ packages: engines: { node: '>=0.10.0' } dependencies: safer-buffer: 2.1.2 - dev: true /icss-replace-symbols/1.1.0: resolution: @@ -16615,7 +16862,6 @@ packages: { integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==, } - dev: true /inflight/1.0.6: resolution: @@ -16777,7 +17023,6 @@ packages: { integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==, } - dev: true /ipaddr.js/1.9.0: resolution: @@ -17118,7 +17363,6 @@ packages: integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, } engines: { node: '>=4' } - dev: true /is-fullwidth-code-point/3.0.0: resolution: @@ -17221,7 +17465,6 @@ packages: { integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==, } - dev: true /is-lower-case/1.1.3: resolution: @@ -17552,7 +17795,6 @@ packages: { integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, } - dev: true /is-unc-path/1.0.0: resolution: @@ -17730,7 +17972,6 @@ packages: { integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, } - dev: true /istanbul-lib-coverage/3.0.0: resolution: @@ -18556,7 +18797,6 @@ packages: { integrity: sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==, } - dev: true /js-tokens/4.0.0: resolution: @@ -18579,7 +18819,6 @@ packages: { integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, } - dev: true /jscodeshift/0.13.1_@babel+preset-env@7.18.0: resolution: @@ -18731,7 +18970,6 @@ packages: { integrity: sha512-a3xHnILGMtk+hDOqNwHzF6e2fNbiMrXZvxKQiEv2MlgQP+pjIOzqAmKYD2mDpXYE/44M7g+n9p2bKkYWDUcXCQ==, } - dev: true /json-stable-stringify-without-jsonify/1.0.1: resolution: @@ -18744,7 +18982,6 @@ packages: { integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, } - dev: true /json-to-ast/2.1.0: resolution: @@ -18837,7 +19074,6 @@ packages: extsprintf: 1.3.0 json-schema: 0.2.3 verror: 1.10.0 - dev: true /jsx-ast-utils/3.2.1: resolution: @@ -19800,6 +20036,33 @@ packages: - supports-color dev: true + /make-fetch-happen/9.1.0: + resolution: + { + integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==, + } + engines: { node: '>= 10' } + dependencies: + agentkeepalive: 4.1.4 + cacache: 15.3.0 + http-cache-semantics: 4.1.0 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.0 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.1.3 + minipass-collect: 1.0.2 + minipass-fetch: 1.3.3 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.2 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + /make-iterator/1.0.1: resolution: { @@ -20117,6 +20380,26 @@ packages: yargs-parser: 20.2.4 dev: true + /meow/9.0.0: + resolution: + { + integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, + } + engines: { node: '>=10' } + dependencies: + '@types/minimist': 1.2.0 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.0 + type-fest: 0.18.1 + yargs-parser: 20.2.4 + /merge-descriptors/1.0.1: resolution: { integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= } dev: true @@ -20354,7 +20637,6 @@ packages: integrity: sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==, } engines: { node: '>= 0.6' } - dev: true /mime-types/2.1.30: resolution: @@ -20364,7 +20646,6 @@ packages: engines: { node: '>= 0.6' } dependencies: mime-db: 1.47.0 - dev: true /mime/1.6.0: resolution: @@ -20452,7 +20733,6 @@ packages: } dependencies: brace-expansion: 1.1.11 - dev: true /minimatch/3.1.2: resolution: @@ -20497,7 +20777,6 @@ packages: engines: { node: '>= 8' } dependencies: minipass: 3.1.3 - dev: true /minipass-fetch/1.3.3: resolution: @@ -20511,7 +20790,6 @@ packages: minizlib: 2.1.2 optionalDependencies: encoding: 0.1.13 - dev: true /minipass-flush/1.0.5: resolution: @@ -20521,7 +20799,6 @@ packages: engines: { node: '>= 8' } dependencies: minipass: 3.1.3 - dev: true /minipass-json-stream/1.0.1: resolution: @@ -20541,7 +20818,6 @@ packages: engines: { node: '>=8' } dependencies: minipass: 3.1.3 - dev: true /minipass-sized/1.0.3: resolution: @@ -20551,7 +20827,6 @@ packages: engines: { node: '>=8' } dependencies: minipass: 3.1.3 - dev: true /minipass/2.9.0: resolution: @@ -20571,7 +20846,6 @@ packages: engines: { node: '>=8' } dependencies: yallist: 4.0.0 - dev: true /minizlib/1.3.3: resolution: @@ -20591,7 +20865,6 @@ packages: dependencies: minipass: 3.1.3 yallist: 4.0.0 - dev: true /mixin-deep/1.3.2: resolution: @@ -20638,7 +20911,6 @@ packages: } engines: { node: '>=10' } hasBin: true - dev: true /modify-values/1.0.1: resolution: @@ -20761,7 +21033,6 @@ packages: { integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==, } - dev: true /nanoid/3.1.30: resolution: @@ -20831,7 +21102,6 @@ packages: integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==, } engines: { node: '>= 0.6' } - dev: true /neo-async/2.6.1: resolution: @@ -21025,6 +21295,28 @@ packages: which: 2.0.2 dev: true + /node-gyp/8.4.1: + resolution: + { + integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==, + } + engines: { node: '>= 10.12.0' } + hasBin: true + dependencies: + env-paths: 2.2.0 + glob: 7.2.0 + graceful-fs: 4.2.10 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.3.7 + tar: 6.1.11 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + /node-html-parser/5.3.3: resolution: { @@ -21081,6 +21373,34 @@ packages: integrity: sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==, } + /node-sass/7.0.3: + resolution: + { + integrity: sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + dependencies: + async-foreach: 0.1.3 + chalk: 4.1.2 + cross-spawn: 7.0.3 + gaze: 1.1.3 + get-stdin: 4.0.1 + glob: 7.2.0 + lodash: 4.17.21 + meow: 9.0.0 + nan: 2.15.0 + node-gyp: 8.4.1 + npmlog: 5.0.1 + request: 2.88.2 + sass-graph: 4.0.1 + stdout-stream: 1.4.1 + true-case-path: 1.0.3 + transitivePeerDependencies: + - bluebird + - supports-color + /node-version/1.1.3: resolution: { @@ -21117,7 +21437,6 @@ packages: hasBin: true dependencies: abbrev: 1.1.1 - dev: true /normalize-html-whitespace/1.0.0: resolution: @@ -21149,7 +21468,6 @@ packages: resolve: 1.22.0 semver: 7.3.7 validate-npm-package-license: 3.0.4 - dev: true /normalize-path/2.1.1: resolution: @@ -21353,6 +21671,29 @@ packages: set-blocking: 2.0.0 dev: true + /npmlog/5.0.1: + resolution: + { + integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==, + } + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + + /npmlog/6.0.2: + resolution: + { + integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + /nprogress/0.2.0: resolution: { integrity: sha1-y480xTIT2JVyP8urkH6UIq28r7E= } dev: true @@ -21408,7 +21749,6 @@ packages: { integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, } - dev: true /object-assign/4.1.1: resolution: @@ -21935,7 +22275,6 @@ packages: engines: { node: '>=10' } dependencies: aggregate-error: 3.0.1 - dev: true /p-pipe/3.1.0: resolution: @@ -22489,7 +22828,6 @@ packages: { integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, } - dev: true /picocolors/1.0.0: resolution: @@ -23934,7 +24272,6 @@ packages: { integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, } - dev: true /process/0.11.10: resolution: { integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI= } @@ -23958,7 +24295,6 @@ packages: peerDependenciesMeta: bluebird: optional: true - dev: true /promise-polyfill/6.1.0: resolution: @@ -23991,7 +24327,6 @@ packages: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true /promise.series/0.2.0: resolution: @@ -24119,7 +24454,6 @@ packages: { integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==, } - dev: true /public-encrypt/4.0.3: resolution: @@ -24212,7 +24546,6 @@ packages: integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==, } engines: { node: '>=0.6' } - dev: true /qs/6.7.0: resolution: @@ -24382,6 +24715,20 @@ packages: scheduler: 0.0.0-experimental-e6a062bd2-20220913 dev: true + /react-dom/17.0.2_react@17.0.2: + resolution: + { + integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==, + } + peerDependencies: + react: 17.0.2 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + dev: true + /react-dom/17.0.2_react@18.2.0: resolution: { @@ -24444,7 +24791,7 @@ packages: engines: { node: '>=0.10.0' } dev: true - /react-server-dom-webpack/0.0.0-experimental-975b64464-20220914_webpack@5.74.0: + /react-server-dom-webpack/0.0.0-experimental-975b64464-20220914_zbur65pq5ttfo7ncb2n2vp2s3m: resolution: { integrity: sha512-RU8yWstn6EpbprfOEnpCpp4fzSTgRLIjvWjJYZq2AiVrXXaAl54stVC1LlZ5Ox4hNXBc6K/FAuQqF4nopXx5Aw==, @@ -24457,6 +24804,7 @@ packages: acorn: 6.4.2 loose-envify: 1.4.0 neo-async: 2.6.2 + react: 18.2.0 webpack: 5.74.0 dev: true @@ -24522,7 +24870,6 @@ packages: engines: { node: '>=0.10.0' } dependencies: loose-envify: 1.4.0 - dev: true /read-cmd-shim/2.0.0: resolution: @@ -24710,7 +25057,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true /readable-stream/3.6.0: resolution: @@ -24722,7 +25068,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true /readdir-scoped-modules/1.1.0: resolution: @@ -25298,12 +25643,10 @@ packages: tough-cookie: 2.5.0 tunnel-agent: 0.6.0 uuid: 3.3.3 - dev: true /require-directory/2.1.1: resolution: { integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I= } engines: { node: '>=0.10.0' } - dev: true /require-from-string/1.2.1: resolution: { integrity: sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= } @@ -25523,7 +25866,6 @@ packages: /retry/0.12.0: resolution: { integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= } engines: { node: '>= 4' } - dev: true /reusify/1.0.4: resolution: @@ -25760,7 +26102,6 @@ packages: { integrity: sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==, } - dev: true /safe-identifier/0.4.2: resolution: @@ -25784,7 +26125,20 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } - /sass-loader/12.4.0_webpack@5.74.0: + /sass-graph/4.0.1: + resolution: + { + integrity: sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==, + } + engines: { node: '>=12' } + hasBin: true + dependencies: + glob: 7.2.0 + lodash: 4.17.21 + scss-tokenizer: 0.4.3 + yargs: 17.5.1 + + /sass-loader/12.4.0_y7k4qxzyfvxio3t476zhrzlwf4: resolution: { integrity: sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==, @@ -25803,8 +26157,11 @@ packages: sass: optional: true dependencies: + fibers: 5.0.3 klona: 2.0.4 neo-async: 2.6.2 + node-sass: 7.0.3 + sass: 1.54.0 webpack: 5.74.0 dev: true @@ -25902,6 +26259,15 @@ packages: ajv-keywords: 3.5.2_ajv@6.12.6 dev: true + /scss-tokenizer/0.4.3: + resolution: + { + integrity: sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==, + } + dependencies: + js-base64: 2.5.1 + source-map: 0.7.3 + /seedrandom/3.0.5: resolution: { @@ -26070,7 +26436,6 @@ packages: { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, } - dev: true /set-immediate-shim/1.0.1: resolution: { integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= } @@ -26198,6 +26563,12 @@ packages: integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==, } + /signal-exit/3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + /simple-swizzle/0.2.2: resolution: { @@ -26278,7 +26649,6 @@ packages: integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, } engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } - dev: true /snake-case/2.1.0: resolution: @@ -26353,6 +26723,19 @@ packages: - supports-color dev: true + /socks-proxy-agent/6.2.1: + resolution: + { + integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==, + } + engines: { node: '>= 10' } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.6.2 + transitivePeerDependencies: + - supports-color + /socks/2.6.2: resolution: { @@ -26362,7 +26745,6 @@ packages: dependencies: ip: 1.1.5 smart-buffer: 4.2.0 - dev: true /sort-keys/2.0.0: resolution: { integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= } @@ -26457,7 +26839,6 @@ packages: integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==, } engines: { node: '>= 8' } - dev: true /source-map/0.8.0-beta.0: resolution: @@ -26601,7 +26982,6 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 - dev: true /ssri/8.0.1: resolution: @@ -26611,7 +26991,6 @@ packages: engines: { node: '>= 8' } dependencies: minipass: 3.1.3 - dev: true /stable/0.1.8: resolution: @@ -26663,6 +27042,14 @@ packages: engines: { node: '>= 0.6' } dev: true + /stdout-stream/1.4.1: + resolution: + { + integrity: sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==, + } + dependencies: + readable-stream: 2.3.7 + /stream-browserify/3.0.0: resolution: { @@ -26761,7 +27148,6 @@ packages: dependencies: is-fullwidth-code-point: 2.0.0 strip-ansi: 4.0.0 - dev: true /string-width/3.1.0: resolution: @@ -26881,7 +27267,6 @@ packages: } dependencies: safe-buffer: 5.1.2 - dev: true /string_decoder/1.3.0: resolution: @@ -26890,7 +27275,6 @@ packages: } dependencies: safe-buffer: 5.2.0 - dev: true /stringify-entities/3.1.0: resolution: @@ -26933,7 +27317,6 @@ packages: engines: { node: '>=4' } dependencies: ansi-regex: 3.0.0 - dev: true /strip-ansi/5.2.0: resolution: @@ -27093,7 +27476,7 @@ packages: postcss-load-plugins: 2.3.0 dev: true - /styled-jsx/5.0.7_@babel+core@7.18.0: + /styled-jsx/5.0.7_uuaxwgga6hqycsez5ok7v2wg4i: resolution: { integrity: sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==, @@ -27110,6 +27493,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.0 + react: 18.2.0 dev: false /stylehacks/4.0.3: @@ -27384,7 +27768,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true /taskr/1.1.0: resolution: { integrity: sha1-TynQrOJvTerppHjqv5qgQy6IRDg= } @@ -27819,7 +28202,6 @@ packages: dependencies: psl: 1.8.0 punycode: 2.1.1 - dev: true /tough-cookie/4.0.0: resolution: @@ -27910,6 +28292,14 @@ packages: } dev: true + /true-case-path/1.0.3: + resolution: + { + integrity: sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==, + } + dependencies: + glob: 7.2.0 + /tsconfig-paths/3.14.1: resolution: { @@ -27988,7 +28378,6 @@ packages: } dependencies: safe-buffer: 5.2.0 - dev: true /turbo-android-arm64/1.3.2-canary.1: resolution: @@ -28173,7 +28562,6 @@ packages: { integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, } - dev: true /type-check/0.3.2: resolution: { integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= } @@ -28220,7 +28608,6 @@ packages: integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, } engines: { node: '>=10' } - dev: true /type-fest/0.20.2: resolution: @@ -28574,7 +28961,6 @@ packages: } dependencies: unique-slug: 2.0.2 - dev: true /unique-slug/2.0.2: resolution: @@ -28583,7 +28969,6 @@ packages: } dependencies: imurmurhash: 0.1.4 - dev: true /unique-string/1.0.0: resolution: @@ -28767,7 +29152,7 @@ packages: unist-util-visit-parents: 3.1.1 dev: true - /unistore/3.4.1: + /unistore/3.4.1_react@18.2.0: resolution: { integrity: sha512-p2Ej8qqrqcD10Ah0ZUKUU/mhRB8pM4q6gzjxq9kZpgxa8dks7oHT8jDP4CqLhoRof3RXOZLKB9EBV1DTzHiJRw==, @@ -28780,6 +29165,8 @@ packages: optional: true react: optional: true + dependencies: + react: 18.2.0 dev: true /universal-user-agent/6.0.0: @@ -28965,13 +29352,15 @@ packages: engines: { node: '>= 4' } dev: true - /use-sync-external-store/1.2.0: + /use-sync-external-store/1.2.0_react@18.2.0: resolution: { integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 dev: false /use/3.1.1: @@ -28987,7 +29376,6 @@ packages: { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, } - dev: true /util-promisify/2.1.0: resolution: { integrity: sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= } @@ -29031,7 +29419,6 @@ packages: } deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true - dev: true /uuid/8.3.2: resolution: @@ -29108,7 +29495,6 @@ packages: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.4.0 - dev: true /vfile-find-up/5.0.1: resolution: @@ -29581,7 +29967,14 @@ packages: } dependencies: string-width: 2.1.1 - dev: true + + /wide-align/1.1.5: + resolution: + { + integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, + } + dependencies: + string-width: 4.2.3 /widest-line/3.1.0: resolution: @@ -29634,7 +30027,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrappy/1.0.2: resolution: @@ -29810,7 +30202,6 @@ packages: integrity: sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==, } engines: { node: '>=10' } - dev: true /yallist/2.1.2: resolution: { integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= } @@ -29862,7 +30253,6 @@ packages: integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==, } engines: { node: '>=10' } - dev: true /yargs-parser/21.0.1: resolution: @@ -29870,7 +30260,6 @@ packages: integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==, } engines: { node: '>=12' } - dev: true /yargs/14.2.2: resolution: @@ -29921,7 +30310,6 @@ packages: string-width: 4.2.3 y18n: 5.0.5 yargs-parser: 21.0.1 - dev: true /yocto-queue/0.1.0: resolution: diff --git a/test/unit/infer-get-server-side-props-type.test.ts b/test/unit/infer-get-server-side-props-type.test.ts new file mode 100644 index 00000000000000..abe3c195ce2d5c --- /dev/null +++ b/test/unit/infer-get-server-side-props-type.test.ts @@ -0,0 +1,69 @@ +import type { + InferGetServerSidePropsType, + GetServerSidePropsContext, +} from 'next' +import { expectTypeOf } from 'expect-type' + +describe('InferGetServerSidePropsType', () => { + it('should work with sync functions', async () => { + function getServerSideProps(context: GetServerSidePropsContext) { + if (context.params?.notFound) { + return { + notFound: true, + } + } + + return { + props: { + foo: 'bar', + }, + } + } + + type PageProps = InferGetServerSidePropsType<typeof getServerSideProps> + + expectTypeOf<PageProps>().toEqualTypeOf<{ foo: string }>() + }) + + it('should work with async functions', async () => { + async function getServerSideProps(context: GetServerSidePropsContext) { + if (context.params?.notFound) { + return { + notFound: true, + } + } + + if (context.params?.redirect) { + return { + redirect: { + destination: '/', + }, + } + } + + return { + props: { + foo: 'bar', + }, + } + } + + type PageProps = InferGetServerSidePropsType<typeof getServerSideProps> + + expectTypeOf<PageProps>().toEqualTypeOf<{ foo: string }>() + }) + + it('should work with promised props', async () => { + async function getServerSideProps() { + return { + props: Promise.resolve({ + foo: 'bar', + }), + } + } + + type PageProps = InferGetServerSidePropsType<typeof getServerSideProps> + + expectTypeOf<PageProps>().toEqualTypeOf<{ foo: string }>() + }) +}) diff --git a/test/unit/infer-get-static-props.test.ts b/test/unit/infer-get-static-props.test.ts new file mode 100644 index 00000000000000..3cef48a1cc5301 --- /dev/null +++ b/test/unit/infer-get-static-props.test.ts @@ -0,0 +1,52 @@ +import type { InferGetStaticPropsType, GetStaticPropsContext } from 'next' +import { expectTypeOf } from 'expect-type' + +describe('InferGetServerSidePropsType', () => { + it('should work with sync functions', async () => { + function getStaticProps(context: GetStaticPropsContext) { + if (context.params?.notFound) { + return { + notFound: true, + } + } + + return { + props: { + foo: 'bar', + }, + } + } + + type PageProps = InferGetStaticPropsType<typeof getStaticProps> + + expectTypeOf<PageProps>().toEqualTypeOf<{ foo: string }>() + }) + + it('should work with async functions', async () => { + async function getStaticProps(context: GetStaticPropsContext) { + if (context.params?.notFound) { + return { + notFound: true, + } + } + + if (context.params?.redirect) { + return { + redirect: { + destination: '/', + }, + } + } + + return { + props: { + foo: 'bar', + }, + } + } + + type PageProps = InferGetStaticPropsType<typeof getStaticProps> + + expectTypeOf<PageProps>().toEqualTypeOf<{ foo: string }>() + }) +})