From 36f62d09a8534202ddc122505c749c24e3a4bfcb Mon Sep 17 00:00:00 2001 From: Nathan Tranquilla Date: Wed, 29 Nov 2023 08:25:22 -0400 Subject: [PATCH 01/27] delete everythign --- .eslintignore | 38 - .eslintrc.cjs | 42 - .github/workflows/node.js.yml | 37 - .gitignore | 43 - .prettierignore | 38 - .vscode/launch.json | 24 - .vscode/qwik-city.code-snippets | 36 - .vscode/qwik.code-snippets | 78 - LICENSE | 373 -- README.md | 24 - bun.lockb | Bin 185543 -> 0 bytes bunfig.toml | 8 - package.json | 51 - playwright.config.ts | 40 - public/favicon.svg | 1 - public/manifest.json | 9 - public/robots.txt | 0 shell.nix | 20 - .../info-section/info-section-styles.css | 11 - .../info-section/info-section.spec.tsx | 11 - src/components/info-section/info-section.tsx | 19 - src/components/navigation/nav.tsx | 15 - src/components/navigation/styles.css | 4 - src/components/router-head/router-head.tsx | 32 - src/entry.dev.tsx | 17 - src/entry.preview.tsx | 20 - src/entry.ssr.tsx | 30 - src/global.css | 35 - src/root.tsx | 32 - src/routes/accounts/[public_key]/index.tsx | 41 - src/routes/index.tsx | 8 - src/routes/layout.tsx | 31 - src/routes/service-worker.ts | 18 - src/routes/summary/index.tsx | 31 - tests/general-accessibility.spec.ts | 15 - tests/page-accounts.spec.ts | 16 - tsconfig.json | 26 - vite.config.ts | 24 - yarn.lock | 3465 ----------------- 39 files changed, 4763 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs delete mode 100644 .github/workflows/node.js.yml delete mode 100644 .gitignore delete mode 100644 .prettierignore delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/qwik-city.code-snippets delete mode 100644 .vscode/qwik.code-snippets delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100755 bun.lockb delete mode 100644 bunfig.toml delete mode 100644 package.json delete mode 100644 playwright.config.ts delete mode 100644 public/favicon.svg delete mode 100644 public/manifest.json delete mode 100644 public/robots.txt delete mode 100644 shell.nix delete mode 100644 src/components/info-section/info-section-styles.css delete mode 100644 src/components/info-section/info-section.spec.tsx delete mode 100644 src/components/info-section/info-section.tsx delete mode 100644 src/components/navigation/nav.tsx delete mode 100644 src/components/navigation/styles.css delete mode 100644 src/components/router-head/router-head.tsx delete mode 100644 src/entry.dev.tsx delete mode 100644 src/entry.preview.tsx delete mode 100644 src/entry.ssr.tsx delete mode 100644 src/global.css delete mode 100644 src/root.tsx delete mode 100644 src/routes/accounts/[public_key]/index.tsx delete mode 100644 src/routes/index.tsx delete mode 100644 src/routes/layout.tsx delete mode 100644 src/routes/service-worker.ts delete mode 100644 src/routes/summary/index.tsx delete mode 100644 tests/general-accessibility.spec.ts delete mode 100644 tests/page-accounts.spec.ts delete mode 100644 tsconfig.json delete mode 100644 vite.config.ts delete mode 100644 yarn.lock diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 1acecc10a..000000000 --- a/.eslintignore +++ /dev/null @@ -1,38 +0,0 @@ -**/*.log -**/.DS_Store -*. -.vscode/settings.json -.history -.yarn -bazel-* -bazel-bin -bazel-out -bazel-qwik -bazel-testlogs -dist -dist-dev -lib -lib-types -etc -external -node_modules -temp -tsc-out -tsdoc-metadata.json -target -output -rollup.config.js -build -.cache -.vscode -.rollup.cache -dist -tsconfig.tsbuildinfo -vite.config.ts -*.spec.tsx -*.spec.ts -.netlify -pnpm-lock.yaml -package-lock.json -yarn.lock -server diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 70dc5d039..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:qwik/recommended", - ], - parser: "@typescript-eslint/parser", - parserOptions: { - tsconfigRootDir: __dirname, - project: ["./tsconfig.json"], - ecmaVersion: 2021, - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ["@typescript-eslint"], - rules: { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-this-alias": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/ban-ts-comment": "off", - "prefer-spread": "off", - "no-case-declarations": "off", - "no-console": "off", - "@typescript-eslint/no-unused-vars": ["error"], - "@typescript-eslint/consistent-type-imports": "warn", - "@typescript-eslint/no-unnecessary-condition": "warn", - }, -}; diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml deleted file mode 100644 index a0b392b1c..000000000 --- a/.github/workflows/node.js.yml +++ /dev/null @@ -1,37 +0,0 @@ -# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs - -name: Node.js CI - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v3 - - uses: oven-sh/setup-bun@v1 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - run: bun install - - name: (Workaround) add sharp through yarn - uses: borales/actions-yarn@v4 - with: - cmd: add sharp - - run: bun run build.client - - run: bun run ci - - run: bun run test diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 27191dba2..000000000 --- a/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# Build -/dist -/lib -/lib-types -/server - -# Development -node_modules -*.local -playwright-report/ -test-results/ - -# Cache -.cache -.mf -.rollup.cache -tsconfig.tsbuildinfo - -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -# Editor -.vscode/* -!.vscode/launch.json -!.vscode/*.code-snippets - -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -# Yarn -.yarn/* -!.yarn/releases diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 1acecc10a..000000000 --- a/.prettierignore +++ /dev/null @@ -1,38 +0,0 @@ -**/*.log -**/.DS_Store -*. -.vscode/settings.json -.history -.yarn -bazel-* -bazel-bin -bazel-out -bazel-qwik -bazel-testlogs -dist -dist-dev -lib -lib-types -etc -external -node_modules -temp -tsc-out -tsdoc-metadata.json -target -output -rollup.config.js -build -.cache -.vscode -.rollup.cache -dist -tsconfig.tsbuildinfo -vite.config.ts -*.spec.tsx -*.spec.ts -.netlify -pnpm-lock.yaml -package-lock.json -yarn.lock -server diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index e684cc844..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Chrome", - "request": "launch", - "type": "chrome", - "url": "http://localhost:5173", - "webRoot": "${workspaceFolder}" - }, - { - "type": "node", - "name": "dev.debug", - "request": "launch", - "skipFiles": ["/**"], - "cwd": "${workspaceFolder}", - "program": "${workspaceFolder}/node_modules/vite/bin/vite.js", - "args": ["--mode", "ssr", "--force"] - } - ] -} diff --git a/.vscode/qwik-city.code-snippets b/.vscode/qwik-city.code-snippets deleted file mode 100644 index a6cc6ce98..000000000 --- a/.vscode/qwik-city.code-snippets +++ /dev/null @@ -1,36 +0,0 @@ -{ - "onRequest": { - "scope": "javascriptreact,typescriptreact", - "prefix": "qonRequest", - "description": "onRequest function for a route index", - "body": [ - "export const onRequest: RequestHandler = (request) => {", - " $0", - "};" - ] - }, - "loader$": { - "scope": "javascriptreact,typescriptreact", - "prefix": "qloader$", - "description": "loader$()", - "body": ["export const $1 = routeLoader$(() => {", " $0", "});"] - }, - "action$": { - "scope": "javascriptreact,typescriptreact", - "prefix": "qaction$", - "description": "action$()", - "body": ["export const $1 = routeAction$((data) => {", " $0", "});"] - }, - "Full Page": { - "scope": "javascriptreact,typescriptreact", - "prefix": "qpage", - "description": "Simple page component", - "body": [ - "import { component$ } from '@builder.io/qwik';", - "", - "export default component$(() => {", - " $0", - "});" - ] - } -} diff --git a/.vscode/qwik.code-snippets b/.vscode/qwik.code-snippets deleted file mode 100644 index d4efe6b01..000000000 --- a/.vscode/qwik.code-snippets +++ /dev/null @@ -1,78 +0,0 @@ -{ - "Qwik component (simple)": { - "scope": "javascriptreact,typescriptreact", - "prefix": "qcomponent$", - "description": "Simple Qwik component", - "body": [ - "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}} = component$(() => {", - " return <${2:div}>$4", - "});" - ] - }, - "Qwik component (props)": { - "scope": "typescriptreact", - "prefix": "qcomponent$ + props", - "description": "Qwik component w/ props", - "body": [ - "export interface ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}}Props {", - " $2", - "}", - "", - "export const $1 = component$<$1Props>((props) => {", - " const ${2:count} = useSignal(0);", - " return (", - " <${3:div} on${4:Click}$={(ev) => {$5}}>", - " $6", - " ", - " );", - "});" - ] - }, - "Qwik signal": { - "scope": "javascriptreact,typescriptreact", - "prefix": "quseSignal", - "description": "useSignal() declaration", - "body": ["const ${1:foo} = useSignal($2);", "$0"] - }, - "Qwik store": { - "scope": "javascriptreact,typescriptreact", - "prefix": "quseStore", - "description": "useStore() declaration", - "body": ["const ${1:state} = useStore({", " $2", "});", "$0"] - }, - "$ hook": { - "scope": "javascriptreact,typescriptreact", - "prefix": "q$", - "description": "$() function hook", - "body": ["$(() => {", " $0", "});", ""] - }, - "useVisibleTask": { - "scope": "javascriptreact,typescriptreact", - "prefix": "quseVisibleTask", - "description": "useVisibleTask$() function hook", - "body": ["useVisibleTask$(({ track }) => {", " $0", "});", ""] - }, - "useTask": { - "scope": "javascriptreact,typescriptreact", - "prefix": "quseTask$", - "description": "useTask$() function hook", - "body": [ - "useTask$(({ track }) => {", - " track(() => $1);", - " $0", - "});", - "" - ] - }, - "useResource": { - "scope": "javascriptreact,typescriptreact", - "prefix": "quseResource$", - "description": "useResource$() declaration", - "body": [ - "const $1 = useResource$(({ track, cleanup }) => {", - " $0", - "});", - "" - ] - } -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 14e2f777f..000000000 --- a/LICENSE +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/README.md b/README.md deleted file mode 100644 index d796138e5..000000000 --- a/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Mina Block Explorer - -The Mina Block Explorer is a website that allows users to explore and -view details about blocks, transactions, addresses, validators and -other relevant network information. It provides a user-friendly user -interface to interact with the Mina blockchain. This document -describes how to build such an application. - -## Quickstart - -* `nix-shell --command "bun start"` - -## License (See LICENSE file for full license) - -Copyright 2023 Mina Foundation, Inc. - -Free use of this software is granted under the terms of the Mozilla -Public License 2.0. - -## Contributing - -This project uses [C4(Collective Code Construction -Contract)](https://rfc.zeromq.org/spec/42/) process for contributions. - diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 788f7c560a28e2132b467dd1440df136aa2dbb65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185543 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 Y!m1#CNLC<$gBG8{Y3&F7AN}ut0l|Ha?*IS* diff --git a/bunfig.toml b/bunfig.toml deleted file mode 100644 index bc771aaff..000000000 --- a/bunfig.toml +++ /dev/null @@ -1,8 +0,0 @@ -[install.lockfile] - -# whether to save the lockfile to disk -save = true - -# whether to save a non-Bun lockfile alongside bun.lockb -# only "yarn" is supported -print = "yarn" diff --git a/package.json b/package.json deleted file mode 100644 index 050831da8..000000000 --- a/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "mina-block-explorer", - "description": "A Mina Blockchain Explorer", - "engines": { - "node": ">=16.0.0" - }, - "private": true, - "scripts": { - "build": "qwik build", - "build.client": "vite build", - "build.preview": "vite build --ssr src/entry.preview.tsx", - "build.types": "tsc --incremental --noEmit", - "deploy": "echo 'Run \"npm run qwik add\" to install a server adapter'", - "dev": "vite --mode ssr", - "dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force", - "fmt": "prettier --write .", - "fmt.check": "prettier --check .", - "lint": "eslint \"src/**/*.ts*\"", - "preview": "qwik build preview && vite preview --open", - "start": "vite --open --mode ssr", - "test.e2e": "bunx playwright test", - "test.unit": "vitest --run", - "test.unit.ui": "vitest --ui", - "test": "bun run test.unit --run", - "ci": "CI=true bun run test.e2e", - "postinstall": "bunx playwright install", - "qwik": "qwik" - }, - "devDependencies": { - "@axe-core/playwright": "^4.8.1", - "@builder.io/qwik": "^1.2.19", - "@builder.io/qwik-city": "^1.2.19", - "@playwright/test": "^1.38.1", - "@types/eslint": "^8.44.4", - "@types/node": "^20.8.4", - "@typescript-eslint/eslint-plugin": "^6.7.5", - "@typescript-eslint/parser": "^6.7.5", - "@vitest/ui": "^0.34.6", - "eslint": "^8.51.0", - "eslint-plugin-qwik": "^1.2.19", - "prettier": "^3.0.3", - "typescript": "^5.2.2", - "undici": "^5.26.0", - "vite": "^4.4.11", - "vite-tsconfig-paths": "^4.2.1", - "vitest": "^0.34.6" - }, - "dependencies": { - "sharp": "^0.32.6" - } -} diff --git a/playwright.config.ts b/playwright.config.ts deleted file mode 100644 index 6571b00a4..000000000 --- a/playwright.config.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { PlaywrightTestConfig } from "@playwright/test"; -import { devices } from "@playwright/test"; - -/** - * See https://playwright.dev/docs/test-configuration. - */ -const config: PlaywrightTestConfig = { - testDir: "./tests", - /* Run tests in files in parallel */ - fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: 2, - workers: process.env.CI ? 1 : undefined, - reporter: "html", - use: { - actionTimeout: 0, - trace: "on-first-retry", - }, - projects: [ - { - name: "chromium", - use: { - ...devices["Desktop Chrome"], - }, - }, - // { - // name: 'webkit', - // use: { - // ...devices['Desktop Safari'], - // }, - // }, - ], - - webServer: { - command: "npm run preview", - port: 4173, - }, -}; - -export default config; diff --git a/public/favicon.svg b/public/favicon.svg deleted file mode 100644 index 0ded7c138..000000000 --- a/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index c18e75f72..000000000 --- a/public/manifest.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/web-manifest-combined.json", - "name": "qwik-project-name", - "short_name": "Welcome to Qwik", - "start_url": ".", - "display": "standalone", - "background_color": "#fff", - "description": "A Qwik project app." -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 6688d12ea..000000000 --- a/shell.nix +++ /dev/null @@ -1,20 +0,0 @@ -let - nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-unstable"; - pkgs = import nixpkgs { config = {}; overlays = []; }; -in - -pkgs.mkShell { - packages = with pkgs; [ - nodejs_18 - bun - yarn - ]; - - shellHook = '' - rm -rf node_modules - rm yarn.lock - rm bun.lockb - bun install - yarn add sharp #this is a workaround to get sharp install properly - ''; -} \ No newline at end of file diff --git a/src/components/info-section/info-section-styles.css b/src/components/info-section/info-section-styles.css deleted file mode 100644 index 6f198607a..000000000 --- a/src/components/info-section/info-section-styles.css +++ /dev/null @@ -1,11 +0,0 @@ -.info-section__info { - display: flex; - align-items: baseline; -} -.info-section__label,.info-section__data{ - margin: 0.5rem; - margin-left: 0; -} -.info-section__label { - font-weight: bold; -} diff --git a/src/components/info-section/info-section.spec.tsx b/src/components/info-section/info-section.spec.tsx deleted file mode 100644 index f14363dea..000000000 --- a/src/components/info-section/info-section.spec.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { createDOM } from '@builder.io/qwik/testing'; -import { test, expect } from 'vitest'; -import InfoSection from './info-section'; - - -test(`[InfoSection Component]: Should render label and value`, async () => { - const { screen, render } = await createDOM(); - await render(); - expect(screen.outerHTML).toContain("test"); - expect(screen.outerHTML).toContain("100"); -}); diff --git a/src/components/info-section/info-section.tsx b/src/components/info-section/info-section.tsx deleted file mode 100644 index 035a51ba6..000000000 --- a/src/components/info-section/info-section.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { component$, Slot, useStyles$ } from '@builder.io/qwik'; - -import styles from './info-section-styles.css?inline'; - -interface InfoProps { - label: string - value?: string|number -} - -export default component$((props) => { - useStyles$(styles); - return ( - - ) -}) \ No newline at end of file diff --git a/src/components/navigation/nav.tsx b/src/components/navigation/nav.tsx deleted file mode 100644 index 98604e721..000000000 --- a/src/components/navigation/nav.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { component$, useStyles$ } from "@builder.io/qwik"; -import { Link } from "@builder.io/qwik-city"; - -import styles from './styles.css?inline'; - -export default component$(() => { - useStyles$(styles) - return ( - - ); -}); \ No newline at end of file diff --git a/src/components/navigation/styles.css b/src/components/navigation/styles.css deleted file mode 100644 index 8a3a49ab3..000000000 --- a/src/components/navigation/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -.nav__link { - margin: 1rem; - margin-left: 0; -} \ No newline at end of file diff --git a/src/components/router-head/router-head.tsx b/src/components/router-head/router-head.tsx deleted file mode 100644 index 127f8cae9..000000000 --- a/src/components/router-head/router-head.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { component$ } from "@builder.io/qwik"; -import { useDocumentHead, useLocation } from "@builder.io/qwik-city"; - -/** - * The RouterHead component is placed inside of the document `` element. - */ -export const RouterHead = component$(() => { - const head = useDocumentHead(); - const loc = useLocation(); - - return ( - <> - {head.title} - - - - - - {head.meta.map((m) => ( - - ))} - - {head.links.map((l) => ( - - ))} - - {head.styles.map((s) => ( -