From 2af4192756f9600557479e301464401b5ea9709c Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 11:01:35 -0800 Subject: begin working on CI tasks for bun-framework-next --- .github/bun-framework-next.yml | 40 +++++++ packages/bun-framework-next/package.json | 28 ++--- pnpm-lock.yaml | 175 ++++++++++++++++++++++++++----- pnpm-workspace.yaml | 2 + 4 files changed, 206 insertions(+), 39 deletions(-) create mode 100644 .github/bun-framework-next.yml create mode 100644 pnpm-workspace.yaml diff --git a/.github/bun-framework-next.yml b/.github/bun-framework-next.yml new file mode 100644 index 000000000..63a5114b4 --- /dev/null +++ b/.github/bun-framework-next.yml @@ -0,0 +1,40 @@ +name: CI workflow for bun-framework-next +on: [push] +jobs: + build: + name: lint, test and build on Node ${{ matrix.node }} and ${{ matrix.os }} + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node: ["14.x"] + os: [macOS-latest] + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + + - name: Install PNPM + uses: pnpm/action-setup@v2.0.1 + with: + version: 6.21.0 + + - name: Cache pnpm modules + uses: actions/cache@v2 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install dependencies + run: pnpm install + + - name: Test bun framework next + run: pnpm test --filter bun-framework-next diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index 55c2ff930..942d79bb8 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -4,6 +4,20 @@ "main": "index.js", "module": "index.js", "description": "Bun compatibility layer for Next.js v12.0.x", + "scripts": { + "test": "echo Worked" + }, + "author": "", + "license": "MIT", + "dependencies": { + "react-is": "^17.0.2" + }, + "peerDependencies": { + "next": "^12.0.0" + }, + "devDependencies": { + "react-refresh": "^0.10.0" + }, "framework": { "displayName": "Next.js", "static": "public", @@ -74,19 +88,5 @@ "fallback": "fallback.production.tsx", "css": "onimportcss" } - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "MIT", - "dependencies": { - "react-is": "^17.0.2" - }, - "peerDependencies": { - "next": "^12.0.0" - }, - "devDependencies": { - "react-refresh": "^0.10.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a48cd9ff..b5c3f1d26 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,30 +1,60 @@ lockfileVersion: 5.3 -specifiers: - '@types/node': ^16.9.2 - '@types/puppeteer': ^5.4.4 - cli-highlight: ^2.1.11 - highlight.js: ^11.3.1 - moment: ^2.29.1 - peechy: 0.4.20 - prettier: latest - puppeteer: ^10.2.0 - react: ^17.0.2 - react-dom: ^17.0.2 - -dependencies: - cli-highlight: 2.1.11 - highlight.js: 11.3.1 - moment: 2.29.1 - peechy: 0.4.20 - prettier: 2.4.1 - puppeteer: 10.4.0 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - -devDependencies: - '@types/node': 16.11.4 - '@types/puppeteer': 5.4.4 +importers: + + .: + specifiers: + '@types/node': ^16.9.2 + '@types/puppeteer': ^5.4.4 + cli-highlight: ^2.1.11 + highlight.js: ^11.3.1 + moment: ^2.29.1 + peechy: 0.4.20 + prettier: latest + puppeteer: ^10.2.0 + react: ^17.0.2 + react-dom: ^17.0.2 + dependencies: + cli-highlight: 2.1.11 + highlight.js: 11.3.1 + moment: 2.29.1 + peechy: 0.4.20 + prettier: 2.4.1 + puppeteer: 10.4.0 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + devDependencies: + '@types/node': 16.11.4 + '@types/puppeteer': 5.4.4 + + packages/bun-error: + specifiers: + esbuild: ^0.12.26 + preact: ^10.5.14 + preact-compat: ^3.19.0 + react: ^17.0.2 + react-dom: ^17.0.2 + dependencies: + esbuild: 0.12.29 + preact: 10.5.15 + preact-compat: 3.19.0_preact@10.5.15 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + + packages/bun-framework-next: + specifiers: + react-is: ^17.0.2 + react-refresh: ^0.10.0 + dependencies: + react-is: 17.0.2 + devDependencies: + react-refresh: 0.10.0 + + packages/bun-macro-relay: + specifiers: + graphql: ^15.6.0 + devDependencies: + graphql: 15.7.2 packages: @@ -225,6 +255,12 @@ packages: once: 1.4.0 dev: false + /esbuild/0.12.29: + resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==} + hasBin: true + requiresBuild: true + dev: false + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -289,6 +325,11 @@ packages: path-is-absolute: 1.0.1 dev: false + /graphql/15.7.2: + resolution: {integrity: sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A==} + engines: {node: '>= 10.x'} + dev: true + /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -324,6 +365,12 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false + /immutability-helper/2.9.1: + resolution: {integrity: sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==} + dependencies: + invariant: 2.2.4 + dev: false + /inflight/1.0.6: resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} dependencies: @@ -335,6 +382,12 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: false + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -502,17 +555,72 @@ packages: find-up: 4.1.0 dev: false + /preact-compat/3.19.0_preact@10.5.15: + resolution: {integrity: sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q==} + peerDependencies: + preact: <10 + dependencies: + immutability-helper: 2.9.1 + preact: 10.5.15 + preact-context: 1.1.4_preact@10.5.15 + preact-render-to-string: 3.8.2_preact@10.5.15 + preact-transition-group: 1.1.1_preact@10.5.15 + prop-types: 15.7.2 + standalone-react-addons-pure-render-mixin: 0.1.1 + dev: false + + /preact-context/1.1.4_preact@10.5.15: + resolution: {integrity: sha512-gcCjPJ65R0MiW9hDu8W/3WAmyTElIvwLyEO6oLQiM6/TbLKLxCpBCWV8GJjx52TTEyUr60HLDcmoCXZlslelzQ==} + peerDependencies: + preact: ^8.2.7 + dependencies: + preact: 10.5.15 + dev: false + + /preact-render-to-string/3.8.2_preact@10.5.15: + resolution: {integrity: sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw==} + peerDependencies: + preact: '*' + dependencies: + preact: 10.5.15 + pretty-format: 3.8.0 + dev: false + + /preact-transition-group/1.1.1_preact@10.5.15: + resolution: {integrity: sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=} + peerDependencies: + preact: '*' + dependencies: + preact: 10.5.15 + dev: false + + /preact/10.5.15: + resolution: {integrity: sha512-5chK29n6QcJc3m1lVrKQSQ+V7K1Gb8HeQY6FViQ5AxCAEGu3DaHffWNDkC9+miZgsLvbvU9rxbV1qinGHMHzqA==} + dev: false + /prettier/2.4.1: resolution: {integrity: sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==} engines: {node: '>=10.13.0'} hasBin: true dev: false + /pretty-format/3.8.0: + resolution: {integrity: sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=} + dev: false + /progress/2.0.1: resolution: {integrity: sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==} engines: {node: '>=0.4.0'} dev: false + /prop-types/15.7.2: + resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + /proxy-from-env/1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false @@ -558,6 +666,19 @@ packages: scheduler: 0.20.2 dev: false + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: false + + /react-refresh/0.10.0: + resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} + engines: {node: '>=0.10.0'} + dev: true + /react/17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} @@ -613,6 +734,10 @@ packages: tslib: 2.3.1 dev: false + /standalone-react-addons-pure-render-mixin/0.1.1: + resolution: {integrity: sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=} + dev: false + /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..dee51e928 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - "packages/*" -- cgit v1.2.3 From e8bdf1c7db69d13a21d550828fd3241dd8f143d8 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 11:04:47 -0800 Subject: move into workflows folder --- .github/bun-framework-next.yml | 40 ---------------------------- .github/workflows/bun-framework-next.yml | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 40 deletions(-) delete mode 100644 .github/bun-framework-next.yml create mode 100644 .github/workflows/bun-framework-next.yml diff --git a/.github/bun-framework-next.yml b/.github/bun-framework-next.yml deleted file mode 100644 index 63a5114b4..000000000 --- a/.github/bun-framework-next.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: CI workflow for bun-framework-next -on: [push] -jobs: - build: - name: lint, test and build on Node ${{ matrix.node }} and ${{ matrix.os }} - - runs-on: ${{ matrix.os }} - - strategy: - matrix: - node: ["14.x"] - os: [macOS-latest] - - steps: - - name: Checkout repo - uses: actions/checkout@v2 - - - name: Use Node ${{ matrix.node }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node }} - - - name: Install PNPM - uses: pnpm/action-setup@v2.0.1 - with: - version: 6.21.0 - - - name: Cache pnpm modules - uses: actions/cache@v2 - with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- - - - name: Install dependencies - run: pnpm install - - - name: Test bun framework next - run: pnpm test --filter bun-framework-next diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml new file mode 100644 index 000000000..f29a4fd0c --- /dev/null +++ b/.github/workflows/bun-framework-next.yml @@ -0,0 +1,45 @@ +name: CI workflow for bun-framework-next +on: + push: + branches: [main, bun-framework-next-actions] + pull_request: + branches: [main] + +jobs: + build: + name: lint, test and build on Node ${{ matrix.node }} and ${{ matrix.os }} + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node: ["14.x"] + os: [macOS-latest] + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Use Node ${{ matrix.node }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + + - name: Install PNPM + uses: pnpm/action-setup@v2.0.1 + with: + version: 6.21.0 + + - name: Cache pnpm modules + uses: actions/cache@v2 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install dependencies + run: pnpm install + + - name: Test bun framework next + run: pnpm test --filter bun-framework-next -- cgit v1.2.3 From 62694f0ee99fb44cb655b6ed671599156d0c10f4 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 11:14:27 -0800 Subject: add typescript checking --- .github/workflows/bun-framework-next.yml | 5 +- packages/bun-framework-next/package.json | 7 +- pnpm-lock.yaml | 1620 +++++++++++++++++++++++++++++- 3 files changed, 1602 insertions(+), 30 deletions(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index f29a4fd0c..cd46a4476 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -41,5 +41,8 @@ jobs: - name: Install dependencies run: pnpm install - - name: Test bun framework next + - name: Test bun-framework-next + run: pnpm test --filter bun-framework-next + + - name: Typecheck bun-framework-next run: pnpm test --filter bun-framework-next diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index 942d79bb8..4c2ad494a 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -5,7 +5,8 @@ "module": "index.js", "description": "Bun compatibility layer for Next.js v12.0.x", "scripts": { - "test": "echo Worked" + "test": "echo Worked", + "check": "tsc --noEmit" }, "author": "", "license": "MIT", @@ -16,7 +17,9 @@ "next": "^12.0.0" }, "devDependencies": { - "react-refresh": "^0.10.0" + "next": "^12.0.0", + "react-refresh": "^0.10.0", + "typescript": "^4.4.4" }, "framework": { "displayName": "Next.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5c3f1d26..b96e023bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,12 +43,16 @@ importers: packages/bun-framework-next: specifiers: + next: ^12.0.0 react-is: ^17.0.2 react-refresh: ^0.10.0 + typescript: ^4.4.4 dependencies: react-is: 17.0.2 devDependencies: + next: 12.0.3_react-dom@17.0.2+react@17.0.2 react-refresh: 0.10.0 + typescript: 4.4.4 packages/bun-macro-relay: specifiers: @@ -58,6 +62,220 @@ importers: packages: + /@babel/code-frame/7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + dependencies: + '@babel/highlight': 7.16.0 + dev: true + + /@babel/helper-plugin-utils/7.14.5: + resolution: {integrity: sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.15.7: + resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/highlight/7.16.0: + resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.15.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@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.14.5 + dev: true + + /@babel/runtime/7.15.4: + resolution: {integrity: sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.4 + dev: true + + /@babel/types/7.15.0: + resolution: {integrity: sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.15.7 + to-fast-properties: 2.0.0 + dev: true + + /@hapi/accept/5.0.2: + resolution: {integrity: sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==} + dependencies: + '@hapi/boom': 9.1.4 + '@hapi/hoek': 9.2.1 + dev: true + + /@hapi/boom/9.1.4: + resolution: {integrity: sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==} + dependencies: + '@hapi/hoek': 9.2.1 + dev: true + + /@hapi/hoek/9.2.1: + resolution: {integrity: sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==} + dev: true + + /@napi-rs/triples/1.0.3: + resolution: {integrity: sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==} + dev: true + + /@next/env/12.0.3: + resolution: {integrity: sha512-QcdlpcwIH9dYcVlNAU+gXaqHA/omskbRlb+R3vN7LlB2EgLt+9WQwbokcHOsNyt4pI7kDM67W4tr9l7dWnlGdQ==} + dev: true + + /@next/polyfill-module/12.0.3: + resolution: {integrity: sha512-fgjVjdCk0Jq627d/N33oQIJjWrcKtzw6Dfa2PfypoIJ35/xFIKgs6mPyvq8cg3Ao5b7dEn9+Rw45PGjlY5e7JA==} + dev: true + + /@next/react-dev-overlay/12.0.3_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-gHfDEVHFeTUpQMcyytzvkuOu+5DQXjXbCbQHuavFftYrlHqXfzYFsa+wERff+g4/0IzEvcYVp3F4gdmynWfUog==} + peerDependencies: + react: ^17.0.2 + react-dom: ^17.0.2 + webpack: ^4 || ^5 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + '@babel/code-frame': 7.12.11 + anser: 1.4.9 + chalk: 4.0.0 + classnames: 2.2.6 + 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_react@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 + dev: true + + /@next/react-refresh-utils/12.0.3_react-refresh@0.8.3: + resolution: {integrity: sha512-YPtlfvkYh/4MvNNm5w3uwo+1KPMg67snzr5CuexbRewsu2ITaF7f0bh0Jcayi20wztk8SgWjNz1bmF8j9qbWIw==} + peerDependencies: + react-refresh: 0.8.3 + webpack: ^4 || ^5 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + react-refresh: 0.8.3 + dev: true + + /@next/swc-android-arm64/12.0.3: + resolution: {integrity: sha512-40sOl9/50aamX0dEMrecqJQcUrRK47D7S9F66ulrZmz+5Ujp0lnP1rBOXngo0PZMecfU1tr7zbNubiAMDxfCxw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@next/swc-darwin-arm64/12.0.3: + resolution: {integrity: sha512-iKSe2hCMB51Ft41cNAxZk6St1rBlqSRtBSl4oO0zJlGu7bCxXCGCJ058/OLvYxcNWgz7ODOApObm3Yjv8XEvxg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@next/swc-darwin-x64/12.0.3: + resolution: {integrity: sha512-/BcnfLyhIj4rgU3yVDfD8uXK2TcNYIdflYHKkjFxd3/J1GWOtBN31m0dB8fL0h5LdW11kzaXvVvab3f5ilkEww==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@next/swc-linux-arm-gnueabihf/12.0.3: + resolution: {integrity: sha512-2HNPhBJuN9L6JzqqqdYB4TKfFFmaKkpF0X3C1s83Xp61mR2sx8gOthHQtZqWDs4ZLnKZU0j2flGU1uuqpHPCpg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@next/swc-linux-arm64-gnu/12.0.3: + resolution: {integrity: sha512-NXTON1XK7zi2i+A+bY1PVLi1g5b8cSwgzbnuVR0vAgOtU+3at7FqAKOWfuFIXY7eBEK65uu0Fu5gADhMj0uanQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@next/swc-linux-arm64-musl/12.0.3: + resolution: {integrity: sha512-8D0q22VavhcIl2ZQErEffgh5q6mChaG84uTluAoFfjwrgYtPDZX0M5StqkTZL6T5gA5RLHboNVoscIKGZWMojQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@next/swc-linux-x64-gnu/12.0.3: + resolution: {integrity: sha512-4mkimH9nMzbuQfLmZ152NYSHdrII9AeqrkrHszexL1Lup2TLMPuxlXj55eVnyyeKFXRLlnqbCu7aOIND68RbOA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@next/swc-linux-x64-musl/12.0.3: + resolution: {integrity: sha512-MXvx+IDYoSsSM7KcwbQAVo9r+ZeklHeDQiUEmyRRzQE1Q4JvkWwMdPu/NfFdyxur+RfKjRoUoWFdPi5MBKTpkw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@next/swc-win32-arm64-msvc/12.0.3: + resolution: {integrity: sha512-8GusumFZLp/mtVix+3JZVTGqzqntTsrTIFZ+GpcLMwyVjB3KkBwHiwJaa38WGleUinJSpJvgmhTWgppsiSKW3A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@next/swc-win32-ia32-msvc/12.0.3: + resolution: {integrity: sha512-mF7bkxSZ++QiB+E0HFqay/etvPF+ZFcCuG27lSwFIM00J+TE0IRqMyMx66vJ8g1h6khpwXPI0o2hrwIip/r8cQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@next/swc-win32-x64-msvc/12.0.3: + resolution: {integrity: sha512-eXFwyf46UFFggMQ3k2tJsOmB3SuKjWaSiZJH0tTDUsLw74lyqyzJqMCVA4yY0gWSlEnSjmX5nrCBknVZd3joaA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@types/node/16.11.4: resolution: {integrity: sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==} @@ -75,6 +293,12 @@ packages: dev: false optional: true + /acorn/8.5.0: + resolution: {integrity: sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -84,29 +308,77 @@ packages: - supports-color dev: false + /anser/1.4.9: + resolution: {integrity: sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==} + dev: true + /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: false + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: false /any-promise/1.3.0: resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} dev: false + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.0 + dev: true + + /asn1.js/5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + dev: true + + /assert/2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.4 + dev: true + + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false + + /big.js/5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -116,6 +388,14 @@ packages: readable-stream: 3.6.0 dev: false + /bn.js/4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + dev: true + + /bn.js/5.2.0: + resolution: {integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==} + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -123,10 +403,99 @@ packages: concat-map: 0.0.1 dev: false + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /brorand/1.1.0: + resolution: {integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=} + dev: true + + /browserify-aes/1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /browserify-cipher/1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + dev: true + + /browserify-des/1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + dependencies: + cipher-base: 1.0.4 + des.js: 1.0.1 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /browserify-rsa/4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + dependencies: + bn.js: 5.2.0 + randombytes: 2.1.0 + dev: true + + /browserify-sign/4.2.1: + resolution: {integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==} + dependencies: + bn.js: 5.2.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + inherits: 2.0.4 + parse-asn1: 5.1.6 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: true + + /browserify-zlib/0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + dependencies: + pako: 1.0.11 + dev: true + + /browserslist/4.16.6: + resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001279 + colorette: 1.4.0 + electron-to-chromium: 1.3.895 + escalade: 3.1.1 + node-releases: 1.1.77 + dev: true + /buffer-crc32/0.2.13: resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} dev: false + /buffer-xor/1.0.3: + resolution: {integrity: sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=} + dev: true + + /buffer/5.6.0: + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /buffer/5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -134,6 +503,22 @@ packages: ieee754: 1.2.1 dev: false + /builtin-status-codes/3.0.0: + resolution: {integrity: sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=} + dev: true + + /bytes/3.1.0: + resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} + engines: {node: '>= 0.8'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + /camel-case/4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: @@ -141,6 +526,10 @@ packages: tslib: 2.3.1 dev: false + /caniuse-lite/1.0.30001279: + resolution: {integrity: sha512-VfEHpzHEXj6/CxggTwSFoZBBYGQfQv9Cf42KPlO79sWXCD1QNKWKsKzFeWL7QpZHJQYAvocqV6Rty1yJMkqWLQ==} + dev: true + /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: @@ -149,6 +538,23 @@ packages: upper-case-first: 2.0.2 dev: false + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.0.0: + resolution: {integrity: sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -174,10 +580,36 @@ packages: tslib: 2.3.1 dev: false + /chokidar/3.5.1: + resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.5.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} dev: false + /cipher-base/1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /classnames/2.2.6: + resolution: {integrity: sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==} + dev: true + /cli-highlight/2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} @@ -199,16 +631,32 @@ packages: wrap-ansi: 7.0.0 dev: false + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: false + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false + + /colorette/1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: true + + /commondir/1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} + dev: true /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} @@ -222,6 +670,96 @@ packages: upper-case: 2.0.2 dev: false + /constants-browserify/1.0.0: + resolution: {integrity: sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=} + dev: true + + /convert-source-map/1.7.0: + resolution: {integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /create-ecdh/4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + dev: true + + /create-hash/1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + dev: true + + /create-hmac/1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + + /crypto-browserify/3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.1 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + dev: true + + /css.escape/1.5.1: + resolution: {integrity: sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=} + dev: true + + /cssnano-preset-simple/3.0.0_postcss@8.2.15: + resolution: {integrity: sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==} + peerDependencies: + postcss: ^8.2.15 + dependencies: + caniuse-lite: 1.0.30001279 + postcss: 8.2.15 + dev: true + + /cssnano-simple/3.0.0_postcss@8.2.15: + resolution: {integrity: sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==} + peerDependencies: + postcss: ^8.2.15 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + cssnano-preset-simple: 3.0.0_postcss@8.2.15 + postcss: 8.2.15 + dev: true + + /data-uri-to-buffer/3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + dependencies: + ms: 2.0.0 + dev: true + /debug/4.3.1: resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} engines: {node: '>=6.0'} @@ -234,10 +772,42 @@ packages: ms: 2.1.2 dev: false + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} + dependencies: + object-keys: 1.1.1 + dev: true + + /depd/1.1.2: + resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} + engines: {node: '>= 0.6'} + dev: true + + /des.js/1.0.1: + resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: true + /devtools-protocol/0.0.901419: resolution: {integrity: sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==} dev: false + /diffie-hellman/5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dev: true + + /domain-browser/4.19.0: + resolution: {integrity: sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==} + engines: {node: '>=10'} + dev: true + /dot-case/3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: @@ -245,16 +815,82 @@ packages: tslib: 2.3.1 dev: false + /electron-to-chromium/1.3.895: + resolution: {integrity: sha512-9Ww3fB8CWctjqHwkOt7DQbMZMpal2x2reod+/lU4b9axO1XJEDUpPMBxs7YnjLhhqpKXIIB5SRYN/B4K0QpvyQ==} + dev: true + + /elliptic/6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: true + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false + /emojis-list/2.1.0: + resolution: {integrity: sha1-TapNnbAPmBmIDHn6RXrlsJof04k=} + engines: {node: '>= 0.10'} + dev: true + + /encoding/0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + dependencies: + iconv-lite: 0.6.3 + dev: true + /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: false + /es-abstract/1.19.1: + resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.1 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.1 + is-string: 1.0.7 + is-weakref: 1.0.1 + object-inspect: 1.11.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-object-assign/1.1.0: + resolution: {integrity: sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=} + dev: true + /esbuild/0.12.29: resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==} hasBin: true @@ -264,7 +900,28 @@ packages: /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: false + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /etag/1.8.1: + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} + engines: {node: '>= 0.6'} + dev: true + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /evp_bytestokey/1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + dev: true /extract-zip/2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} @@ -286,13 +943,32 @@ packages: pend: 1.2.0 dev: false + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-cache-dir/3.3.1: + resolution: {integrity: sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: false + + /foreach/2.0.5: + resolution: {integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=} + dev: true /fs-constants/1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -302,11 +978,37 @@ packages: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} dev: false + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: false + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + dev: true + + /get-orientation/1.1.2: + resolution: {integrity: sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==} + dependencies: + stream-parser: 0.3.1 + dev: true + /get-stream/5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -314,6 +1016,25 @@ packages: pump: 3.0.0 dev: false + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: @@ -325,15 +1046,67 @@ packages: path-is-absolute: 1.0.1 dev: false + /graceful-fs/4.2.8: + resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + dev: true + /graphql/15.7.2: resolution: {integrity: sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A==} engines: {node: '>= 10.x'} dev: true + /has-bigints/1.0.1: + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: false + + /has-symbols/1.0.2: + resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hash-base/3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: true + + /hash.js/1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: true + + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true /header-case/2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} @@ -351,6 +1124,29 @@ packages: engines: {node: '>=12.0.0'} dev: false + /hmac-drbg/1.0.1: + resolution: {integrity: sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: true + + /http-errors/1.7.3: + resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: true + + /https-browserify/1.0.0: + resolution: {integrity: sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=} + dev: true + /https-proxy-agent/5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} @@ -361,9 +1157,30 @@ packages: - supports-color dev: false + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false + + /image-size/1.0.0: + resolution: {integrity: sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + queue: 6.0.2 + dev: true /immutability-helper/2.9.1: resolution: {integrity: sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==} @@ -380,7 +1197,15 @@ packages: /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true /invariant/2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -388,21 +1213,176 @@ packages: loose-envify: 1.4.0 dev: false + /is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.1 + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: false + /is-generator-function/1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-nan/1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /is-negative-zero/2.0.1: + resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.6: + resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer/1.0.1: + resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /is-typed-array/1.1.8: + resolution: {integrity: sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-abstract: 1.19.1 + foreach: 2.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-weakref/1.0.1: + resolution: {integrity: sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /jest-worker/27.0.0-next.5: + resolution: {integrity: sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/node': 16.11.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /loader-utils/1.2.3: + resolution: {integrity: sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 2.1.0 + json5: 1.0.1 + dev: true /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - dev: false + + /lodash.sortby/4.7.0: + resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} + dev: true /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} @@ -417,6 +1397,41 @@ packages: tslib: 2.3.1 dev: false + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /md5.js/1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /miller-rabin/4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + dev: true + + /minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimalistic-crypto-utils/1.0.1: + resolution: {integrity: sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=} + dev: true + /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -425,7 +1440,6 @@ packages: /minimist/1.2.5: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: false /mkdirp/0.5.5: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} @@ -438,6 +1452,10 @@ packages: resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==} dev: false + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false @@ -450,6 +1468,98 @@ packages: thenify-all: 1.6.0 dev: false + /nanoid/3.1.30: + resolution: {integrity: sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /next/12.0.3_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-GGdhTBcerdMZbitrO67IVetmB+AHa2X69xrkXKClUT8SRu8pEVto/2QMSnfI+uYc5czCUWPsVtVY3aMoMRMaCA==} + engines: {node: '>=12.22.0'} + hasBin: true + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + '@babel/runtime': 7.15.4 + '@hapi/accept': 5.0.2 + '@napi-rs/triples': 1.0.3 + '@next/env': 12.0.3 + '@next/polyfill-module': 12.0.3 + '@next/react-dev-overlay': 12.0.3_react-dom@17.0.2+react@17.0.2 + '@next/react-refresh-utils': 12.0.3_react-refresh@0.8.3 + acorn: 8.5.0 + assert: 2.0.0 + browserify-zlib: 0.2.0 + browserslist: 4.16.6 + buffer: 5.6.0 + caniuse-lite: 1.0.30001279 + chalk: 2.4.2 + chokidar: 3.5.1 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.0 + cssnano-simple: 3.0.0_postcss@8.2.15 + domain-browser: 4.19.0 + encoding: 0.1.13 + etag: 1.8.1 + events: 3.3.0 + find-cache-dir: 3.3.1 + get-orientation: 1.1.2 + https-browserify: 1.0.0 + image-size: 1.0.0 + jest-worker: 27.0.0-next.5 + node-fetch: 2.6.1 + node-html-parser: 1.4.9 + os-browserify: 0.3.0 + p-limit: 3.1.0 + path-browserify: 1.0.1 + postcss: 8.2.15 + process: 0.11.10 + querystring-es3: 0.2.1 + raw-body: 2.4.1 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + react-is: 17.0.2 + react-refresh: 0.8.3 + regenerator-runtime: 0.13.4 + stream-browserify: 3.0.0 + stream-http: 3.1.1 + string_decoder: 1.3.0 + styled-jsx: 5.0.0-beta.3_react@17.0.2 + timers-browserify: 2.0.12 + tty-browserify: 0.0.1 + use-subscription: 1.5.1_react@17.0.2 + util: 0.12.4 + vm-browserify: 1.1.2 + watchpack: 2.1.1 + optionalDependencies: + '@next/swc-android-arm64': 12.0.3 + '@next/swc-darwin-arm64': 12.0.3 + '@next/swc-darwin-x64': 12.0.3 + '@next/swc-linux-arm-gnueabihf': 12.0.3 + '@next/swc-linux-arm64-gnu': 12.0.3 + '@next/swc-linux-arm64-musl': 12.0.3 + '@next/swc-linux-x64-gnu': 12.0.3 + '@next/swc-linux-x64-musl': 12.0.3 + '@next/swc-win32-arm64-msvc': 12.0.3 + '@next/swc-win32-ia32-msvc': 12.0.3 + '@next/swc-win32-x64-msvc': 12.0.3 + transitivePeerDependencies: + - '@babel/core' + - webpack + dev: true + /no-case/3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: @@ -460,12 +1570,52 @@ packages: /node-fetch/2.6.1: resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} engines: {node: 4.x || >=6.0.0} - dev: false + + /node-html-parser/1.4.9: + resolution: {integrity: sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==} + dependencies: + he: 1.2.0 + dev: true + + /node-releases/1.1.77: + resolution: {integrity: sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==} + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} - dev: false + + /object-inspect/1.11.0: + resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} + dev: true + + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.2 + object-keys: 1.1.1 + dev: true /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} @@ -473,24 +1623,36 @@ packages: wrappy: 1.0.2 dev: false + /os-browserify/0.3.0: + resolution: {integrity: sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=} + dev: true + /p-limit/2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 - dev: false + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - dev: false /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - dev: false + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true /param-case/3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -499,6 +1661,16 @@ packages: tslib: 2.3.1 dev: false + /parse-asn1/5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + dependencies: + asn1.js: 5.4.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + dev: true + /parse5-htmlparser2-tree-adapter/6.0.1: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} dependencies: @@ -520,6 +1692,10 @@ packages: tslib: 2.3.1 dev: false + /path-browserify/1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-case/3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: @@ -530,13 +1706,23 @@ packages: /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: false /path-is-absolute/1.0.1: resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} dev: false + /pbkdf2/3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + /peechy/0.4.20: resolution: {integrity: sha512-/BXMgfEiU3gB2acIiUrUx8DCQfVdEZbgVMj1SC8TXgyWhNRFCEQWaaLw8BDsnzemlGlM1OVMnTlO0E42P1RC5g==} hasBin: true @@ -548,12 +1734,29 @@ packages: resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} dev: false + /picomatch/2.3.0: + resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + engines: {node: '>=8.6'} + dev: true + /pkg-dir/4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} dependencies: find-up: 4.1.0 - dev: false + + /platform/1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + dev: true + + /postcss/8.2.15: + resolution: {integrity: sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + colorette: 1.4.0 + nanoid: 3.1.30 + source-map: 0.6.1 + dev: true /preact-compat/3.19.0_preact@10.5.15: resolution: {integrity: sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q==} @@ -608,6 +1811,11 @@ packages: resolution: {integrity: sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=} dev: false + /process/0.11.10: + resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=} + engines: {node: '>= 0.6.0'} + dev: true + /progress/2.0.1: resolution: {integrity: sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==} engines: {node: '>=0.4.0'} @@ -625,6 +1833,17 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false + /public-encrypt/4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.6 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: true + /pump/3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -632,6 +1851,11 @@ packages: once: 1.4.0 dev: false + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + /puppeteer/10.4.0: resolution: {integrity: sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==} engines: {node: '>=10.18.1'} @@ -655,6 +1879,40 @@ packages: - utf-8-validate dev: false + /querystring-es3/0.2.1: + resolution: {integrity: sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=} + engines: {node: '>=0.4.x'} + dev: true + + /queue/6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 + dev: true + + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /randomfill/1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: true + + /raw-body/2.4.1: + resolution: {integrity: sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.0 + http-errors: 1.7.3 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + /react-dom/17.0.2_react@17.0.2: resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: @@ -672,13 +1930,17 @@ packages: /react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: false /react-refresh/0.10.0: resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} engines: {node: '>=0.10.0'} dev: true + /react-refresh/0.8.3: + resolution: {integrity: sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==} + engines: {node: '>=0.10.0'} + dev: true + /react/17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} @@ -694,7 +1956,17 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: false + + /readdirp/3.5.0: + resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.0 + dev: true + + /regenerator-runtime/0.13.4: + resolution: {integrity: sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==} + dev: true /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} @@ -708,9 +1980,23 @@ packages: glob: 7.2.0 dev: false + /ripemd160/2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true /scheduler/0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} @@ -719,6 +2005,11 @@ packages: object-assign: 4.1.1 dev: false + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + /sentence-case/3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: @@ -727,6 +2018,34 @@ packages: upper-case-first: 2.0.2 dev: false + /setimmediate/1.0.5: + resolution: {integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=} + dev: true + + /setprototypeof/1.1.1: + resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} + dev: true + + /sha.js/2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /shell-quote/1.7.3: + resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.11.0 + dev: true + /snake-case/3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: @@ -734,10 +2053,65 @@ packages: tslib: 2.3.1 dev: false + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /source-map/0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /stacktrace-parser/0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + dependencies: + type-fest: 0.7.1 + dev: true + /standalone-react-addons-pure-render-mixin/0.1.1: resolution: {integrity: sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=} dev: false + /statuses/1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} + engines: {node: '>= 0.6'} + dev: true + + /stream-browserify/3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /stream-http/3.1.1: + resolution: {integrity: sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + xtend: 4.0.2 + dev: true + + /stream-parser/0.3.1: + resolution: {integrity: sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=} + dependencies: + debug: 2.6.9 + dev: true + + /string-hash/1.1.3: + resolution: {integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=} + dev: true + /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -747,25 +2121,83 @@ packages: strip-ansi: 6.0.1 dev: false + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + /string_decoder/1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: false /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: false + + /styled-jsx/5.0.0-beta.3_react@17.0.2: + resolution: {integrity: sha512-HtDDGSFPvmjHIqWf9n8Oo54tAoY/DTplvlyOH2+YOtD80Sp31Ap8ffSmxhgk5EkUoJ7xepdXMGT650mSffWuRA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + react: '>= 16.8.0 || 17.x.x || 18.x.x' + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/plugin-syntax-jsx': 7.14.5 + '@babel/types': 7.15.0 + convert-source-map: 1.7.0 + loader-utils: 1.2.3 + react: 17.0.2 + source-map: 0.7.3 + string-hash: 1.1.3 + stylis: 3.5.4 + stylis-rule-sheet: 0.0.10_stylis@3.5.4 + dev: true + + /stylis-rule-sheet/0.0.10_stylis@3.5.4: + resolution: {integrity: sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==} + peerDependencies: + stylis: ^3.5.0 + dependencies: + stylis: 3.5.4 + dev: true + + /stylis/3.5.4: + resolution: {integrity: sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==} + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: false + + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true /tar-fs/2.0.0: resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==} @@ -804,10 +2236,64 @@ packages: resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} dev: false + /timers-browserify/2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: 1.0.5 + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toidentifier/1.0.0: + resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} + engines: {node: '>=0.6'} + dev: true + + /tr46/1.0.1: + resolution: {integrity: sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=} + dependencies: + punycode: 2.1.1 + dev: true + /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} dev: false + /tty-browserify/0.0.1: + resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + dev: true + + /type-fest/0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + dev: true + + /typescript/4.4.4: + resolution: {integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.2 + which-boxed-primitive: 1.0.2 + dev: true + /unbzip2-stream/1.3.3: resolution: {integrity: sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==} dependencies: @@ -815,6 +2301,11 @@ packages: through: 2.3.8 dev: false + /unpipe/1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} + engines: {node: '>= 0.8'} + dev: true + /upper-case-first/2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: @@ -827,9 +2318,74 @@ packages: tslib: 2.3.1 dev: false + /use-subscription/1.5.1_react@17.0.2: + resolution: {integrity: sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 + dependencies: + object-assign: 4.1.1 + react: 17.0.2 + dev: true + /util-deprecate/1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} - dev: false + + /util/0.12.4: + resolution: {integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.8 + safe-buffer: 5.2.1 + which-typed-array: 1.1.7 + dev: true + + /vm-browserify/1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + dev: true + + /watchpack/2.1.1: + resolution: {integrity: sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.8 + dev: true + + /webidl-conversions/4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url/7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.6 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array/1.1.7: + resolution: {integrity: sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-abstract: 1.19.1 + foreach: 2.0.5 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.8 + dev: true /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -857,6 +2413,11 @@ packages: optional: true dev: false + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -886,3 +2447,8 @@ packages: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 dev: false + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true -- cgit v1.2.3 From 46a8215092c3e0cd56703b6ceb3c5a939d53c35c Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 11:21:47 -0800 Subject: consolidate empty files / references to one empty.tsx --- packages/bun-framework-next/empty.tsx | 3 +++ packages/bun-framework-next/index.js | 1 - packages/bun-framework-next/package.json | 10 +++++----- packages/bun-framework-next/server-polyfills.tsx | 2 ++ packages/bun-framework-next/server.production.tsx | 0 5 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 packages/bun-framework-next/empty.tsx delete mode 100644 packages/bun-framework-next/index.js delete mode 100644 packages/bun-framework-next/server.production.tsx diff --git a/packages/bun-framework-next/empty.tsx b/packages/bun-framework-next/empty.tsx new file mode 100644 index 000000000..14a7c49f6 --- /dev/null +++ b/packages/bun-framework-next/empty.tsx @@ -0,0 +1,3 @@ +// Keep this file here so that main resolves correctly + +export {}; diff --git a/packages/bun-framework-next/index.js b/packages/bun-framework-next/index.js deleted file mode 100644 index bbf5800ce..000000000 --- a/packages/bun-framework-next/index.js +++ /dev/null @@ -1 +0,0 @@ -// Keep this file here so that main resolves correctly diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index 4c2ad494a..f82243b71 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -1,8 +1,8 @@ { "name": "bun-framework-next", "version": "12.0.5", - "main": "index.js", - "module": "index.js", + "main": "empty.tsx", + "module": "empty.tsx", "description": "Bun compatibility layer for Next.js v12.0.x", "scripts": { "test": "echo Worked", @@ -86,9 +86,9 @@ } }, "production": { - "client": "client.production.tsx", - "server": "server.production.tsx", - "fallback": "fallback.production.tsx", + "client": "empty.tsx", + "server": "empty.tsx", + "fallback": "empty.tsx", "css": "onimportcss" } } diff --git a/packages/bun-framework-next/server-polyfills.tsx b/packages/bun-framework-next/server-polyfills.tsx index 474ee6ec9..d34c08fc5 100644 --- a/packages/bun-framework-next/server-polyfills.tsx +++ b/packages/bun-framework-next/server-polyfills.tsx @@ -13,6 +13,7 @@ class URL { } } var onlyChildPolyfill = React.Children.only; + React.Children.only = function (children) { if (children && typeof children === "object" && children.length == 1) { return onlyChildPolyfill(children[0]); @@ -20,6 +21,7 @@ React.Children.only = function (children) { return onlyChildPolyfill(children); }; + globalThis.URL = URL; import { TextEncoder, TextDecoder } from "./text-encoder-polyfill"; diff --git a/packages/bun-framework-next/server.production.tsx b/packages/bun-framework-next/server.production.tsx deleted file mode 100644 index e69de29bb..000000000 -- cgit v1.2.3 From a1b88e85fd075807be6318ef05a45dcc933dbe47 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 14:12:42 -0800 Subject: mv empty.tsx -> empty.js --- packages/bun-framework-next/empty.js | 3 +++ packages/bun-framework-next/empty.tsx | 3 --- packages/bun-framework-next/package.json | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 packages/bun-framework-next/empty.js delete mode 100644 packages/bun-framework-next/empty.tsx diff --git a/packages/bun-framework-next/empty.js b/packages/bun-framework-next/empty.js new file mode 100644 index 000000000..14a7c49f6 --- /dev/null +++ b/packages/bun-framework-next/empty.js @@ -0,0 +1,3 @@ +// Keep this file here so that main resolves correctly + +export {}; diff --git a/packages/bun-framework-next/empty.tsx b/packages/bun-framework-next/empty.tsx deleted file mode 100644 index 14a7c49f6..000000000 --- a/packages/bun-framework-next/empty.tsx +++ /dev/null @@ -1,3 +0,0 @@ -// Keep this file here so that main resolves correctly - -export {}; diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index f82243b71..b07199615 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -1,8 +1,8 @@ { "name": "bun-framework-next", "version": "12.0.5", - "main": "empty.tsx", - "module": "empty.tsx", + "main": "empty.js", + "module": "empty.js", "description": "Bun compatibility layer for Next.js v12.0.x", "scripts": { "test": "echo Worked", @@ -86,9 +86,9 @@ } }, "production": { - "client": "empty.tsx", - "server": "empty.tsx", - "fallback": "empty.tsx", + "client": "empty.js", + "server": "empty.js", + "fallback": "empty.js", "css": "onimportcss" } } -- cgit v1.2.3 From cf4964c8f435e25cbcbe43ba8ac0533a1467ef74 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Thu, 11 Nov 2021 14:15:04 -0800 Subject: add empty.js --- packages/bun-framework-next/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bun-framework-next/tsconfig.json b/packages/bun-framework-next/tsconfig.json index d14767c9f..09f55d73c 100644 --- a/packages/bun-framework-next/tsconfig.json +++ b/packages/bun-framework-next/tsconfig.json @@ -16,6 +16,6 @@ "baseUrl": ".", "paths": {} }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "empty.js"], "exclude": ["node_modules"] } -- cgit v1.2.3 From 6ee673095cbddc97a56bae7a512a5271d4a977a2 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 15:45:37 -0800 Subject: continue fixing typescript errors --- packages/bun-framework-next/client.development.tsx | 59 +++++++++++++--------- .../bun-framework-next/fallback.development.tsx | 3 +- packages/bun-framework-next/package.json | 3 ++ packages/bun-framework-next/page-loader.ts | 16 ++++-- packages/bun-framework-next/server-polyfills.tsx | 12 ++++- packages/bun-framework-next/server.development.tsx | 1 + pnpm-lock.yaml | 31 ++++++++++++ 7 files changed, 93 insertions(+), 32 deletions(-) diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index f3d8d39e5..bf03af289 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -1,10 +1,20 @@ +/// + globalThis.global = globalThis; globalThis.Bun_disableCSSImports = true; import * as React from "react"; + var onlyChildPolyfill = React.Children.only; -React.Children.only = function (children) { - if (children && typeof children === "object" && children.length == 1) { + +React.Children.only = function only( + children: React.ReactNode | React.ReactNode[] +) { + if ( + children && + typeof children === "object" && + (children as any).length == 1 + ) { return onlyChildPolyfill(children[0]); } @@ -23,9 +33,7 @@ import Router, { PrivateRouteInfo, } from "next/dist/shared/lib/router/router"; -const App = NextApp; - -import * as NextRouteLoader from "next/dist/client/route-loader"; +import NextRouteLoader from "next/dist/client/route-loader"; import { isDynamicRoute } from "next/dist/shared/lib/router/utils/is-dynamic"; import { urlQueryToSearchParams, @@ -41,8 +49,11 @@ import { createRouter, makePublicRouterInstance, } from "next/dist/client/router"; + export const emitter: MittEmitter = mitt(); +const App = NextApp; + declare global { interface Window { /* test fns */ @@ -102,7 +113,8 @@ type RenderRouteInfo = PrivateRouteInfo & { const nextDataTag = document.getElementById("__NEXT_DATA__"); -const data: typeof window["__NEXT_DATA__"] = nextDataTag +// pages is added at runtime and doesn't exist in Next types +const data: NEXT_DATA & { pages: Record } = nextDataTag ? JSON.parse(document.getElementById("__NEXT_DATA__")!.textContent!) : nextDataFromBunData(); @@ -116,12 +128,14 @@ const { buildId, assetPrefix, runtimeConfig, + // Todo, revist this constant when supporting dynamic() dynamicIds, isFallback, locale, locales, domainLocales, isPreview, + pages, } = data; const prefix: string = assetPrefix || ""; @@ -138,24 +152,19 @@ if (hasBasePath(asPath)) { asPath = delBasePath(asPath); } -export const pageLoader: PageLoader = new PageLoader( - buildId, - prefix, - data.pages -); +export const pageLoader: PageLoader = new PageLoader(buildId, prefix, pages); const headManager: { mountedInstances: Set; updateHead: (head: JSX.Element[]) => void; } = initHeadManager(); -const appElement: HTMLElement | null = document.getElementById("__next"); export let router: Router; -let CachedApp: AppComponent = App, - onPerfEntry: (metric: any) => void; -export default function boot(EntryPointNamespace, loader) { - _boot(EntryPointNamespace).then(() => {}, false); +let CachedApp: AppComponent = null; + +export default function boot(EntryPointNamespace) { + _boot(EntryPointNamespace, false); } class Container extends React.Component<{ @@ -274,7 +283,7 @@ let reactRoot: any = null; const USE_REACT_18 = "hydrateRoot" in ReactDOM; export async function _boot(EntryPointNamespace, isError) { - NextRouteLoader.default.getClientBuildManifest = () => Promise.resolve({}); + NextRouteLoader.getClientBuildManifest = () => Promise.resolve({}); const PageComponent = EntryPointNamespace.default; @@ -293,6 +302,7 @@ export async function _boot(EntryPointNamespace, isError) { if (appSrc) { const AppModule = await import(appSrc); + console.assert( AppModule.default, appSrc + " must have a default export'd React component" @@ -332,7 +342,9 @@ export async function _boot(EntryPointNamespace, isError) { }); globalThis.next.router = router; + const domEl = document.querySelector("#__next"); + const reactEl = ( + ); @@ -381,18 +393,15 @@ export function render(props) { } export function renderError(e) { - const reactEl = ( - - UH OH!!!!} pageProps={data.props}> - - ); + // TODO verify this works + const reactEl = {null}; if (USE_REACT_18) { if (!reactRoot) { const domEl = document.querySelector("#__next"); // Unlike with createRoot, you don't need a separate root.render() call here - reactRoot = ReactDOM.createRoot(domEl, reactEl); + reactRoot = ReactDOM.hydrateRoot(domEl, reactEl); } else { reactRoot.render(reactEl); } diff --git a/packages/bun-framework-next/fallback.development.tsx b/packages/bun-framework-next/fallback.development.tsx index 54d31d5f5..460b5e165 100644 --- a/packages/bun-framework-next/fallback.development.tsx +++ b/packages/bun-framework-next/fallback.development.tsx @@ -1,5 +1,5 @@ import { insertStyleSheet } from "./page-loader"; -import type { FallbackMessageContainer } from "../../../src/api/schema"; +import type { FallbackMessageContainer } from "../../src/api/schema"; var once = false; function insertNextHeadCount() { @@ -65,6 +65,7 @@ function renderFallback({ router }: FallbackMessageContainer) { } export default function render(props: FallbackMessageContainer) { + // @ts-expect-error bun:error.js is real return import("/bun:error.js").then(({ renderFallbackError }) => { return renderFallback(props).then( () => { diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index b07199615..ea459412a 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -11,12 +11,15 @@ "author": "", "license": "MIT", "dependencies": { + "bun-framework-next": "^12.0.4", "react-is": "^17.0.2" }, "peerDependencies": { "next": "^12.0.0" }, "devDependencies": { + "@types/react": "^17.0.34", + "@types/react-dom": "^17.0.11", "next": "^12.0.0", "react-refresh": "^0.10.0", "typescript": "^4.4.4" diff --git a/packages/bun-framework-next/page-loader.ts b/packages/bun-framework-next/page-loader.ts index 2a8b402ad..3b31387d8 100644 --- a/packages/bun-framework-next/page-loader.ts +++ b/packages/bun-framework-next/page-loader.ts @@ -1,4 +1,6 @@ -import NextPageLoader from "next/dist/client/page-loader"; +import NextPageLoader, { + GoodPageCache as NextGoodPageCache, +} from "next/dist/client/page-loader"; import getAssetPathFromRoute from "next/dist/shared/lib/router/utils/get-asset-path-from-route"; export function insertStyleSheet(url: string) { @@ -10,8 +12,9 @@ export function insertStyleSheet(url: string) { const link = document.createElement("link"); link.rel = "stylesheet"; - link.onload = () => resolve(); - link.onerror = () => reject(); + // marking this resolve as void seems to break other things + link.onload = resolve; + link.onerror = reject; link.href = url; @@ -19,6 +22,11 @@ export function insertStyleSheet(url: string) { }); } +interface GoodPageCache extends NextGoodPageCache { + __N_SSG: boolean; + __N_SSP: boolean; +} + export default class PageLoader extends NextPageLoader { constructor(_, __, pages) { super(_, __); @@ -70,7 +78,7 @@ export default class PageLoader extends NextPageLoader { }; prefetch() { - return Promise.resolve({}); + return Promise.resolve(); } async loadPage(route: string): Promise { diff --git a/packages/bun-framework-next/server-polyfills.tsx b/packages/bun-framework-next/server-polyfills.tsx index d34c08fc5..8942154b7 100644 --- a/packages/bun-framework-next/server-polyfills.tsx +++ b/packages/bun-framework-next/server-polyfills.tsx @@ -7,15 +7,23 @@ globalThis.Buffer = Buffer; import * as React from "react"; class URL { - constructor(base, source) { + pathname: string; + href: string; + + constructor(base: string, source: string) { this.pathname = source; this.href = base + source; } } + var onlyChildPolyfill = React.Children.only; React.Children.only = function (children) { - if (children && typeof children === "object" && children.length == 1) { + if ( + children && + typeof children === "object" && + (children as any).length == 1 + ) { return onlyChildPolyfill(children[0]); } diff --git a/packages/bun-framework-next/server.development.tsx b/packages/bun-framework-next/server.development.tsx index 96ba55812..fd2a7b620 100644 --- a/packages/bun-framework-next/server.development.tsx +++ b/packages/bun-framework-next/server.development.tsx @@ -1,6 +1,7 @@ import nextPackage from "next/package.json"; import "./server-polyfills"; import { render } from "./renderDocument"; +import { ResolveError } from "../../src/runtime/errors"; const { version } = nextPackage; if ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b96e023bc..4fa5982b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,6 +43,9 @@ importers: packages/bun-framework-next: specifiers: + '@types/react': ^17.0.34 + '@types/react-dom': ^17.0.11 + bun-framework-next: ^12.0.4 next: ^12.0.0 react-is: ^17.0.2 react-refresh: ^0.10.0 @@ -50,6 +53,8 @@ importers: dependencies: react-is: 17.0.2 devDependencies: + '@types/react': 17.0.34 + '@types/react-dom': 17.0.11 next: 12.0.3_react-dom@17.0.2+react@17.0.2 react-refresh: 0.10.0 typescript: 4.4.4 @@ -279,12 +284,34 @@ packages: /@types/node/16.11.4: resolution: {integrity: sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==} + /@types/prop-types/15.7.4: + resolution: {integrity: sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==} + dev: true + /@types/puppeteer/5.4.4: resolution: {integrity: sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==} dependencies: '@types/node': 16.11.4 dev: true + /@types/react-dom/17.0.11: + resolution: {integrity: sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==} + dependencies: + '@types/react': 17.0.34 + dev: true + + /@types/react/17.0.34: + resolution: {integrity: sha512-46FEGrMjc2+8XhHXILr+3+/sTe3OfzSPU9YGKILLrUYbQ1CLQC9Daqo1KzENGXAWwrFwiY0l4ZbF20gRvgpWTg==} + dependencies: + '@types/prop-types': 15.7.4 + '@types/scheduler': 0.16.2 + csstype: 3.0.10 + dev: true + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + dev: true + /@types/yauzl/2.9.2: resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} requiresBuild: true @@ -749,6 +776,10 @@ packages: postcss: 8.2.15 dev: true + /csstype/3.0.10: + resolution: {integrity: sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==} + dev: true + /data-uri-to-buffer/3.0.1: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} -- cgit v1.2.3 From 304a36b8144aafcece27ba809fa9bed3afdd2465 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:00:57 -0800 Subject: fix lockfile --- packages/bun-framework-next/package.json | 1 - pnpm-lock.yaml | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index ea459412a..953ca29c3 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -11,7 +11,6 @@ "author": "", "license": "MIT", "dependencies": { - "bun-framework-next": "^12.0.4", "react-is": "^17.0.2" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4fa5982b1..5a5574998 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,7 +45,6 @@ importers: specifiers: '@types/react': ^17.0.34 '@types/react-dom': ^17.0.11 - bun-framework-next: ^12.0.4 next: ^12.0.0 react-is: ^17.0.2 react-refresh: ^0.10.0 -- cgit v1.2.3 From cb18bf7e5d3657313359c448bcc24ff3f27f2faa Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:21:57 -0800 Subject: begin working on renderDocument --- packages/bun-framework-next/renderDocument.tsx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 59e18fbe7..d0ceb8599 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -18,6 +18,7 @@ import { RenderPageResult, HtmlContext, } from "next/dist/shared/lib/utils"; +import { RenderOpts } from "next/dist/server/render"; import * as NextDocument from "next/document"; import * as ReactDOMServer from "react-dom/server.browser"; import * as React from "react"; @@ -70,6 +71,12 @@ const notImplementedProxy = (base) => } ); +type DocumentFiles = { + sharedFiles: readonly string[]; + pageFiles: readonly string[]; + allFiles: readonly string[]; +}; + function getScripts(files: DocumentFiles) { const { context, props } = this; const { @@ -147,6 +154,9 @@ function renderDocument( disableOptimizedLoading, }: RenderOpts & { props: any; + // + page: string; + // docComponentsRendered: DocumentProps["docComponentsRendered"]; docProps: DocumentInitialProps; pathname: string; @@ -454,7 +464,9 @@ export async function render({ const hasPageGetInitialProps = !!(Component as any).getInitialProps; const pageIsDynamic = route.kind === "dynamic"; + const isPreview = false; const isAutoExport = false; + const nextExport = isAutoExport || isFallback; if (isAutoExport || isFallback) { // // remove query values except ones that will be set during export @@ -476,7 +488,6 @@ export async function render({ , ]; - const nextExport = isAutoExport || isFallback; const reactLoadableModules: string[] = []; var scriptLoader = {}; const AppContainer = ({ children }: any) => ( @@ -728,8 +739,6 @@ export async function render({ // }); const docComponentsRendered: DocumentProps["docComponentsRendered"] = {}; - const isPreview = false; - let html = renderDocument(Document, { docComponentsRendered, ...renderOpts, @@ -743,11 +752,13 @@ export async function render({ pages: pages, }, // Only enabled in production as development mode has features relying on HMR (style injection for example) + // @ts-expect-error unstable_runtimeJS: true, // process.env.NODE_ENV === "production" // ? pageConfig.unstable_runtimeJS // : undefined, // unstable_JsPreload: pageConfig.unstable_JsPreload, + // @ts-expect-error unstable_JsPreload: true, dangerousAsPath: router.asPath, ampState: undefined, @@ -770,9 +781,9 @@ export async function render({ appGip: !defaultAppGetInitialProps ? true : undefined, devOnlyCacheBusterQueryString: "", scriptLoader, - isPreview: isPreview === true ? true : undefined, - autoExport: isAutoExport === true ? true : undefined, - nextExport: nextExport === true ? true : undefined, + isPreview: isPreview, + autoExport: isAutoExport, + nextExport: nextExport, useMaybeDeferContent, }); const bodyRenderIdx = html.indexOf(BODY_RENDER_TARGET); -- cgit v1.2.3 From 87319ba73d7f079595c11325904c37cf5b654eda Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:23:50 -0800 Subject: remove export from empty --- packages/bun-framework-next/empty.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/bun-framework-next/empty.js b/packages/bun-framework-next/empty.js index 14a7c49f6..bbf5800ce 100644 --- a/packages/bun-framework-next/empty.js +++ b/packages/bun-framework-next/empty.js @@ -1,3 +1 @@ // Keep this file here so that main resolves correctly - -export {}; -- cgit v1.2.3 From a79153f6e0d8f41a99b9b37bd791217884f91f10 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:34:22 -0800 Subject: remove unused proxy shim --- packages/bun-framework-next/renderDocument.tsx | 38 ++------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index d0ceb8599..5b4cab0ce 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -36,41 +36,6 @@ const isJSFile = (file: string) => file.endsWith(".ts") || file.endsWith(".tsx"); -const notImplementedProxy = (base) => - new Proxy( - {}, - { - deleteProperty: function (target, prop) { - return undefined; - }, - enumerate: function (oTarget, sKey) { - return [].entries(); - }, - ownKeys: function (oTarget, sKey) { - return [].values(); - }, - has: function (oTarget, sKey) { - return false; - }, - defineProperty: function (oTarget, sKey, oDesc) { - return undefined; - }, - getOwnPropertyDescriptor: function (oTarget, sKey) { - return undefined; - }, - get(this, prop) { - throw new ReferenceError( - `${base} is not available for this environment.` - ); - }, - set(this, prop, value) { - throw new ReferenceError( - `${base} is not available for this environment.` - ); - }, - } - ); - type DocumentFiles = { sharedFiles: readonly string[]; pageFiles: readonly string[]; @@ -458,7 +423,7 @@ export async function render({ delete query.__nextDefaultLocale; const isSSG = !!getStaticProps; - const isBuildTimeSSG = isSSG && false; + const defaultAppGetInitialProps = App.getInitialProps === (App as any).origGetInitialProps; @@ -515,6 +480,7 @@ export async function render({ ); + // Todo: Double check this when adding support for dynamic() await Loadable.preloadAll(); // Make sure all dynamic imports are loaded const router = new ServerRouter( -- cgit v1.2.3 From 30c79875a3c0376ceea0c96cd019ed3376aacc45 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:37:27 -0800 Subject: remove pnpm-workspace --- pnpm-workspace.yaml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 pnpm-workspace.yaml diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml deleted file mode 100644 index dee51e928..000000000 --- a/pnpm-workspace.yaml +++ /dev/null @@ -1,2 +0,0 @@ -packages: - - "packages/*" -- cgit v1.2.3 From c3d9804e85f2bf92476d49f93891f42a5f8e1f22 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:45:40 -0800 Subject: reset file --- packages/bun-framework-next/server.development.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/bun-framework-next/server.development.tsx b/packages/bun-framework-next/server.development.tsx index fd2a7b620..96ba55812 100644 --- a/packages/bun-framework-next/server.development.tsx +++ b/packages/bun-framework-next/server.development.tsx @@ -1,7 +1,6 @@ import nextPackage from "next/package.json"; import "./server-polyfills"; import { render } from "./renderDocument"; -import { ResolveError } from "../../src/runtime/errors"; const { version } = nextPackage; if ( -- cgit v1.2.3 From 6e21c9927c1413c49bf6544de5d2212417210ec7 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 16:48:12 -0800 Subject: remove workspace caching --- .github/workflows/bun-framework-next.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index cd46a4476..8428bd722 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -30,16 +30,8 @@ jobs: with: version: 6.21.0 - - name: Cache pnpm modules - uses: actions/cache@v2 - with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- - - name: Install dependencies - run: pnpm install + run: cd packages/bun-framework-next && pnpm install - name: Test bun-framework-next run: pnpm test --filter bun-framework-next -- cgit v1.2.3 From c535cd7613e816a073fa6296d400f2f3a5f36164 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 17:00:50 -0800 Subject: remove filter from action --- .github/workflows/bun-framework-next.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index 8428bd722..508beae54 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -34,7 +34,4 @@ jobs: run: cd packages/bun-framework-next && pnpm install - name: Test bun-framework-next - run: pnpm test --filter bun-framework-next - - - name: Typecheck bun-framework-next - run: pnpm test --filter bun-framework-next + run: pnpm test -- cgit v1.2.3 From 5b2c7ad1f3300feba7a1bcdbbe5b8a7172575a9c Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 15 Nov 2021 17:02:32 -0800 Subject: another try --- .github/workflows/bun-framework-next.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index 508beae54..470948175 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -34,4 +34,4 @@ jobs: run: cd packages/bun-framework-next && pnpm install - name: Test bun-framework-next - run: pnpm test + run: cd packages/bun-framework-next && pnpm test -- cgit v1.2.3 From 7f62169b5e50a6c01d261915a827bfcea98d522d Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 16 Nov 2021 10:22:22 -0800 Subject: add prettier to root --- package.json | 4 +- packages/bun-framework-next/package.json | 4 +- packages/bun-framework-next/server-polyfills.tsx | 14 +- .../bun-framework-next/text-encoder-polyfill.js | 302 --------------------- pnpm-lock.yaml | 6 +- 5 files changed, 10 insertions(+), 320 deletions(-) delete mode 100644 packages/bun-framework-next/text-encoder-polyfill.js diff --git a/package.json b/package.json index 563000fa7..8955f7ef2 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "highlight.js": "^11.3.1", "moment": "^2.29.1", "peechy": "0.4.20", - "prettier": "latest", "puppeteer": "^10.2.0", "react": "^17.0.2", "react-dom": "^17.0.2" @@ -15,7 +14,8 @@ }, "devDependencies": { "@types/node": "^16.9.2", - "@types/puppeteer": "^5.4.4" + "@types/puppeteer": "^5.4.4", + "prettier": "^2.4.1" }, "version": "0.0.0" } diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index 953ca29c3..d715a8ba4 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -11,7 +11,9 @@ "author": "", "license": "MIT", "dependencies": { - "react-is": "^17.0.2" + "fast-text-encoding": "^1.0.3", + "react-is": "^17.0.2", + "url-polyfill": "^1.1.12" }, "peerDependencies": { "next": "^12.0.0" diff --git a/packages/bun-framework-next/server-polyfills.tsx b/packages/bun-framework-next/server-polyfills.tsx index 8942154b7..887621978 100644 --- a/packages/bun-framework-next/server-polyfills.tsx +++ b/packages/bun-framework-next/server-polyfills.tsx @@ -1,21 +1,13 @@ globalThis.global = globalThis; import { Buffer } from "buffer"; +import { URL } from "url-polyfill"; +import { TextEncoder, TextDecoder } from "fast-text-encoding"; globalThis.Buffer = Buffer; import * as React from "react"; -class URL { - pathname: string; - href: string; - - constructor(base: string, source: string) { - this.pathname = source; - this.href = base + source; - } -} - var onlyChildPolyfill = React.Children.only; React.Children.only = function (children) { @@ -32,7 +24,5 @@ React.Children.only = function (children) { globalThis.URL = URL; -import { TextEncoder, TextDecoder } from "./text-encoder-polyfill"; - globalThis.TextEncoder ||= TextEncoder; globalThis.TextDecoder ||= TextDecoder; diff --git a/packages/bun-framework-next/text-encoder-polyfill.js b/packages/bun-framework-next/text-encoder-polyfill.js deleted file mode 100644 index 3dd95009f..000000000 --- a/packages/bun-framework-next/text-encoder-polyfill.js +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright 2017 Sam Thorogood. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -/** - * @fileoverview Polyfill for TextEncoder and TextDecoder. - * - * You probably want `text.min.js`, and not this file directly. - */ - -// used for FastTextDecoder -const validUtfLabels = ["utf-8", "utf8", "unicode-1-1-utf-8"]; - -/** - * @constructor - */ -function FastTextEncoder() { - // This does not accept an encoding, and always uses UTF-8: - // https://www.w3.org/TR/encoding/#dom-textencoder -} - -Object.defineProperty(FastTextEncoder.prototype, "encoding", { - value: "utf-8", -}); - -/** - * @param {string} string - * @param {{stream: boolean}=} options - * @return {!Uint8Array} - */ -FastTextEncoder.prototype["encode"] = function ( - string, - options = { stream: false } -) { - if (options.stream) { - throw new Error(`Failed to encode: the 'stream' option is unsupported.`); - } - - let pos = 0; - const len = string.length; - - let at = 0; // output position - let tlen = Math.max(32, len + (len >>> 1) + 7); // 1.5x size - let target = new Uint8Array((tlen >>> 3) << 3); // ... but at 8 byte offset - - while (pos < len) { - let value = string.charCodeAt(pos++); - if (value >= 0xd800 && value <= 0xdbff) { - // high surrogate - if (pos < len) { - const extra = string.charCodeAt(pos); - if ((extra & 0xfc00) === 0xdc00) { - ++pos; - value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000; - } - } - if (value >= 0xd800 && value <= 0xdbff) { - continue; // drop lone surrogate - } - } - - // expand the buffer if we couldn't write 4 bytes - if (at + 4 > target.length) { - tlen += 8; // minimum extra - tlen *= 1.0 + (pos / string.length) * 2; // take 2x the remaining - tlen = (tlen >>> 3) << 3; // 8 byte offset - - const update = new Uint8Array(tlen); - update.set(target); - target = update; - } - - if ((value & 0xffffff80) === 0) { - // 1-byte - target[at++] = value; // ASCII - continue; - } else if ((value & 0xfffff800) === 0) { - // 2-byte - target[at++] = ((value >>> 6) & 0x1f) | 0xc0; - } else if ((value & 0xffff0000) === 0) { - // 3-byte - target[at++] = ((value >>> 12) & 0x0f) | 0xe0; - target[at++] = ((value >>> 6) & 0x3f) | 0x80; - } else if ((value & 0xffe00000) === 0) { - // 4-byte - target[at++] = ((value >>> 18) & 0x07) | 0xf0; - target[at++] = ((value >>> 12) & 0x3f) | 0x80; - target[at++] = ((value >>> 6) & 0x3f) | 0x80; - } else { - continue; // out of range - } - - target[at++] = (value & 0x3f) | 0x80; - } - - // Use subarray if slice isn't supported (IE11). This will use more memory - // because the original array still exists. - return target.slice ? target.slice(0, at) : target.subarray(0, at); -}; - -/** - * @constructor - * @param {string=} utfLabel - * @param {{fatal: boolean}=} options - */ -function FastTextDecoder(utfLabel = "utf-8", options = { fatal: false }) { - if (validUtfLabels.indexOf(utfLabel.toLowerCase()) === -1) { - throw new RangeError( - `Failed to construct 'TextDecoder': The encoding label provided ('${utfLabel}') is invalid.` - ); - } - if (options.fatal) { - throw new Error( - `Failed to construct 'TextDecoder': the 'fatal' option is unsupported.` - ); - } -} - -Object.defineProperty(FastTextDecoder.prototype, "encoding", { - value: "utf-8", -}); - -Object.defineProperty(FastTextDecoder.prototype, "fatal", { value: false }); - -Object.defineProperty(FastTextDecoder.prototype, "ignoreBOM", { - value: false, -}); - -/** - * @param {!Uint8Array} bytes - * @return {string} - */ -function decodeBuffer(bytes) { - return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString( - "utf-8" - ); -} - -/** - * @param {!Uint8Array} bytes - * @return {string} - */ -function decodeSyncXHR(bytes) { - const b = new Blob([bytes], { type: "text/plain;charset=UTF-8" }); - const u = URL.createObjectURL(b); - - // This hack will fail in non-Edgium Edge because sync XHRs are disabled (and - // possibly in other places), so ensure there's a fallback call. - try { - const x = new XMLHttpRequest(); - x.open("GET", u, false); - x.send(); - return x.responseText; - } catch (e) { - return decodeFallback(bytes); - } finally { - URL.revokeObjectURL(u); - } -} - -/** - * @param {!Uint8Array} bytes - * @return {string} - */ -function decodeFallback(bytes) { - let inputIndex = 0; - - // Create a working buffer for UTF-16 code points, but don't generate one - // which is too large for small input sizes. UTF-8 to UCS-16 conversion is - // going to be at most 1:1, if all code points are ASCII. The other extreme - // is 4-byte UTF-8, which results in two UCS-16 points, but this is still 50% - // fewer entries in the output. - const pendingSize = Math.min(256 * 256, bytes.length + 1); - const pending = new Uint16Array(pendingSize); - const chunks = []; - let pendingIndex = 0; - - for (;;) { - const more = inputIndex < bytes.length; - - // If there's no more data or there'd be no room for two UTF-16 values, - // create a chunk. This isn't done at the end by simply slicing the data - // into equal sized chunks as we might hit a surrogate pair. - if (!more || pendingIndex >= pendingSize - 1) { - // nb. .apply and friends are *really slow*. Low-hanging fruit is to - // expand this to literally pass pending[0], pending[1], ... etc, but - // the output code expands pretty fast in this case. - chunks.push( - String.fromCharCode.apply(null, pending.subarray(0, pendingIndex)) - ); - - if (!more) { - return chunks.join(""); - } - - // Move the buffer forward and create another chunk. - bytes = bytes.subarray(inputIndex); - inputIndex = 0; - pendingIndex = 0; - } - - // The native TextDecoder will generate "REPLACEMENT CHARACTER" where the - // input data is invalid. Here, we blindly parse the data even if it's - // wrong: e.g., if a 3-byte sequence doesn't have two valid continuations. - - const byte1 = bytes[inputIndex++]; - if ((byte1 & 0x80) === 0) { - // 1-byte or null - pending[pendingIndex++] = byte1; - } else if ((byte1 & 0xe0) === 0xc0) { - // 2-byte - const byte2 = bytes[inputIndex++] & 0x3f; - pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2; - } else if ((byte1 & 0xf0) === 0xe0) { - // 3-byte - const byte2 = bytes[inputIndex++] & 0x3f; - const byte3 = bytes[inputIndex++] & 0x3f; - pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3; - } else if ((byte1 & 0xf8) === 0xf0) { - // 4-byte - const byte2 = bytes[inputIndex++] & 0x3f; - const byte3 = bytes[inputIndex++] & 0x3f; - const byte4 = bytes[inputIndex++] & 0x3f; - - // this can be > 0xffff, so possibly generate surrogates - let codepoint = - ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4; - if (codepoint > 0xffff) { - // codepoint &= ~0x10000; - codepoint -= 0x10000; - pending[pendingIndex++] = ((codepoint >>> 10) & 0x3ff) | 0xd800; - codepoint = 0xdc00 | (codepoint & 0x3ff); - } - pending[pendingIndex++] = codepoint; - } else { - // invalid initial byte - } - } -} - -// Decoding a string is pretty slow, but use alternative options where possible. -let decodeImpl = decodeFallback; -if (typeof Buffer === "function" && Buffer.from) { - // Buffer.from was added in Node v5.10.0 (2015-11-17). - decodeImpl = decodeBuffer; -} else if ( - typeof Blob === "function" && - typeof URL === "function" && - typeof URL.createObjectURL === "function" -) { - // Blob and URL.createObjectURL are available from IE10, Safari 6, Chrome 19 - // (all released in 2012), Firefox 19 (2013), ... - decodeImpl = decodeSyncXHR; -} - -/** - * @param {(!ArrayBuffer|!ArrayBufferView)} buffer - * @param {{stream: boolean}=} options - * @return {string} - */ -FastTextDecoder.prototype["decode"] = function ( - buffer, - options = { stream: false } -) { - if (options["stream"]) { - throw new Error(`Failed to decode: the 'stream' option is unsupported.`); - } - - let bytes; - - if (buffer instanceof Uint8Array) { - // Accept Uint8Array instances as-is. - bytes = buffer; - } else if (buffer.buffer instanceof ArrayBuffer) { - // Look for ArrayBufferView, which isn't a real type, but basically - // represents all the valid TypedArray types plus DataView. They all have - // ".buffer" as an instance of ArrayBuffer. - bytes = new Uint8Array(buffer.buffer); - } else { - // The only other valid argument here is that "buffer" is an ArrayBuffer. - // We also try to convert anything else passed to a Uint8Array, as this - // catches anything that's array-like. Native code would throw here. - bytes = new Uint8Array(buffer); - } - - return decodeImpl(/** @type {!Uint8Array} */ (bytes)); -}; - -export { FastTextEncoder as TextEncoder }; -export { FastTextDecoder as TextDecoder }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a5574998..9fe0236df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: highlight.js: ^11.3.1 moment: ^2.29.1 peechy: 0.4.20 - prettier: latest + prettier: ^2.4.1 puppeteer: ^10.2.0 react: ^17.0.2 react-dom: ^17.0.2 @@ -19,13 +19,13 @@ importers: highlight.js: 11.3.1 moment: 2.29.1 peechy: 0.4.20 - prettier: 2.4.1 puppeteer: 10.4.0 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 devDependencies: '@types/node': 16.11.4 '@types/puppeteer': 5.4.4 + prettier: 2.4.1 packages/bun-error: specifiers: @@ -1835,7 +1835,7 @@ packages: resolution: {integrity: sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==} engines: {node: '>=10.13.0'} hasBin: true - dev: false + dev: true /pretty-format/3.8.0: resolution: {integrity: sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=} -- cgit v1.2.3 From c06e34c687187a528d0da39eddec71323b56e77a Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 10:23:14 -0800 Subject: misc --- packages/bun-framework-next/renderDocument.tsx | 24 +++++++++--------------- packages/bun-framework-next/server-polyfills.tsx | 7 ++----- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 5b4cab0ce..661bebdc0 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -1,4 +1,4 @@ -import * as App from "next/app"; +import App from "next/app"; import { AmpStateContext } from "next/dist/shared/lib/amp-context"; import { HeadManagerContext } from "next/dist/shared/lib/head-manager-context"; import Loadable from "next/dist/shared/lib/loadable"; @@ -23,7 +23,9 @@ import * as NextDocument from "next/document"; import * as ReactDOMServer from "react-dom/server.browser"; import * as React from "react"; import * as ReactIs from "react-is"; -import { BODY_RENDER_TARGET } from "next/constants"; + +// This constant was removed from Next, Is it doing anything? +const BODY_RENDER_TARGET = "__NEXT_BODY_RENDER_TARGET__"; const dev = process.env.NODE_ENV === "development"; @@ -362,11 +364,8 @@ export async function render({ pages["/_app"] = []; } - const AppComponent = AppComponent_ || App.default; - const Document = - (DocumentNamespace && DocumentNamespace.default) || NextDocument.default; - // Document.Html.prototype.getScripts = getScripts; - // } + const AppComponent = AppComponent_ || App; + const Document = (DocumentNamespace as any)?.default || NextDocument.default; const callMiddleware = async (method: string, args: any[], props = false) => { let results: any = props ? {} : []; @@ -422,7 +421,7 @@ export async function render({ delete query.__nextLocale; delete query.__nextDefaultLocale; - const isSSG = !!getStaticProps; + // const isSSG = !!getStaticProps; const defaultAppGetInitialProps = App.getInitialProps === (App as any).origGetInitialProps; @@ -518,7 +517,7 @@ export async function render({ ); }, defaultGetInitialProps: async ( - docCtx: DocumentContext + docCtx: NextDocument.DocumentContext ): Promise => { const enhanceApp = (AppComp: any) => { return (props: any) => ; @@ -696,13 +695,7 @@ export async function render({ const renderOpts = { params: route.params, }; - // renderOpts.params = _params || params; - // parsedUrl.pathname = denormalizePagePath(parsedUrl.pathname!); - // renderOpts.resolvedUrl = formatUrl({ - // ...parsedUrl, - // query: origQuery, - // }); const docComponentsRendered: DocumentProps["docComponentsRendered"] = {}; let html = renderDocument(Document, { @@ -752,6 +745,7 @@ export async function render({ nextExport: nextExport, useMaybeDeferContent, }); + // __NEXT_BODY_RENDER_TARGET__ const bodyRenderIdx = html.indexOf(BODY_RENDER_TARGET); html = html.substring(0, bodyRenderIdx) + diff --git a/packages/bun-framework-next/server-polyfills.tsx b/packages/bun-framework-next/server-polyfills.tsx index 887621978..57960e4fa 100644 --- a/packages/bun-framework-next/server-polyfills.tsx +++ b/packages/bun-framework-next/server-polyfills.tsx @@ -3,12 +3,9 @@ globalThis.global = globalThis; import { Buffer } from "buffer"; import { URL } from "url-polyfill"; import { TextEncoder, TextDecoder } from "fast-text-encoding"; - -globalThis.Buffer = Buffer; - import * as React from "react"; -var onlyChildPolyfill = React.Children.only; +const onlyChildPolyfill = React.Children.only; React.Children.only = function (children) { if ( @@ -22,7 +19,7 @@ React.Children.only = function (children) { return onlyChildPolyfill(children); }; +globalThis.Buffer = Buffer; globalThis.URL = URL; - globalThis.TextEncoder ||= TextEncoder; globalThis.TextDecoder ||= TextDecoder; -- cgit v1.2.3 From f747fd9dfa19ac9edc839161d0adaeb962e2ade0 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:25:57 -0500 Subject: ts-expect-error the remaining ts-errors --- packages/bun-framework-next/client.development.tsx | 3 +++ packages/bun-framework-next/renderDocument.tsx | 26 +++++++++++++++++----- packages/bun-framework-next/server.development.tsx | 2 ++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index bf03af289..aad808965 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -289,6 +289,9 @@ export async function _boot(EntryPointNamespace, isError) { const appScripts = globalThis.__NEXT_DATA__.pages["/_app"]; + // Type 'typeof App' is not assignable to type 'ComponentClass'. + // Construct signature return types 'App' and 'Component' are incompatible. + // @ts-expect-error CachedApp = NextApp; if (appScripts && appScripts.length > 0) { diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 661bebdc0..417e200ac 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -31,6 +31,9 @@ const dev = process.env.NODE_ENV === "development"; type ParsedUrlQuery = Record; +// @ts-expect-error TS doesn't understand that Bun is a global +const origin: string = Bun.origin; + const isJSFile = (file: string) => file.endsWith(".js") || file.endsWith(".jsx") || @@ -199,7 +202,11 @@ function renderDocument( "" + ReactDOMServer.renderToStaticMarkup( + {/* HTMLContextProvider expects useMainContent */} + {/* @ts-expect-error */} + {/* Document doesn't expect useMaybeDeferContent */} + {/* @ts-expect-error */} @@ -336,7 +343,8 @@ export async function render({ routeNames: string[]; request: Request; }): Promise { - const { default: Component, getStaticProps = null } = PageNamespace || {}; + const { default: Component } = PageNamespace || {}; + const getStaticProps = (PageNamespace as any).getStaticProps || null; const { default: AppComponent_ } = AppNamespace || {}; var query = Object.assign({}, route.query); @@ -348,7 +356,7 @@ export async function render({ for (let i = 0; i < routeNames.length; i++) { const filePath = routePaths[i]; const name = routeNames[i]; - pages[name] = [Bun.origin + filePath]; + pages[name] = [origin + filePath]; } if (appStylesheets.length > 0) { @@ -490,7 +498,7 @@ export async function render({ isFallback: isFallback, }, true, - Bun.origin, + origin, null, [], // renderOpts.locales, null, //renderOpts.defaultLocale, @@ -529,7 +537,7 @@ export async function render({ }, }; - var props = await loadGetInitialProps(AppComponent, { + var props: any = await loadGetInitialProps(AppComponent, { AppTree: ctx.AppTree, Component, router, @@ -541,6 +549,7 @@ export async function render({ // We don't call getServerSideProps on clients. // This isn't correct. // We don't call getServerSideProps on clients. + // @ts-expect-error const getServerSideProps = PageNamespace.getServerSideProps; var responseHeaders: Headers; @@ -637,6 +646,7 @@ export async function render({ const renderToString = ReactDOMServer.renderToString; const ErrorDebug = null; + props.pageProps = pageProps; const renderPage: RenderPage = ( @@ -659,6 +669,8 @@ export async function render({ } const { App: EnhancedApp, Component: EnhancedComponent } = + // Argument of type 'NextComponentType | typeof App' is not assignable to parameter of type 'AppType'. + // @ts-expect-error enhanceComponents(options, AppComponent, Component); const htmlOrPromise = renderToString( @@ -702,13 +714,15 @@ export async function render({ docComponentsRendered, ...renderOpts, disableOptimizedLoading: false, - canonicalBase: Bun.origin, + canonicalBase: origin, buildManifest: { devFiles: [], allFiles: [], polyfillFiles: [], lowPriorityFiles: [], - pages: pages, + // buildManifest doesn't expect pages, even though its used + // @ts-expect-error + pages, }, // Only enabled in production as development mode has features relying on HMR (style injection for example) // @ts-expect-error diff --git a/packages/bun-framework-next/server.development.tsx b/packages/bun-framework-next/server.development.tsx index 96ba55812..4ac2621e8 100644 --- a/packages/bun-framework-next/server.development.tsx +++ b/packages/bun-framework-next/server.development.tsx @@ -26,6 +26,8 @@ import(Bun.routesDir + "_document").then( DocumentLoaded = true; }, (err) => { + // ResolveError is defined outside of bun-framework-next in ../../src/runtime/errors + // @ts-expect-error if (err instanceof ResolveError) { DocumentLoaded = true; } else { -- cgit v1.2.3 From 0eb3cdc43c703e3811962535c49e0a4f81e7321e Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:27:51 -0500 Subject: add typechecking to action --- .github/workflows/bun-framework-next.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index 470948175..21fde11d3 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -34,4 +34,4 @@ jobs: run: cd packages/bun-framework-next && pnpm install - name: Test bun-framework-next - run: cd packages/bun-framework-next && pnpm test + run: cd packages/bun-framework-next && pnpm check -- cgit v1.2.3 From 4edfa171f01d970972678f645f19c8cbb546fc2d Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:28:23 -0500 Subject: update copy --- .github/workflows/bun-framework-next.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bun-framework-next.yml b/.github/workflows/bun-framework-next.yml index 21fde11d3..17c46e74a 100644 --- a/.github/workflows/bun-framework-next.yml +++ b/.github/workflows/bun-framework-next.yml @@ -33,5 +33,5 @@ jobs: - name: Install dependencies run: cd packages/bun-framework-next && pnpm install - - name: Test bun-framework-next + - name: Type check bun-framework-next run: cd packages/bun-framework-next && pnpm check -- cgit v1.2.3 From c07103748551d869258f3d0cc2a95a14b45d9a60 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:52:28 -0500 Subject: try adding lib.ts --- packages/bun-framework-next/libs.d.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/bun-framework-next/libs.d.ts diff --git a/packages/bun-framework-next/libs.d.ts b/packages/bun-framework-next/libs.d.ts new file mode 100644 index 000000000..67c425c0d --- /dev/null +++ b/packages/bun-framework-next/libs.d.ts @@ -0,0 +1 @@ +declare module "react-dom/server.browser" {} -- cgit v1.2.3 From 875b60dfe5c8eeeffee958ca474f9f6be69a342d Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:55:57 -0500 Subject: add type fns --- packages/bun-framework-next/libs.d.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/bun-framework-next/libs.d.ts b/packages/bun-framework-next/libs.d.ts index 67c425c0d..b8bd3dfaf 100644 --- a/packages/bun-framework-next/libs.d.ts +++ b/packages/bun-framework-next/libs.d.ts @@ -1 +1,4 @@ -declare module "react-dom/server.browser" {} +declare module "react-dom/server.browser" { + const renderToStaticMarkup: any; + const renderToString: any; +} -- cgit v1.2.3 From 25a49005cc4e8ec46323c2edb5bc2826117c5266 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 21:58:35 -0500 Subject: another try --- packages/bun-framework-next/libs.d.ts | 4 ---- packages/bun-framework-next/renderDocument.tsx | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 packages/bun-framework-next/libs.d.ts diff --git a/packages/bun-framework-next/libs.d.ts b/packages/bun-framework-next/libs.d.ts deleted file mode 100644 index b8bd3dfaf..000000000 --- a/packages/bun-framework-next/libs.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module "react-dom/server.browser" { - const renderToStaticMarkup: any; - const renderToString: any; -} diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 417e200ac..4832c9eb2 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -20,7 +20,7 @@ import { } from "next/dist/shared/lib/utils"; import { RenderOpts } from "next/dist/server/render"; import * as NextDocument from "next/document"; -import * as ReactDOMServer from "react-dom/server.browser"; +import * as ReactDOMServer from "react-dom/server"; import * as React from "react"; import * as ReactIs from "react-is"; -- cgit v1.2.3 From 1d01ffeb9e3fa90b009afe08a43b34843856c074 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Mon, 22 Nov 2021 22:19:53 -0500 Subject: remove .then --- packages/bun-framework-next/renderDocument.tsx | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 4832c9eb2..218d21a3c 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -654,12 +654,7 @@ export async function render({ ): RenderPageResult | Promise => { if (ctx.err && ErrorDebug) { const htmlOrPromise = renderToString(); - return typeof htmlOrPromise === "string" - ? { html: htmlOrPromise, head } - : htmlOrPromise.then((html) => ({ - html, - head, - })); + return { html: htmlOrPromise, head }; } if (dev && (props.router || props.Component)) { @@ -683,12 +678,8 @@ export async function render({ /> ); - return typeof htmlOrPromise === "string" - ? { html: htmlOrPromise, head } - : htmlOrPromise.then((html) => ({ - html, - head, - })); + + return { html: htmlOrPromise, head }; }; const documentCtx = { ...ctx, renderPage }; -- cgit v1.2.3 From cdeb39bd7f0f2fa280f2c0ab833b789d3099f3ed Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 10:42:04 -0500 Subject: begin addressing more feedback --- packages/bun-framework-next/renderDocument.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/bun-framework-next/renderDocument.tsx b/packages/bun-framework-next/renderDocument.tsx index 218d21a3c..9cc6654c7 100644 --- a/packages/bun-framework-next/renderDocument.tsx +++ b/packages/bun-framework-next/renderDocument.tsx @@ -20,7 +20,7 @@ import { } from "next/dist/shared/lib/utils"; import { RenderOpts } from "next/dist/server/render"; import * as NextDocument from "next/document"; -import * as ReactDOMServer from "react-dom/server"; +import * as ReactDOMServer from "react-dom/server.browser"; import * as React from "react"; import * as ReactIs from "react-is"; @@ -344,7 +344,7 @@ export async function render({ request: Request; }): Promise { const { default: Component } = PageNamespace || {}; - const getStaticProps = (PageNamespace as any).getStaticProps || null; + const getStaticProps = (PageNamespace as any)?.getStaticProps || null; const { default: AppComponent_ } = AppNamespace || {}; var query = Object.assign({}, route.query); @@ -746,7 +746,7 @@ export async function render({ devOnlyCacheBusterQueryString: "", scriptLoader, isPreview: isPreview, - autoExport: isAutoExport, + autoExport: nextExport === true ? true : undefined, nextExport: nextExport, useMaybeDeferContent, }); -- cgit v1.2.3 From 9ab9b01a640cd157634494b6b703d095897ac412 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 10:51:08 -0500 Subject: stop installing textencoder --- packages/bun-framework-next/package.json | 1 - packages/bun-framework-next/server-polyfills.tsx | 3 +- .../bun-framework-next/text-encoder-polyfill.js | 306 +++++++++++++++++++++ 3 files changed, 308 insertions(+), 2 deletions(-) create mode 100644 packages/bun-framework-next/text-encoder-polyfill.js diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index d715a8ba4..646b8e4af 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -11,7 +11,6 @@ "author": "", "license": "MIT", "dependencies": { - "fast-text-encoding": "^1.0.3", "react-is": "^17.0.2", "url-polyfill": "^1.1.12" }, diff --git a/packages/bun-framework-next/server-polyfills.tsx b/packages/bun-framework-next/server-polyfills.tsx index 57960e4fa..f0a2b5c3a 100644 --- a/packages/bun-framework-next/server-polyfills.tsx +++ b/packages/bun-framework-next/server-polyfills.tsx @@ -2,7 +2,7 @@ globalThis.global = globalThis; import { Buffer } from "buffer"; import { URL } from "url-polyfill"; -import { TextEncoder, TextDecoder } from "fast-text-encoding"; +import { TextEncoder, TextDecoder } from "./text-encoder-polyfill"; import * as React from "react"; const onlyChildPolyfill = React.Children.only; @@ -21,5 +21,6 @@ React.Children.only = function (children) { globalThis.Buffer = Buffer; globalThis.URL = URL; +// @ts-expect-error encodeInto is missing in our polyfill globalThis.TextEncoder ||= TextEncoder; globalThis.TextDecoder ||= TextDecoder; diff --git a/packages/bun-framework-next/text-encoder-polyfill.js b/packages/bun-framework-next/text-encoder-polyfill.js new file mode 100644 index 000000000..01c7cbbe8 --- /dev/null +++ b/packages/bun-framework-next/text-encoder-polyfill.js @@ -0,0 +1,306 @@ +/* + * Copyright 2017 Sam Thorogood. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +/** + * @fileoverview Polyfill for TextEncoder and TextDecoder. + * + * You probably want `text.min.js`, and not this file directly. + */ + +// used for FastTextDecoder +const validUtfLabels = ["utf-8", "utf8", "unicode-1-1-utf-8"]; + +/** + * @constructor + */ +function FastTextEncoder() { + // This does not accept an encoding, and always uses UTF-8: + // https://www.w3.org/TR/encoding/#dom-textencoder +} + +Object.defineProperty(FastTextEncoder.prototype, "encoding", { + value: "utf-8", +}); + +Object.defineProperty(FastTextEncoder.prototype, "encodeInto", { + value: "", +}); + +/** + * @param {string} string + * @param {{stream: boolean}=} options + * @return {!Uint8Array} + */ +FastTextEncoder.prototype["encode"] = function ( + string, + options = { stream: false } +) { + if (options.stream) { + throw new Error(`Failed to encode: the 'stream' option is unsupported.`); + } + + let pos = 0; + const len = string.length; + + let at = 0; // output position + let tlen = Math.max(32, len + (len >>> 1) + 7); // 1.5x size + let target = new Uint8Array((tlen >>> 3) << 3); // ... but at 8 byte offset + + while (pos < len) { + let value = string.charCodeAt(pos++); + if (value >= 0xd800 && value <= 0xdbff) { + // high surrogate + if (pos < len) { + const extra = string.charCodeAt(pos); + if ((extra & 0xfc00) === 0xdc00) { + ++pos; + value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000; + } + } + if (value >= 0xd800 && value <= 0xdbff) { + continue; // drop lone surrogate + } + } + + // expand the buffer if we couldn't write 4 bytes + if (at + 4 > target.length) { + tlen += 8; // minimum extra + tlen *= 1.0 + (pos / string.length) * 2; // take 2x the remaining + tlen = (tlen >>> 3) << 3; // 8 byte offset + + const update = new Uint8Array(tlen); + update.set(target); + target = update; + } + + if ((value & 0xffffff80) === 0) { + // 1-byte + target[at++] = value; // ASCII + continue; + } else if ((value & 0xfffff800) === 0) { + // 2-byte + target[at++] = ((value >>> 6) & 0x1f) | 0xc0; + } else if ((value & 0xffff0000) === 0) { + // 3-byte + target[at++] = ((value >>> 12) & 0x0f) | 0xe0; + target[at++] = ((value >>> 6) & 0x3f) | 0x80; + } else if ((value & 0xffe00000) === 0) { + // 4-byte + target[at++] = ((value >>> 18) & 0x07) | 0xf0; + target[at++] = ((value >>> 12) & 0x3f) | 0x80; + target[at++] = ((value >>> 6) & 0x3f) | 0x80; + } else { + continue; // out of range + } + + target[at++] = (value & 0x3f) | 0x80; + } + + // Use subarray if slice isn't supported (IE11). This will use more memory + // because the original array still exists. + return target.slice ? target.slice(0, at) : target.subarray(0, at); +}; + +/** + * @constructor + * @param {string=} utfLabel + * @param {{fatal: boolean}=} options + */ +function FastTextDecoder(utfLabel = "utf-8", options = { fatal: false }) { + if (validUtfLabels.indexOf(utfLabel.toLowerCase()) === -1) { + throw new RangeError( + `Failed to construct 'TextDecoder': The encoding label provided ('${utfLabel}') is invalid.` + ); + } + if (options.fatal) { + throw new Error( + `Failed to construct 'TextDecoder': the 'fatal' option is unsupported.` + ); + } +} + +Object.defineProperty(FastTextDecoder.prototype, "encoding", { + value: "utf-8", +}); + +Object.defineProperty(FastTextDecoder.prototype, "fatal", { value: false }); + +Object.defineProperty(FastTextDecoder.prototype, "ignoreBOM", { + value: false, +}); + +/** + * @param {!Uint8Array} bytes + * @return {string} + */ +function decodeBuffer(bytes) { + return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString( + "utf-8" + ); +} + +/** + * @param {!Uint8Array} bytes + * @return {string} + */ +function decodeSyncXHR(bytes) { + const b = new Blob([bytes], { type: "text/plain;charset=UTF-8" }); + const u = URL.createObjectURL(b); + + // This hack will fail in non-Edgium Edge because sync XHRs are disabled (and + // possibly in other places), so ensure there's a fallback call. + try { + const x = new XMLHttpRequest(); + x.open("GET", u, false); + x.send(); + return x.responseText; + } catch (e) { + return decodeFallback(bytes); + } finally { + URL.revokeObjectURL(u); + } +} + +/** + * @param {!Uint8Array} bytes + * @return {string} + */ +function decodeFallback(bytes) { + let inputIndex = 0; + + // Create a working buffer for UTF-16 code points, but don't generate one + // which is too large for small input sizes. UTF-8 to UCS-16 conversion is + // going to be at most 1:1, if all code points are ASCII. The other extreme + // is 4-byte UTF-8, which results in two UCS-16 points, but this is still 50% + // fewer entries in the output. + const pendingSize = Math.min(256 * 256, bytes.length + 1); + const pending = new Uint16Array(pendingSize); + const chunks = []; + let pendingIndex = 0; + + for (;;) { + const more = inputIndex < bytes.length; + + // If there's no more data or there'd be no room for two UTF-16 values, + // create a chunk. This isn't done at the end by simply slicing the data + // into equal sized chunks as we might hit a surrogate pair. + if (!more || pendingIndex >= pendingSize - 1) { + // nb. .apply and friends are *really slow*. Low-hanging fruit is to + // expand this to literally pass pending[0], pending[1], ... etc, but + // the output code expands pretty fast in this case. + chunks.push( + String.fromCharCode.apply(null, pending.subarray(0, pendingIndex)) + ); + + if (!more) { + return chunks.join(""); + } + + // Move the buffer forward and create another chunk. + bytes = bytes.subarray(inputIndex); + inputIndex = 0; + pendingIndex = 0; + } + + // The native TextDecoder will generate "REPLACEMENT CHARACTER" where the + // input data is invalid. Here, we blindly parse the data even if it's + // wrong: e.g., if a 3-byte sequence doesn't have two valid continuations. + + const byte1 = bytes[inputIndex++]; + if ((byte1 & 0x80) === 0) { + // 1-byte or null + pending[pendingIndex++] = byte1; + } else if ((byte1 & 0xe0) === 0xc0) { + // 2-byte + const byte2 = bytes[inputIndex++] & 0x3f; + pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2; + } else if ((byte1 & 0xf0) === 0xe0) { + // 3-byte + const byte2 = bytes[inputIndex++] & 0x3f; + const byte3 = bytes[inputIndex++] & 0x3f; + pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3; + } else if ((byte1 & 0xf8) === 0xf0) { + // 4-byte + const byte2 = bytes[inputIndex++] & 0x3f; + const byte3 = bytes[inputIndex++] & 0x3f; + const byte4 = bytes[inputIndex++] & 0x3f; + + // this can be > 0xffff, so possibly generate surrogates + let codepoint = + ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4; + if (codepoint > 0xffff) { + // codepoint &= ~0x10000; + codepoint -= 0x10000; + pending[pendingIndex++] = ((codepoint >>> 10) & 0x3ff) | 0xd800; + codepoint = 0xdc00 | (codepoint & 0x3ff); + } + pending[pendingIndex++] = codepoint; + } else { + // invalid initial byte + } + } +} + +// Decoding a string is pretty slow, but use alternative options where possible. +let decodeImpl = decodeFallback; +if (typeof Buffer === "function" && Buffer.from) { + // Buffer.from was added in Node v5.10.0 (2015-11-17). + decodeImpl = decodeBuffer; +} else if ( + typeof Blob === "function" && + typeof URL === "function" && + typeof URL.createObjectURL === "function" +) { + // Blob and URL.createObjectURL are available from IE10, Safari 6, Chrome 19 + // (all released in 2012), Firefox 19 (2013), ... + decodeImpl = decodeSyncXHR; +} + +/** + * @param {(!ArrayBuffer|!ArrayBufferView)} buffer + * @param {{stream: boolean}=} options + * @return {string} + */ +FastTextDecoder.prototype["decode"] = function ( + buffer, + options = { stream: false } +) { + if (options["stream"]) { + throw new Error(`Failed to decode: the 'stream' option is unsupported.`); + } + + let bytes; + + if (buffer instanceof Uint8Array) { + // Accept Uint8Array instances as-is. + bytes = buffer; + } else if (buffer.buffer instanceof ArrayBuffer) { + // Look for ArrayBufferView, which isn't a real type, but basically + // represents all the valid TypedArray types plus DataView. They all have + // ".buffer" as an instance of ArrayBuffer. + bytes = new Uint8Array(buffer.buffer); + } else { + // The only other valid argument here is that "buffer" is an ArrayBuffer. + // We also try to convert anything else passed to a Uint8Array, as this + // catches anything that's array-like. Native code would throw here. + bytes = new Uint8Array(buffer); + } + + return decodeImpl(/** @type {!Uint8Array} */ (bytes)); +}; + +export { FastTextEncoder as TextEncoder }; +export { FastTextDecoder as TextDecoder }; -- cgit v1.2.3 From ac242f94ca358365cb6eb0a8d9ab2ed62b6470b9 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 10:53:44 -0500 Subject: add react-dom as devDep --- packages/bun-framework-next/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bun-framework-next/package.json b/packages/bun-framework-next/package.json index 646b8e4af..884d27053 100644 --- a/packages/bun-framework-next/package.json +++ b/packages/bun-framework-next/package.json @@ -21,6 +21,7 @@ "@types/react": "^17.0.34", "@types/react-dom": "^17.0.11", "next": "^12.0.0", + "react-dom": "^17.0.2", "react-refresh": "^0.10.0", "typescript": "^4.4.4" }, -- cgit v1.2.3 From 5a1f60c729f9e9d4b987d552a45f510a738a1805 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 11:05:05 -0500 Subject: remove comment --- packages/bun-framework-next/client.development.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index aad808965..187a91e71 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -396,7 +396,6 @@ export function render(props) { } export function renderError(e) { - // TODO verify this works const reactEl = {null}; if (USE_REACT_18) { -- cgit v1.2.3 From ca25e32c0f4de45584982eeb4bad9f2fa5422b8a Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 16:23:31 -0500 Subject: fix shallow routing --- packages/bun-framework-next/client.development.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index 187a91e71..29774d1b5 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -52,8 +52,6 @@ import { export const emitter: MittEmitter = mitt(); -const App = NextApp; - declare global { interface Window { /* test fns */ @@ -293,6 +291,7 @@ export async function _boot(EntryPointNamespace, isError) { // Construct signature return types 'App' and 'Component' are incompatible. // @ts-expect-error CachedApp = NextApp; + CachedComponent = PageComponent; if (appScripts && appScripts.length > 0) { let appSrc; @@ -329,9 +328,12 @@ export async function _boot(EntryPointNamespace, isError) { return render( Object.assign< {}, - Omit, - Pick + Omit, + Pick >({}, info, { + // If we don't have an info.Component, we may be shallow routing, + // fallback to current entry point + Component: info.Component || CachedComponent, App, scroll, }) -- cgit v1.2.3 From 7660f727450908f322211e04a32dc69207d54044 Mon Sep 17 00:00:00 2001 From: Jack Hanford Date: Tue, 23 Nov 2021 16:55:26 -0500 Subject: update Next version on global --- packages/bun-framework-next/client.development.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bun-framework-next/client.development.tsx b/packages/bun-framework-next/client.development.tsx index 29774d1b5..5d5e96763 100644 --- a/packages/bun-framework-next/client.development.tsx +++ b/packages/bun-framework-next/client.development.tsx @@ -417,7 +417,7 @@ export function renderError(e) { } globalThis.next = { - version: "12.0.3", + version: "12.0.4", emitter, render, renderError, -- cgit v1.2.3