diff --git a/dev b/dev index 5b2f15a9b4..47aacbfe0b 100755 --- a/dev +++ b/dev @@ -96,17 +96,17 @@ def main(): @cmd(cmds, "run-frontend", "Run frontend web app for development.") def run_frontend(args): run("plz build //:pnpm") - return run("cd frontend/app && exec pnpm dev", args=args) + return run("exec pnpm app:dev", args=args) @cmd(cmds, "run-gw-frontend", "Run frontend web app for development.") def run_frontend(args): run("plz build //:pnpm") - return run("cd frontend/gateway && exec pnpm dev", args=args) + return run("exec pnpm gw:dev", args=args) @cmd(cmds, "run-desktop", "Run Tauri desktop app for development.") def run_desktop(args): run("plz build //backend:mintterd //:pnpm") - return run("cd desktop/app && cargo tauri dev", args=args) + return run("pnpm tauri:dev", args=args) @cmd(cmds, "release", "Cut a new release.") def release(args): diff --git a/docs/README.md b/docs/README.md index e1d35a0aa5..2b5e14035b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,6 +8,7 @@ Because the Mintter Data structure is not production-ready yet, we are creating ## Frontend Technical Documentation +- [Frontend Development Setup](./frontend-dev-setup.md) - [Frontend App Architecture](./frontend-app.md) - [Frontend Gateway Architecture](./frontend-gateway.md) - [Frontend Shared Packages Architecture](./frontend-shared-packages.md) diff --git a/docs/assets/dev-setup-local-run.png b/docs/assets/dev-setup-local-run.png new file mode 100644 index 0000000000..9ae4ae21e1 Binary files /dev/null and b/docs/assets/dev-setup-local-run.png differ diff --git a/docs/assets/dev-setup-root-terminal.png b/docs/assets/dev-setup-root-terminal.png new file mode 100644 index 0000000000..8ccbd58cbb Binary files /dev/null and b/docs/assets/dev-setup-root-terminal.png differ diff --git a/docs/frontend-dev-setup.md b/docs/frontend-dev-setup.md new file mode 100644 index 0000000000..3f6119b1ee --- /dev/null +++ b/docs/frontend-dev-setup.md @@ -0,0 +1,68 @@ +# Frontend Development Setup + +The Mintter Frontend architecture is based on a [pnpm](https://pnpm.io) workspace. Currently we have this packages: + +1. App Package: for the desktop app code lives +2. Gateway: for the gateway code +3. Shared: for the shared API-related code +4. UI (soon): for all the design system/common UI building blocks for all the Mintter applications + +After you [setup the project](./dev-setup.md) on your local machine, you should have `pnpm` available, so no need to install it globally. + +## Prerequisites + +Please make sure that after you enter the repo root path, you see something similar to this showing the necessary Environment variables set: + +![dev-setup-root-terminal.png](./assets/dev-setup-root-terminal.png) + +After this is correct, you should run `pnpm install` (or `pnpm i`) to install all the frontend packages. + +## Run the Desktop app locally + +because we are using [Nix](./nix.md), we are able to create custom orchestrated commands in order to setup everything properly for any situation. To run the desktop app locally, you just need to run: + +```bash +./dev run-desktop +``` + +This command should trigger a set of processes that eventually should launch the app in dev mode + +![Locally running the Desktop app](./assets/dev-setup-local-run.png) + +> you can also run `./dev` to print the stript's readme and see all the possible commands/options. You can checkout all the commands [here](../dev) + +Keep in mind that `./dev run-desktop` runs both the desktop app **and the go backend**. This is setup this way for convenience and ease of use. You are able to run _just_ the desktop frontend code by running: + +```bash +./dev run-frontend +``` + +> You can also run _just_ the backend with `./dev run-backend` + +## Run the Gateway app locally + +The same way we can run the desktop app with a `./dev` command, you have access to gateway-specific commands: + +```bash +./dev run-gw-frontend # run the gateway frontend _only_ (dev mode) +./dev run-gw-bacend # run the gateway backend _only_ (dev mode) +``` + +## Shared package + +The frontend shared package is wrapping all the API/Backend related code that is shared between both the desktop app and the web gateway. You don't have to manually run any command for this, but you can check the specific commands defined for this package in the [root `package.json`](../package.json). + +## Per-package scripts overview + +For every frontend package, there's a set of required scripts in order to keep consistency inside all the project: + +1. `dev`: run the current package in dev mode. +2. `build`: build the current package. +3. `test`: run all the possible tests inside the current package. +4. `lint`: run all the possible linters inside the current package. +5. `format`: format the code for the current package. +6. `validate`: lint + test the current package. + +> if you are creating a new frontend package, please make sure you create this scripts properly and connect them with the appropiate `./dev` script. + + diff --git a/frontend/app/package.json b/frontend/app/package.json index b37a837fd1..c972b882de 100644 --- a/frontend/app/package.json +++ b/frontend/app/package.json @@ -5,27 +5,23 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { - "dev": "vite", - "typegen": "xstate typegen \"src/**/*.(ts|tsx)\"", - "typegen:w": "pnpm run typegen --watch", - "build": "pnpm run typegen && vite build --outDir dist", - "lint": "pnpm run lint:prettier && pnpm run lint:eslint", + "dev": "concurrently --kill-others --kill-others-on-fail -n APP,TYPEGEN -c bgGreen,bgMagenta 'vite' 'pnpm typegen --watch'", + "build": "pnpm typegen && vite build --outDir dist", + "test": "NODE_ENV=test cypress run --component", + "test:watch": "NODE_ENV=test cypress open --component", + "lint": "pnpm lint:prettier && pnpm lint:eslint", "lint:eslint": "eslint .", "lint:prettier": "prettier --check \"**/*.{css,md,js,jsx,json,ts,tsx}\"", "format": "prettier --write .", - "docs": "typedoc", - "test": "NODE_ENV=test pnpm run test:ui:run", - "test:watch": "pnpm run test:unit:watch && pnpm run test:ui:watch", - "test:ui": "cypress", - "test:ui:run": "pnpm run test:ui run --component", - "test:ui:open": "pnpm run test:ui open --component" + "validate": "pnpm lint && pnpm test", + "typegen": "xstate typegen \"src/**/*.(ts|tsx)\"" }, "dependencies": { - "@mintter/shared": "workspace:*", "@floating-ui/react-dom": "1.0.1", "@floating-ui/react-dom-interactions": "0.13.3", "@improbable-eng/grpc-web": "0.15.0", "@juggle/resize-observer": "^3.4.0", + "@mintter/shared": "workspace:*", "@radix-ui/colors": "0.1.8", "@radix-ui/react-accessible-icon": "1.0.1", "@radix-ui/react-alert-dialog": "1.0.2", @@ -129,6 +125,7 @@ "@xstate/inspect": "0.7.0", "@xstate/test": "0.5.1", "clipboardy": "3.0.0", + "concurrently": "7.6.0", "copy-text-to-clipboard": "3.0.1", "covector": "0.7.3", "cypress": "10.11.0", diff --git a/frontend/gateway/.prettierignore b/frontend/gateway/.prettierignore new file mode 100644 index 0000000000..42d29a79cb --- /dev/null +++ b/frontend/gateway/.prettierignore @@ -0,0 +1,2 @@ +.next +public \ No newline at end of file diff --git a/frontend/gateway/burger-menu.typegen.ts b/frontend/gateway/burger-menu.typegen.ts index 2d93a88e2c..30f9240564 100644 --- a/frontend/gateway/burger-menu.typegen.ts +++ b/frontend/gateway/burger-menu.typegen.ts @@ -1,40 +1,47 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "done.invoke.resizeObserver": { type: "done.invoke.resizeObserver"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.resizeObserver": { type: "error.platform.resizeObserver"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "resizeObserver": "done.invoke.resizeObserver"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "removeTabIndexToElements": "MENU.DISABLE" | "MENU.OPEN" | "MENU.TOGGLE"; -"setElementRef": "MENU.INIT"; -"setFocusableElements": "MENU.INIT"; -"setObserver": "MENU.OBSERVER.READY"; -"setTabIndexToElements": "MENU.CLOSE" | "MENU.ENABLE" | "MENU.TOGGLE"; -"startObserver": "MENU.INIT"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "resizeObserver": "xstate.init"; - }; - matchesStates: "disabled" | "enabled" | "enabled.closed" | "enabled.opened" | "idle" | { "enabled"?: "closed" | "opened"; }; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + 'done.invoke.resizeObserver': { + type: 'done.invoke.resizeObserver' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.resizeObserver': { + type: 'error.platform.resizeObserver' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + resizeObserver: 'done.invoke.resizeObserver' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + removeTabIndexToElements: 'MENU.DISABLE' | 'MENU.OPEN' | 'MENU.TOGGLE' + setElementRef: 'MENU.INIT' + setFocusableElements: 'MENU.INIT' + setObserver: 'MENU.OBSERVER.READY' + setTabIndexToElements: 'MENU.CLOSE' | 'MENU.ENABLE' | 'MENU.TOGGLE' + startObserver: 'MENU.INIT' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + resizeObserver: 'xstate.init' + } + matchesStates: + | 'disabled' + | 'enabled' + | 'enabled.closed' + | 'enabled.opened' + | 'idle' + | {enabled?: 'closed' | 'opened'} + tags: never +} diff --git a/frontend/gateway/machines/publication-machine.typegen.ts b/frontend/gateway/machines/publication-machine.typegen.ts index 12f6ecda2e..8d665d3271 100644 --- a/frontend/gateway/machines/publication-machine.typegen.ts +++ b/frontend/gateway/machines/publication-machine.typegen.ts @@ -1,36 +1,37 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "done.invoke.transformPublication": { type: "done.invoke.transformPublication"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.transformPublication": { type: "error.platform.transformPublication"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "transformPublication": "done.invoke.transformPublication"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "setEditorValue": "PUBLICATION.TRANSFORM.SUCCESS"; -"setPublication": "PUBLICATION.FETCH.SUCCESS"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "transformPublication": "PUBLICATION.FETCH.SUCCESS"; - }; - matchesStates: "fetching" | "idle" | "settled" | "transforming"; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + 'done.invoke.transformPublication': { + type: 'done.invoke.transformPublication' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.transformPublication': { + type: 'error.platform.transformPublication' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + transformPublication: 'done.invoke.transformPublication' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + setEditorValue: 'PUBLICATION.TRANSFORM.SUCCESS' + setPublication: 'PUBLICATION.FETCH.SUCCESS' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + transformPublication: 'PUBLICATION.FETCH.SUCCESS' + } + matchesStates: 'fetching' | 'idle' | 'settled' | 'transforming' + tags: never +} diff --git a/frontend/gateway/package.json b/frontend/gateway/package.json index b473a38cd3..99118f15cc 100644 --- a/frontend/gateway/package.json +++ b/frontend/gateway/package.json @@ -1,18 +1,19 @@ { - "name": "gateway", + "name": "@mintter/gateway", "version": "0.1.0", "private": true, "scripts": { - "dev": "concurrently -n POSTCSS,NEXT -c bgGreen,bgMagenta 'pnpm dev:styles' 'pnpm dev:front'", + "dev": "concurrently --kill-others --kill-others-on-fail -n POSTCSS,NEXT -c bgGreen,bgMagenta 'pnpm dev:styles' 'pnpm dev:front'", "dev:styles": "nodemon css-props-generator.js", "dev:front": "next dev", - "build": "concurrently -n POSTCSS,NEXT -c bgGreen,bgMagenta 'pnpm build:styles' 'pnpm build:front'", + "build": "pnpm build:styles && pnpm build:front", "build:styles": "node css-props-generator.js", "build:front": "next build", - "start": "next start", "lint": "next lint", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build" + "format": "prettier --write .", + "test": "echo 'NO TESTS YET';", + "validate": "pnpm lint && pnpm test", + "start": "next start" }, "dependencies": { "@mintter/shared": "workspace:*", diff --git a/frontend/gateway/pages/api/og.tsx b/frontend/gateway/pages/api/og.tsx index 41d60f04c7..1c0819adda 100644 --- a/frontend/gateway/pages/api/og.tsx +++ b/frontend/gateway/pages/api/og.tsx @@ -1,19 +1,19 @@ -import { NextRequest } from 'next/server'; -import { ImageResponse } from '@vercel/og'; +import {NextRequest} from 'next/server' +import {ImageResponse} from '@vercel/og' export const config = { - runtime: "experimental-edge" + runtime: 'experimental-edge', } export default function handler(req: NextRequest) { try { - const { searchParams } = new URL(req.url); + const {searchParams} = new URL(req.url) // ?title= - const hasTitle = searchParams.has('title'); + const hasTitle = searchParams.has('title') const title = hasTitle ? searchParams.get('title')?.slice(0, 100) - : 'Mintter Document'; + : 'Mintter Document' return new ImageResponse( ( @@ -39,16 +39,48 @@ export default function handler(req: NextRequest) { justifyItems: 'center', }} > - <svg width="354" height="96" viewBox="0 0 118 32" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fillRule="evenodd" clipRule="evenodd" d="M25.5067 21.3333C26.2549 21.3333 26.9851 21.4111 27.6897 21.5591V0.226968C26.9851 0.0790216 26.255 0.000853188 25.5067 0C19.9458 0.0031732 15.3821 4.27992 14.9069 9.73159C17.6076 10.2321 19.6531 12.6053 19.6531 15.4575C19.6531 18.6735 17.0524 21.2806 13.8442 21.2806C10.636 21.2806 8.03525 18.6735 8.03525 15.4575C8.03525 12.6754 9.98147 10.349 12.5836 9.77186C12.1272 4.29872 7.5513 3.28595e-06 1.97424 3.28595e-06C1.29958 0.000771155 0.639609 0.0644748 -9.69555e-05 0.185568V21.5168C0.639642 21.3963 1.29961 21.3333 1.97424 21.3333C7.84188 21.3367 12.621 26.1059 12.621 31.9879L14.8661 32C14.8661 26.109 19.6301 21.3333 25.5067 21.3333Z" fill="#3B00FF"/> -<path d="M36.8799 4.94761H41.2331L45.8308 16.0921H46.0264L50.6242 4.94761H54.9773V21.5348H51.5535V10.7385H51.4149L47.0944 21.4538H44.7629L40.4423 10.6981H40.3037V21.5348H36.8799V4.94761Z" fill="#3B00FF"/> -<path d="M57.8204 21.5348V9.09441H61.2931V21.5348H57.8204ZM59.5649 7.49076C59.0486 7.49076 58.6057 7.32068 58.2361 6.98051C57.872 6.63494 57.6899 6.22188 57.6899 5.74133C57.6899 5.26618 57.872 4.85852 58.2361 4.51835C58.6057 4.17278 59.0486 4 59.5649 4C60.0812 4 60.5214 4.17278 60.8855 4.51835C61.2551 4.85852 61.4399 5.26618 61.4399 5.74133C61.4399 6.22188 61.2551 6.63494 60.8855 6.98051C60.5214 7.32068 60.0812 7.49076 59.5649 7.49076Z" fill="#3B00FF"/> -<path d="M67.5477 14.3427V21.5348H64.075V9.09441H67.3847V11.2893H67.5314C67.8086 10.5658 68.2733 9.99342 68.9254 9.57226C69.5776 9.1457 70.3683 8.93242 71.2977 8.93242C72.1672 8.93242 72.9254 9.1214 73.5721 9.49937C74.2188 9.87733 74.7215 10.4173 75.0802 11.1192C75.4389 11.8157 75.6182 12.6473 75.6182 13.6138V21.5348H72.1455V14.2293C72.1509 13.468 71.9553 12.874 71.5585 12.4475C71.1618 12.0155 70.6156 11.7995 69.92 11.7995C69.4526 11.7995 69.0396 11.8994 68.6809 12.0992C68.3276 12.299 68.0505 12.5906 67.8494 12.9739C67.6537 13.3519 67.5532 13.8082 67.5477 14.3427Z" fill="#3B00FF"/> -<path d="M85.0155 9.09441V11.6862H77.4749V9.09441H85.0155ZM79.1868 6.1139H82.6595V17.712C82.6595 18.0305 82.7085 18.2789 82.8063 18.4571C82.9041 18.6299 83.04 18.7514 83.2139 18.8216C83.3932 18.8918 83.5997 18.9269 83.8334 18.9269C83.9965 18.9269 84.1595 18.9134 84.3225 18.8864C84.4856 18.854 84.6106 18.8297 84.6975 18.8135L85.2437 21.3809C85.0698 21.4349 84.8253 21.497 84.51 21.5672C84.1948 21.6428 83.8117 21.6887 83.3606 21.7049C82.5237 21.7373 81.79 21.6266 81.1596 21.3728C80.5346 21.119 80.0482 20.7249 79.7004 20.1903C79.3525 19.6558 79.1813 18.9808 79.1868 18.1655V6.1139Z" fill="#3B00FF"/> -<path d="M93.9378 9.09441V11.6862H86.3972V9.09441H93.9378ZM88.1092 6.1139H91.5819V17.712C91.5819 18.0305 91.6308 18.2789 91.7286 18.4571C91.8265 18.6299 91.9623 18.7514 92.1363 18.8216C92.3156 18.8918 92.5221 18.9269 92.7558 18.9269C92.9188 18.9269 93.0819 18.9134 93.2449 18.8864C93.408 18.854 93.533 18.8297 93.6199 18.8135L94.1661 21.3809C93.9922 21.4349 93.7476 21.497 93.4324 21.5672C93.1172 21.6428 92.7341 21.6887 92.283 21.7049C91.446 21.7373 90.7124 21.6266 90.0819 21.3728C89.457 21.119 88.9706 20.7249 88.6227 20.1903C88.2749 19.6558 88.1037 18.9808 88.1092 18.1655V6.1139Z" fill="#3B00FF"/> -<path d="M101.772 21.7778C100.484 21.7778 99.3752 21.5186 98.4459 21.0003C97.522 20.4765 96.8101 19.7368 96.3101 18.7811C95.8101 17.82 95.5601 16.6834 95.5601 15.3713C95.5601 14.0916 95.8101 12.9685 96.3101 12.002C96.8101 11.0355 97.5139 10.2823 98.4215 9.74234C99.3345 9.2024 100.405 8.93242 101.633 8.93242C102.459 8.93242 103.228 9.06471 103.94 9.32928C104.658 9.58846 105.283 9.97992 105.815 10.5037C106.353 11.0274 106.772 11.6862 107.071 12.4799C107.37 13.2682 107.519 14.1915 107.519 15.2498V16.1974H96.9459V14.0592H104.25C104.25 13.5625 104.141 13.1224 103.924 12.7391C103.707 12.3557 103.405 12.056 103.019 11.84C102.639 11.6187 102.196 11.508 101.69 11.508C101.163 11.508 100.696 11.6295 100.288 11.8724C99.8861 12.11 99.5709 12.4313 99.3426 12.8362C99.1144 13.2358 98.9975 13.6813 98.9921 14.1726V16.2055C98.9921 16.8211 99.1062 17.3529 99.3345 17.8011C99.5682 18.2492 99.897 18.5948 100.321 18.8378C100.745 19.0807 101.247 19.2022 101.829 19.2022C102.215 19.2022 102.568 19.1482 102.889 19.0402C103.209 18.9323 103.484 18.7703 103.712 18.5543C103.94 18.3383 104.114 18.0737 104.234 17.7606L107.446 17.9711C107.283 18.7379 106.948 19.4074 106.443 19.9798C105.943 20.5467 105.296 20.9895 104.503 21.308C103.715 21.6212 102.805 21.7778 101.772 21.7778Z" fill="#3B00FF"/> -<path d="M109.785 21.5348V9.09441H113.152V11.265H113.283C113.511 10.4929 113.894 9.90973 114.432 9.51557C114.97 9.116 115.59 8.91622 116.291 8.91622C116.465 8.91622 116.652 8.92702 116.853 8.94862C117.054 8.97022 117.231 8.99992 117.383 9.03771V12.0992C117.22 12.0506 116.994 12.0074 116.706 11.9696C116.418 11.9318 116.155 11.9129 115.916 11.9129C115.405 11.9129 114.948 12.0236 114.546 12.245C114.149 12.461 113.834 12.7634 113.6 13.1521C113.372 13.5409 113.258 13.989 113.258 14.4966V21.5348H109.785Z" fill="#3B00FF"/> -</svg> + <svg + width="354" + height="96" + viewBox="0 0 118 32" + fill="none" + xmlns="http://www.w3.org/2000/svg" + > + <path + fillRule="evenodd" + clipRule="evenodd" + d="M25.5067 21.3333C26.2549 21.3333 26.9851 21.4111 27.6897 21.5591V0.226968C26.9851 0.0790216 26.255 0.000853188 25.5067 0C19.9458 0.0031732 15.3821 4.27992 14.9069 9.73159C17.6076 10.2321 19.6531 12.6053 19.6531 15.4575C19.6531 18.6735 17.0524 21.2806 13.8442 21.2806C10.636 21.2806 8.03525 18.6735 8.03525 15.4575C8.03525 12.6754 9.98147 10.349 12.5836 9.77186C12.1272 4.29872 7.5513 3.28595e-06 1.97424 3.28595e-06C1.29958 0.000771155 0.639609 0.0644748 -9.69555e-05 0.185568V21.5168C0.639642 21.3963 1.29961 21.3333 1.97424 21.3333C7.84188 21.3367 12.621 26.1059 12.621 31.9879L14.8661 32C14.8661 26.109 19.6301 21.3333 25.5067 21.3333Z" + fill="#3B00FF" + /> + <path + d="M36.8799 4.94761H41.2331L45.8308 16.0921H46.0264L50.6242 4.94761H54.9773V21.5348H51.5535V10.7385H51.4149L47.0944 21.4538H44.7629L40.4423 10.6981H40.3037V21.5348H36.8799V4.94761Z" + fill="#3B00FF" + /> + <path + d="M57.8204 21.5348V9.09441H61.2931V21.5348H57.8204ZM59.5649 7.49076C59.0486 7.49076 58.6057 7.32068 58.2361 6.98051C57.872 6.63494 57.6899 6.22188 57.6899 5.74133C57.6899 5.26618 57.872 4.85852 58.2361 4.51835C58.6057 4.17278 59.0486 4 59.5649 4C60.0812 4 60.5214 4.17278 60.8855 4.51835C61.2551 4.85852 61.4399 5.26618 61.4399 5.74133C61.4399 6.22188 61.2551 6.63494 60.8855 6.98051C60.5214 7.32068 60.0812 7.49076 59.5649 7.49076Z" + fill="#3B00FF" + /> + <path + d="M67.5477 14.3427V21.5348H64.075V9.09441H67.3847V11.2893H67.5314C67.8086 10.5658 68.2733 9.99342 68.9254 9.57226C69.5776 9.1457 70.3683 8.93242 71.2977 8.93242C72.1672 8.93242 72.9254 9.1214 73.5721 9.49937C74.2188 9.87733 74.7215 10.4173 75.0802 11.1192C75.4389 11.8157 75.6182 12.6473 75.6182 13.6138V21.5348H72.1455V14.2293C72.1509 13.468 71.9553 12.874 71.5585 12.4475C71.1618 12.0155 70.6156 11.7995 69.92 11.7995C69.4526 11.7995 69.0396 11.8994 68.6809 12.0992C68.3276 12.299 68.0505 12.5906 67.8494 12.9739C67.6537 13.3519 67.5532 13.8082 67.5477 14.3427Z" + fill="#3B00FF" + /> + <path + d="M85.0155 9.09441V11.6862H77.4749V9.09441H85.0155ZM79.1868 6.1139H82.6595V17.712C82.6595 18.0305 82.7085 18.2789 82.8063 18.4571C82.9041 18.6299 83.04 18.7514 83.2139 18.8216C83.3932 18.8918 83.5997 18.9269 83.8334 18.9269C83.9965 18.9269 84.1595 18.9134 84.3225 18.8864C84.4856 18.854 84.6106 18.8297 84.6975 18.8135L85.2437 21.3809C85.0698 21.4349 84.8253 21.497 84.51 21.5672C84.1948 21.6428 83.8117 21.6887 83.3606 21.7049C82.5237 21.7373 81.79 21.6266 81.1596 21.3728C80.5346 21.119 80.0482 20.7249 79.7004 20.1903C79.3525 19.6558 79.1813 18.9808 79.1868 18.1655V6.1139Z" + fill="#3B00FF" + /> + <path + d="M93.9378 9.09441V11.6862H86.3972V9.09441H93.9378ZM88.1092 6.1139H91.5819V17.712C91.5819 18.0305 91.6308 18.2789 91.7286 18.4571C91.8265 18.6299 91.9623 18.7514 92.1363 18.8216C92.3156 18.8918 92.5221 18.9269 92.7558 18.9269C92.9188 18.9269 93.0819 18.9134 93.2449 18.8864C93.408 18.854 93.533 18.8297 93.6199 18.8135L94.1661 21.3809C93.9922 21.4349 93.7476 21.497 93.4324 21.5672C93.1172 21.6428 92.7341 21.6887 92.283 21.7049C91.446 21.7373 90.7124 21.6266 90.0819 21.3728C89.457 21.119 88.9706 20.7249 88.6227 20.1903C88.2749 19.6558 88.1037 18.9808 88.1092 18.1655V6.1139Z" + fill="#3B00FF" + /> + <path + d="M101.772 21.7778C100.484 21.7778 99.3752 21.5186 98.4459 21.0003C97.522 20.4765 96.8101 19.7368 96.3101 18.7811C95.8101 17.82 95.5601 16.6834 95.5601 15.3713C95.5601 14.0916 95.8101 12.9685 96.3101 12.002C96.8101 11.0355 97.5139 10.2823 98.4215 9.74234C99.3345 9.2024 100.405 8.93242 101.633 8.93242C102.459 8.93242 103.228 9.06471 103.94 9.32928C104.658 9.58846 105.283 9.97992 105.815 10.5037C106.353 11.0274 106.772 11.6862 107.071 12.4799C107.37 13.2682 107.519 14.1915 107.519 15.2498V16.1974H96.9459V14.0592H104.25C104.25 13.5625 104.141 13.1224 103.924 12.7391C103.707 12.3557 103.405 12.056 103.019 11.84C102.639 11.6187 102.196 11.508 101.69 11.508C101.163 11.508 100.696 11.6295 100.288 11.8724C99.8861 12.11 99.5709 12.4313 99.3426 12.8362C99.1144 13.2358 98.9975 13.6813 98.9921 14.1726V16.2055C98.9921 16.8211 99.1062 17.3529 99.3345 17.8011C99.5682 18.2492 99.897 18.5948 100.321 18.8378C100.745 19.0807 101.247 19.2022 101.829 19.2022C102.215 19.2022 102.568 19.1482 102.889 19.0402C103.209 18.9323 103.484 18.7703 103.712 18.5543C103.94 18.3383 104.114 18.0737 104.234 17.7606L107.446 17.9711C107.283 18.7379 106.948 19.4074 106.443 19.9798C105.943 20.5467 105.296 20.9895 104.503 21.308C103.715 21.6212 102.805 21.7778 101.772 21.7778Z" + fill="#3B00FF" + /> + <path + d="M109.785 21.5348V9.09441H113.152V11.265H113.283C113.511 10.4929 113.894 9.90973 114.432 9.51557C114.97 9.116 115.59 8.91622 116.291 8.91622C116.465 8.91622 116.652 8.92702 116.853 8.94862C117.054 8.97022 117.231 8.99992 117.383 9.03771V12.0992C117.22 12.0506 116.994 12.0074 116.706 11.9696C116.418 11.9318 116.155 11.9129 115.916 11.9129C115.405 11.9129 114.948 12.0236 114.546 12.245C114.149 12.461 113.834 12.7634 113.6 13.1521C113.372 13.5409 113.258 13.989 113.258 14.4966V21.5348H109.785Z" + fill="#3B00FF" + /> + </svg> </div> <div style={{ @@ -70,11 +102,11 @@ export default function handler(req: NextRequest) { width: 1200, height: 630, }, - ); + ) } catch (e: any) { - console.log(`${e.message}`); + console.log(`${e.message}`) return new Response(`Failed to generate the image`, { status: 500, - }); + }) } } diff --git a/frontend/gateway/slate-react-presentation/paragraph.typegen.ts b/frontend/gateway/slate-react-presentation/paragraph.typegen.ts index 765a6963f1..eb1ba89926 100644 --- a/frontend/gateway/slate-react-presentation/paragraph.typegen.ts +++ b/frontend/gateway/slate-react-presentation/paragraph.typegen.ts @@ -1,37 +1,38 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "done.invoke.paragraph-machine.getting parent:invocation[0]": { type: "done.invoke.paragraph-machine.getting parent:invocation[0]"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.paragraph-machine.getting parent:invocation[0]": { type: "error.platform.paragraph-machine.getting parent:invocation[0]"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "getParent": "done.invoke.paragraph-machine.getting parent:invocation[0]"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "assignError": "error.platform.paragraph-machine.getting parent:invocation[0]"; -"assignParent": "done.invoke.paragraph-machine.getting parent:invocation[0]"; -"assignRef": "REF"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "getParent": "REF"; - }; - matchesStates: "error" | "getting parent" | "idle" | "ready"; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + 'done.invoke.paragraph-machine.getting parent:invocation[0]': { + type: 'done.invoke.paragraph-machine.getting parent:invocation[0]' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.paragraph-machine.getting parent:invocation[0]': { + type: 'error.platform.paragraph-machine.getting parent:invocation[0]' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + getParent: 'done.invoke.paragraph-machine.getting parent:invocation[0]' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + assignError: 'error.platform.paragraph-machine.getting parent:invocation[0]' + assignParent: 'done.invoke.paragraph-machine.getting parent:invocation[0]' + assignRef: 'REF' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + getParent: 'REF' + } + matchesStates: 'error' | 'getting parent' | 'idle' | 'ready' + tags: never +} diff --git a/frontend/gateway/slate-react-presentation/render-element.typegen.ts b/frontend/gateway/slate-react-presentation/render-element.typegen.ts index 1d33435d84..ed4784ea06 100644 --- a/frontend/gateway/slate-react-presentation/render-element.typegen.ts +++ b/frontend/gateway/slate-react-presentation/render-element.typegen.ts @@ -1,42 +1,52 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "done.invoke.staticParagraph-machine.getting level:invocation[0]": { type: "done.invoke.staticParagraph-machine.getting level:invocation[0]"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"done.invoke.staticParagraph-machine.getting parent:invocation[0]": { type: "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.staticParagraph-machine.getting level:invocation[0]": { type: "error.platform.staticParagraph-machine.getting level:invocation[0]"; data: unknown }; -"error.platform.staticParagraph-machine.getting parent:invocation[0]": { type: "error.platform.staticParagraph-machine.getting parent:invocation[0]"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "getLevel": "done.invoke.staticParagraph-machine.getting level:invocation[0]"; -"getParent": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "assignError": "error.platform.staticParagraph-machine.getting level:invocation[0]" | "error.platform.staticParagraph-machine.getting parent:invocation[0]"; -"assignLevel": "done.invoke.staticParagraph-machine.getting level:invocation[0]"; -"assignParent": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; -"assignRef": "REF"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "getLevel": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; -"getParent": "REF"; - }; - matchesStates: "error" | "getting level" | "getting parent" | "idle" | "ready"; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + 'done.invoke.staticParagraph-machine.getting level:invocation[0]': { + type: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'done.invoke.staticParagraph-machine.getting parent:invocation[0]': { + type: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.staticParagraph-machine.getting level:invocation[0]': { + type: 'error.platform.staticParagraph-machine.getting level:invocation[0]' + data: unknown + } + 'error.platform.staticParagraph-machine.getting parent:invocation[0]': { + type: 'error.platform.staticParagraph-machine.getting parent:invocation[0]' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + getLevel: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + getParent: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + assignError: + | 'error.platform.staticParagraph-machine.getting level:invocation[0]' + | 'error.platform.staticParagraph-machine.getting parent:invocation[0]' + assignLevel: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + assignParent: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + assignRef: 'REF' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + getLevel: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + getParent: 'REF' + } + matchesStates: 'error' | 'getting level' | 'getting parent' | 'idle' | 'ready' + tags: never +} diff --git a/frontend/gateway/slate-react-presentation/static-paragraph.typegen.ts b/frontend/gateway/slate-react-presentation/static-paragraph.typegen.ts index 1d33435d84..ed4784ea06 100644 --- a/frontend/gateway/slate-react-presentation/static-paragraph.typegen.ts +++ b/frontend/gateway/slate-react-presentation/static-paragraph.typegen.ts @@ -1,42 +1,52 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "done.invoke.staticParagraph-machine.getting level:invocation[0]": { type: "done.invoke.staticParagraph-machine.getting level:invocation[0]"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"done.invoke.staticParagraph-machine.getting parent:invocation[0]": { type: "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.staticParagraph-machine.getting level:invocation[0]": { type: "error.platform.staticParagraph-machine.getting level:invocation[0]"; data: unknown }; -"error.platform.staticParagraph-machine.getting parent:invocation[0]": { type: "error.platform.staticParagraph-machine.getting parent:invocation[0]"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "getLevel": "done.invoke.staticParagraph-machine.getting level:invocation[0]"; -"getParent": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "assignError": "error.platform.staticParagraph-machine.getting level:invocation[0]" | "error.platform.staticParagraph-machine.getting parent:invocation[0]"; -"assignLevel": "done.invoke.staticParagraph-machine.getting level:invocation[0]"; -"assignParent": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; -"assignRef": "REF"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "getLevel": "done.invoke.staticParagraph-machine.getting parent:invocation[0]"; -"getParent": "REF"; - }; - matchesStates: "error" | "getting level" | "getting parent" | "idle" | "ready"; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + 'done.invoke.staticParagraph-machine.getting level:invocation[0]': { + type: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'done.invoke.staticParagraph-machine.getting parent:invocation[0]': { + type: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.staticParagraph-machine.getting level:invocation[0]': { + type: 'error.platform.staticParagraph-machine.getting level:invocation[0]' + data: unknown + } + 'error.platform.staticParagraph-machine.getting parent:invocation[0]': { + type: 'error.platform.staticParagraph-machine.getting parent:invocation[0]' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + getLevel: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + getParent: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + assignError: + | 'error.platform.staticParagraph-machine.getting level:invocation[0]' + | 'error.platform.staticParagraph-machine.getting parent:invocation[0]' + assignLevel: 'done.invoke.staticParagraph-machine.getting level:invocation[0]' + assignParent: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + assignRef: 'REF' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + getLevel: 'done.invoke.staticParagraph-machine.getting parent:invocation[0]' + getParent: 'REF' + } + matchesStates: 'error' | 'getting level' | 'getting parent' | 'idle' | 'ready' + tags: never +} diff --git a/frontend/gateway/slate-react-presentation/transclusion.typegen.ts b/frontend/gateway/slate-react-presentation/transclusion.typegen.ts index 1a982cb2c4..5b0aac9814 100644 --- a/frontend/gateway/slate-react-presentation/transclusion.typegen.ts +++ b/frontend/gateway/slate-react-presentation/transclusion.typegen.ts @@ -1,46 +1,56 @@ +// This file was automatically generated. Edits will be overwritten - // This file was automatically generated. Edits will be overwritten - - export interface Typegen0 { - '@@xstate/typegen': true; - internalEvents: { - "": { type: "" }; -"done.invoke.getBlock": { type: "done.invoke.getBlock"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"done.invoke.getPublication": { type: "done.invoke.getPublication"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; -"error.platform.getBlock": { type: "error.platform.getBlock"; data: unknown }; -"error.platform.getPublication": { type: "error.platform.getPublication"; data: unknown }; -"xstate.init": { type: "xstate.init" }; - }; - invokeSrcNameMap: { - "getBlock": "done.invoke.getBlock"; -"getPublication": "done.invoke.getPublication"; - }; - missingImplementations: { - actions: never; - delays: never; - guards: never; - services: never; - }; - eventsCausingActions: { - "assignBlock": "done.invoke.getBlock"; -"assignError": "error.platform.getBlock" | "error.platform.getPublication"; -"assignPublication": "done.invoke.getPublication"; -"clearBlock": "REFETCH"; -"clearError": "REFETCH"; -"clearPublication": "REFETCH"; -"setLink": "xstate.init"; - }; - eventsCausingDelays: { - - }; - eventsCausingGuards: { - - }; - eventsCausingServices: { - "getBlock": "done.invoke.getPublication"; -"getPublication": "" | "REFETCH" | "xstate.init"; - }; - matchesStates: "errored" | "fetchingPublication" | "findBlock" | "gettingParams" | "idle"; - tags: never; - } - \ No newline at end of file +export interface Typegen0 { + '@@xstate/typegen': true + internalEvents: { + '': {type: ''} + 'done.invoke.getBlock': { + type: 'done.invoke.getBlock' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'done.invoke.getPublication': { + type: 'done.invoke.getPublication' + data: unknown + __tip: 'See the XState TS docs to learn how to strongly type this.' + } + 'error.platform.getBlock': {type: 'error.platform.getBlock'; data: unknown} + 'error.platform.getPublication': { + type: 'error.platform.getPublication' + data: unknown + } + 'xstate.init': {type: 'xstate.init'} + } + invokeSrcNameMap: { + getBlock: 'done.invoke.getBlock' + getPublication: 'done.invoke.getPublication' + } + missingImplementations: { + actions: never + delays: never + guards: never + services: never + } + eventsCausingActions: { + assignBlock: 'done.invoke.getBlock' + assignError: 'error.platform.getBlock' | 'error.platform.getPublication' + assignPublication: 'done.invoke.getPublication' + clearBlock: 'REFETCH' + clearError: 'REFETCH' + clearPublication: 'REFETCH' + setLink: 'xstate.init' + } + eventsCausingDelays: {} + eventsCausingGuards: {} + eventsCausingServices: { + getBlock: 'done.invoke.getPublication' + getPublication: '' | 'REFETCH' | 'xstate.init' + } + matchesStates: + | 'errored' + | 'fetchingPublication' + | 'findBlock' + | 'gettingParams' + | 'idle' + tags: never +} diff --git a/frontend/gateway/styles/custom-props.css b/frontend/gateway/styles/custom-props.css index dd8c4a9789..d505ba56be 100644 --- a/frontend/gateway/styles/custom-props.css +++ b/frontend/gateway/styles/custom-props.css @@ -1,4 +1,4 @@ -/* VARIABLES GENERATED WITH TAILWIND CONFIG ON 1/17/2023. +/* VARIABLES GENERATED WITH TAILWIND CONFIG ON 1/19/2023. Tokens location: ./tailwind.config.js */ :root { diff --git a/frontend/shared/package.json b/frontend/shared/package.json index ca8072788e..5eb8b725e1 100644 --- a/frontend/shared/package.json +++ b/frontend/shared/package.json @@ -32,9 +32,11 @@ "build": "tsc ", "test": "vitest --run", "test:watch": "vitest --watch", + "lint": "pnpm lint:prettier && pnpm lint:eslint", "lint:eslint": "eslint .", - "lint:prettier": "prettier --check \"**/*.{css,md,js,jsx,json,ts,tsx}\"", - "lint": "pnpm run lint:prettier && pnpm run lint:eslint" + "lint:prettier": "prettier --check '**/*.{css,md,js,jsx,json,ts,tsx}'", + "format": "prettier --write .", + "validate": "pnpm lint && pnpm test" }, "keywords": [], "author": "", @@ -42,11 +44,15 @@ "devDependencies": { "@types/hast": "2.3.4", "@types/unist": "2.0.6", + "concurrently": "7.6.0", "typescript": "4.9.4", "vitest": "0.25.5" }, "dependencies": { + "@improbable-eng/grpc-web": "0.15.0", + "browser-headers": "0.4.1", "deepmerge": "4.2.2", + "google-protobuf": "3.21.2", "hast": "1.0.0", "hast-util-has-property": "2.0.0", "hast-util-is-element": "2.1.2", @@ -54,23 +60,20 @@ "hastscript": "7.1.0", "is-hidden": "2.0.1", "is-plain-object": "5.0.0", + "long": "5.2.1", "nanoid": "4.0.0", + "protobufjs": "7.1.2", "rehype": "12.0.1", "rehype-minify-whitespace": "5.0.1", "rehype-parse": "8.0.4", "rehype-sanitize": "5.0.1", "shiki": "0.10.1", + "slate": "^0.87.0", "trim-trailing-lines": "2.1.0", "unified": "10.1.2", "unist": "^8.0.11", "unist-builder": "3.0.0", "unist-util-remove-position": "4.0.1", - "unist-util-visit": "4.1.1", - "@improbable-eng/grpc-web": "0.15.0", - "browser-headers": "0.4.1", - "google-protobuf": "3.21.2", - "long": "5.2.1", - "protobufjs": "7.1.2", - "slate": "^0.87.0" + "unist-util-visit": "4.1.1" } } diff --git a/frontend/shared/src/client/__tests__/block-to-slate.test.ts b/frontend/shared/src/client/__tests__/block-to-slate.test.ts index 74ca09c9d9..196b39d6b2 100644 --- a/frontend/shared/src/client/__tests__/block-to-slate.test.ts +++ b/frontend/shared/src/client/__tests__/block-to-slate.test.ts @@ -574,7 +574,6 @@ describe('Transform: blockToSlate', () => { paragraph([text('😅', {emphasis: true})]), ]) let result = blockToSlate(input as Block) - console.log(JSON.stringify({result})) expect(result).toEqual(output) }) diff --git a/package.json b/package.json index 692eba2b45..5ae484e363 100644 --- a/package.json +++ b/package.json @@ -7,20 +7,23 @@ "private": true, "packageManager": "pnpm@7.18.1", "scripts": { - "app:dev": "concurrently -n SHARED,APP -c bgGreen,bgMagenta 'pnpm shared:dev' 'cd frontend/app && pnpm dev'", - "app:build": "pnpm shared:build && cd frontend/app && pnpm build", - "gw:dev": "concurrently -n SHARED,APP -c bgGreen,bgMagenta 'pnpm shared:dev' 'cd frontend/gateway && pnpm dev'", - "gw:build": "pnpm shared:build && cd frontend/gateway && pnpm build", - "shared:dev": "cd frontend/shared && pnpm dev", - "shared:build": "cd frontend/shared && pnpm build", - "all:build": "pnpm run --recursive build", - "lint": "pnpm run --recursive lint", - "format": "prettier --write --plugin-search-dir=. .", - "test": "pnpm run --recursive test", - "test:unit": "pnpm run --recursive test:unit", - "test:ui": "pnpm run --recursive test:ui", + "dev": "pnpm -r --parallel --if-present dev", + "build": "pnpm -r --parallel --if-present build", + "lint": "pnpm -r --parallel --if-present lint", + "test": "pnpm -r --parallel --if-present test", + "format": "pnpm -r --parallel --if-present format", + "validate": "pnpm -r --parallel --if-present validate", "codegen": "graphql-codegen", - "validate": "pnpm run lint && pnpm run test" + "shared:dev": "pnpm --filter='@mintter/shared' dev", + "shared:build": "pnpm --filter='@mintter/shared' build", + "shared:test": "pnpm --filter='@mintter/shared' test", + "app:dev": "pnpm --parallel --filter='@mintter/shared' --filter='@mintter/app' dev", + "app:build": "pnpm shared:build && pnpm --filter='@mintter/app' build", + "app:test": "pnpm --filter='@mintter/app' test", + "tauri:dev": "cd desktop/app && cargo tauri dev", + "gw:dev": "pnpm --parallel --filter='@mintter/shared' --filter='@mintter/gateway' dev", + "gw:build": "pnpm shared:build && pnpm --filter='@mintter/gateway' build", + "gw:test": "pnpm --filter='@mintter/gateway' test" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "5.45.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f56534aeb..20ca4af351 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,6 +93,7 @@ importers: browser-headers: 0.4.1 clipboardy: 3.0.0 cmdk: 0.1.21 + concurrently: 7.6.0 copy-text-to-clipboard: 3.0.1 covector: 0.7.3 csstype: 3.1.1 @@ -268,6 +269,7 @@ importers: '@xstate/inspect': 0.7.0_ws@8.11.0+xstate@4.35.1 '@xstate/test': 0.5.1_xstate@4.35.1 clipboardy: 3.0.0 + concurrently: 7.6.0 copy-text-to-clipboard: 3.0.1 covector: 0.7.3 cypress: 10.11.0 @@ -388,7 +390,7 @@ importers: postcss-preset-env: 7.8.3_postcss@8.4.20 prettier: 2.8.1 tailwindcss: 3.2.4 - vercel: 28.12.4 + vercel: 28.12.8 vitest: 0.25.5 webpack: 5.75.0 @@ -398,6 +400,7 @@ importers: '@types/hast': 2.3.4 '@types/unist': 2.0.6 browser-headers: 0.4.1 + concurrently: 7.6.0 deepmerge: 4.2.2 google-protobuf: 3.21.2 hast: 1.0.0 @@ -454,6 +457,7 @@ importers: devDependencies: '@types/hast': 2.3.4 '@types/unist': 2.0.6 + concurrently: 7.6.0 typescript: 4.9.4 vitest: 0.25.5 @@ -3254,14 +3258,14 @@ packages: resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} dev: false - /@sentry/browser/7.31.0: - resolution: {integrity: sha512-1ui2rbR6lNPXUOZOCLpa2+YZXhx0AbPgBD/RoC/OHVus3sAs+CyyMR1wBzmI5H3ZhA5jwwzelh4ivt+gQZ24rw==} + /@sentry/browser/7.31.1: + resolution: {integrity: sha512-Rg9F61S1tz1Dv3iUyyGP26bxoi7WJAG2+f2fBbSmFuJ+JTH4Jvu2/F1bBig8Dz01ejzVhbNSUUCfoDhSvksIsQ==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.31.0 - '@sentry/replay': 7.31.0 - '@sentry/types': 7.31.0 - '@sentry/utils': 7.31.0 + '@sentry/core': 7.31.1 + '@sentry/replay': 7.31.1 + '@sentry/types': 7.31.1 + '@sentry/utils': 7.31.1 tslib: 1.14.1 dev: false @@ -3274,22 +3278,22 @@ packages: tslib: 1.14.1 dev: false - /@sentry/core/7.31.0: - resolution: {integrity: sha512-IZS1MZznyBOPw7UEpZwq3t3aaaVhFB+r3KM4JYFSJRr7Ky9TjldXA3hadNUTztjYGgEC3u8kB9jXoRvNXM2hqA==} + /@sentry/core/7.31.1: + resolution: {integrity: sha512-quaNU6z8jabmatBTDi28Wpff2yzfWIp/IU4bbi2QOtEiCNT+TQJXqlRTRMu9xLrX7YzyKCL5X2gbit/85lyWUg==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.31.0 - '@sentry/utils': 7.31.0 + '@sentry/types': 7.31.1 + '@sentry/utils': 7.31.1 tslib: 1.14.1 dev: false - /@sentry/replay/7.31.0: - resolution: {integrity: sha512-/Vb/EcAdvb9zZbNyaAaYjaHXK9XWDoo2lFf7A6DfV+yVf4yaHHraex3pAv0mNs/99LNr55V5eIiwMGhkfeDORg==} + /@sentry/replay/7.31.1: + resolution: {integrity: sha512-sLArvwZn6IwA/bASctyhxN7LhdCXJvMmyTynRfmk7pzuNzBMc5CNlHeIsDpHrfQuH53IKicvl6cHnHyclu5DSA==} engines: {node: '>=12'} dependencies: - '@sentry/core': 7.31.0 - '@sentry/types': 7.31.0 - '@sentry/utils': 7.31.0 + '@sentry/core': 7.31.1 + '@sentry/types': 7.31.1 + '@sentry/utils': 7.31.1 dev: false /@sentry/tracing/7.24.2: @@ -3307,8 +3311,8 @@ packages: engines: {node: '>=8'} dev: false - /@sentry/types/7.31.0: - resolution: {integrity: sha512-nFqo7wyMnapdSEdw1MD+cavDtD9x5QQmh/bwLEOb/euM0cHFJHYyD7CveY/mQng4HyEVWY+DCtX/7E3GcQ7Bdw==} + /@sentry/types/7.31.1: + resolution: {integrity: sha512-1uzr2l0AxEnxUX/S0EdmXUQ15/kDsam8Nbdw4Gai8SU764XwQgA/TTjoewVP597CDI/AHKan67Y630/Ylmkx9w==} engines: {node: '>=8'} dev: false @@ -3320,11 +3324,11 @@ packages: tslib: 1.14.1 dev: false - /@sentry/utils/7.31.0: - resolution: {integrity: sha512-B1KkvdfwlaqM7sDp3/yk2No7WsbMuLEywGRVOLzXeTqTLSBRBWyyYIudqPtx2LDds9anlUHj21zs9FKY+S3eiA==} + /@sentry/utils/7.31.1: + resolution: {integrity: sha512-ZsIPq29aNdP9q3R7qIzJhZ9WW+4DzE9g5SfGwx3UjTIxoRRBfdUJUbf7S+LKEdvCkKbyoDt6FLt5MiSJV43xBA==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.31.0 + '@sentry/types': 7.31.1 tslib: 1.14.1 dev: false @@ -3587,6 +3591,9 @@ packages: /@types/node/18.11.17: resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} + /@types/node/18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} + /@types/object-hash/1.3.4: resolution: {integrity: sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==} dev: true @@ -3882,20 +3889,20 @@ packages: '@typescript-eslint/types': 5.48.2 eslint-visitor-keys: 3.3.0 - /@vercel/build-utils/5.8.3: - resolution: {integrity: sha512-t9IdZjTh65NnYvVMQfGIVXaYSBkSxuBSJHdrwy8FbSD0WB0OiRLg3sXJpKIl36M5E7IRsx29qgiw3qXEhoObtg==} + /@vercel/build-utils/5.9.0: + resolution: {integrity: sha512-LJRhd/ritLGHH+YvZ+DC7AW3Jr87UZHFHz2h2ENULDZ8qAo5LJH+y+Cg11uxfXkhQKK2f/AZQJXyKVyu1BBwdQ==} dev: true - /@vercel/go/2.2.29: - resolution: {integrity: sha512-9kpz+BPiJ0TvgIko+fYF3liMQH6VlDjZyI2EHtKvRqGWMWWz1zAh7E9HQNLfTicff7xWim3nufsbjj08t7MkhA==} + /@vercel/go/2.2.30: + resolution: {integrity: sha512-ODz5UrlBzYIpPVjfMZVofQGfsqHSn2WjLdHGw58UAgQH+rUYSWBwqsXvIcYT3QXy2hKCZGguahqeT0qXSqBpTw==} dev: true - /@vercel/hydrogen/0.0.43: - resolution: {integrity: sha512-hDXHh1Yv0T34JAFqDPIzm84rGcc27APRodGLEH9wLK2KfhZZaXp2t0pb5+NsnXg6+0HzgdG4xRWp1wLwx1+FXA==} + /@vercel/hydrogen/0.0.44: + resolution: {integrity: sha512-7RnSk10nE0tNLHcTCUTWCpO5rfcMQ7N6ECTaeozWcYWs2/Fol7tLjc9Uowo1ZqnV7wTm5mE/ooCD2FNlaKmiaA==} dev: true - /@vercel/next/3.3.14: - resolution: {integrity: sha512-yuy6XqMs+qQiteuLfTPbty0Fer9Hw9xCYjydYlIBTIZqTvQoqrkHeLhNA5OBLKDDe6aifoxLf4LicT9MHgVRLQ==} + /@vercel/next/3.3.17: + resolution: {integrity: sha512-NivHPJw5YpdcweAtuqx74N/oiSiVAoirKPrejBqyyaabsdC0x99CdH5DHCaAyjGBNilOqIbI66GRRLLTBhAjhQ==} dev: true /@vercel/nft/0.22.5: @@ -3919,17 +3926,17 @@ packages: - supports-color dev: true - /@vercel/node-bridge/3.1.8: - resolution: {integrity: sha512-zF4lUQLq2uqCUl1vm9KITK/rOVPeCCuSle5skqVi4ybQDaXaHpumBT7NovuOD5ls4AJxqVcyiOOheRT4f/le3A==} + /@vercel/node-bridge/3.1.10: + resolution: {integrity: sha512-0DQzF5pdyP+xd5f1Ss2fAO+9xIvzUhngRAPazwg4XHZE9iLkv2L+A1u3L8NYi4hoUlAAZQ5GF3txlm/oBn4tNw==} dev: true - /@vercel/node/2.8.11: - resolution: {integrity: sha512-XYkyNe+C+FIDc2TnlZxyS7cc0PbwGvuK3AFU75KaB898UUnOueEki2i0s8dokG1M9T3dT2QnbozyZ0anxT8jlQ==} + /@vercel/node/2.8.14: + resolution: {integrity: sha512-ty4/FUgEpfQlqNm3j5HEaMhAHPJipRBzm6WVOs7Lvf5INx6OqLxbLBw3p/xcA18EWL0D8e5V41B7F8iQ3tBkqA==} dependencies: '@edge-runtime/vm': 2.0.0 '@types/node': 14.18.33 - '@vercel/build-utils': 5.8.3 - '@vercel/node-bridge': 3.1.8 + '@vercel/build-utils': 5.9.0 + '@vercel/node-bridge': 3.1.10 '@vercel/static-config': 2.0.11 edge-runtime: 2.0.0 esbuild: 0.14.47 @@ -3952,12 +3959,12 @@ packages: yoga-wasm-web: 0.1.2 dev: false - /@vercel/python/3.1.39: - resolution: {integrity: sha512-IKPsTfUh1aVuYKMvoWcvRwFEhYMrCT70WNW1SQ44qRD6nc3vQ4pRISHRSNQYG7QjutvRc2zZ+li8FCF+dB8prQ==} + /@vercel/python/3.1.40: + resolution: {integrity: sha512-Cns+KTVBloQXtls72KaaXQ2gHgsH5/Mm7lwv80ysTZvp5x6loh+Faf6QJq93LxYh9lz2wqWjO+nq3XJ77N5twg==} dev: true - /@vercel/redwood/1.0.50: - resolution: {integrity: sha512-XWH0J7A96hsp+C2HOvh97jJIbqT+xwai3OUSePEFtHO86D61dr0UoETg3vNwygjAil/7UoCPRdaxmOLKMoSCQw==} + /@vercel/redwood/1.0.51: + resolution: {integrity: sha512-0i9+qe4branWzMfeLbIazvomxCX7scASJ9bqm2oMCdMxZrXeB3/hwRCUUdGJGXmRsrGp7ATsXjxynd+D1wZymw==} dependencies: '@vercel/nft': 0.22.5 '@vercel/routing-utils': 2.1.8 @@ -3967,8 +3974,8 @@ packages: - supports-color dev: true - /@vercel/remix/1.2.4: - resolution: {integrity: sha512-u8cozVQuF3IC78rKEeDG846Iu2AVblunsTmXLQxamKyXsy1VGmcTmBhGEO3o1XatbqmkMc3wyfE/OFbDRWrzWA==} + /@vercel/remix/1.2.7: + resolution: {integrity: sha512-7og2psE5EGBkBSPwv09an/TM4ucLyMwxvq4yjxT/6UajQf1Evd8hi/kkBWNQYTAH+tq5kBXCXgbaJ3ggbwcD4g==} dependencies: '@vercel/nft': 0.22.5 transitivePeerDependencies: @@ -3984,12 +3991,12 @@ packages: ajv: 6.12.6 dev: true - /@vercel/ruby/1.3.55: - resolution: {integrity: sha512-5IfaUrG0rHd3YgNbgPv+MqIKFATfMjB0BTRmqztslvcAy8yzjJnbAPanWUmEblFGxVQ9gg15RqnvFbMaC+3kPQ==} + /@vercel/ruby/1.3.56: + resolution: {integrity: sha512-fYjyU8ZhsouRC5WWZBuN8FQG+eHGTFzl8sCwCGdeaykJOpVa0FW9Xl/fDjBpAQoicbrdZhDH2HaEfnjBkLVIeA==} dev: true - /@vercel/static-build/1.1.6: - resolution: {integrity: sha512-P0RbMsawcCknfHFHv5fU4l1F9JP9XTsgducqsiH6TDyor2OYV7y9UP6IRTiwO/05NUKOg1nq/6lQxssdqFQQgA==} + /@vercel/static-build/1.1.7: + resolution: {integrity: sha512-l0QBOuRD6NjewHyPTSMxk96MVJbeem46cjqKb9AB9Ochf2nb20JGZaON0VSqeJRtrQR19gWiqgTT+glz1G098A==} dev: true /@vercel/static-config/2.0.11: @@ -4133,7 +4140,7 @@ packages: form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.6.8 - undici: 5.15.0 + undici: 5.15.1 web-streams-polyfill: 3.2.1 transitivePeerDependencies: - encoding @@ -4148,7 +4155,7 @@ packages: form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.6.8 - undici: 5.15.0 + undici: 5.15.1 urlpattern-polyfill: 6.0.2 web-streams-polyfill: 3.2.1 transitivePeerDependencies: @@ -4590,7 +4597,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001445 + caniuse-lite: 1.0.30001446 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -4746,7 +4753,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001445 + caniuse-lite: 1.0.30001446 electron-to-chromium: 1.4.284 node-releases: 2.0.8 update-browserslist-db: 1.0.10_browserslist@4.21.4 @@ -4836,13 +4843,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001445 + caniuse-lite: 1.0.30001446 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite/1.0.30001445: - resolution: {integrity: sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==} + /caniuse-lite/1.0.30001446: + resolution: {integrity: sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==} /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -5278,8 +5285,8 @@ packages: requiresBuild: true dev: true - /core-js/3.27.1: - resolution: {integrity: sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==} + /core-js/3.27.2: + resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==} requiresBuild: true dev: true @@ -6676,8 +6683,8 @@ packages: '@mdn/browser-compat-data': 4.2.1 ast-metadata-inferer: 0.7.0 browserslist: 4.21.4 - caniuse-lite: 1.0.30001445 - core-js: 3.27.1 + caniuse-lite: 1.0.30001446 + core-js: 3.27.2 eslint: 8.29.0 find-up: 5.0.0 lodash.memoize: 4.1.2 @@ -7794,6 +7801,12 @@ packages: '@types/hast': 2.3.4 dev: false + /hast-util-sanitize/4.1.0: + resolution: {integrity: sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==} + dependencies: + '@types/hast': 2.3.4 + dev: false + /hast-util-to-estree/2.2.1: resolution: {integrity: sha512-kiGD9WIW3gRKK8Gao3n1f+ahUeTMeJUJILnIT2QNrPigDNdH7rJxzhEbh81UajGeAdAHFecT1a+fLVOCTq9B4Q==} dependencies: @@ -7980,6 +7993,10 @@ packages: resolution: {integrity: sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==} dev: false + /immer/9.0.18: + resolution: {integrity: sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A==} + dev: false + /immutable/3.7.6: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} engines: {node: '>=0.8.0'} @@ -9482,7 +9499,7 @@ packages: dependencies: '@next/env': 13.0.6 '@swc/helpers': 0.4.14 - caniuse-lite: 1.0.30001445 + caniuse-lite: 1.0.30001446 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -10896,7 +10913,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.11.17 + '@types/node': 18.11.18 long: 5.2.1 dev: false @@ -11236,7 +11253,7 @@ packages: resolution: {integrity: sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A==} dependencies: '@types/hast': 2.3.4 - hast-util-sanitize: 4.0.0 + hast-util-sanitize: 4.1.0 unified: 10.1.2 dev: false @@ -11682,7 +11699,7 @@ packages: /slate/0.87.0: resolution: {integrity: sha512-m+IWERpdtb7Zna09MxHlUYIAoo4WVdxp2fSf7c+jSV9pDmJ4QvUTuHghX/TVrxtr+8BKGhyQCWIerZt32B1Ysg==} dependencies: - immer: 9.0.16 + immer: 9.0.18 is-plain-object: 5.0.0 tiny-warning: 1.0.3 dev: false @@ -12486,8 +12503,8 @@ packages: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} dev: true - /undici/5.15.0: - resolution: {integrity: sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g==} + /undici/5.15.1: + resolution: {integrity: sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA==} engines: {node: '>=12.18'} dependencies: busboy: 1.6.0 @@ -12751,22 +12768,22 @@ packages: engines: {node: '>=12'} dev: true - /vercel/28.12.4: - resolution: {integrity: sha512-UMbOsOtA7EdT0XL1m0FricVLSlWNrcf0O2srkaNvYHKqaSq7Q/JCVJuBcXEfNIz0M0eX7mb/977xkXamT4cpnA==} + /vercel/28.12.8: + resolution: {integrity: sha512-hWY2EtT3jASdWurZhpAXB6/JanVLmkj92hqH2v6V8UFXx4XaZt9nOWCbnVPpgef7KOOmLr2USU1WelyB7Yv/XQ==} engines: {node: '>= 14'} hasBin: true requiresBuild: true dependencies: - '@vercel/build-utils': 5.8.3 - '@vercel/go': 2.2.29 - '@vercel/hydrogen': 0.0.43 - '@vercel/next': 3.3.14 - '@vercel/node': 2.8.11 - '@vercel/python': 3.1.39 - '@vercel/redwood': 1.0.50 - '@vercel/remix': 1.2.4 - '@vercel/ruby': 1.3.55 - '@vercel/static-build': 1.1.6 + '@vercel/build-utils': 5.9.0 + '@vercel/go': 2.2.30 + '@vercel/hydrogen': 0.0.44 + '@vercel/next': 3.3.17 + '@vercel/node': 2.8.14 + '@vercel/python': 3.1.40 + '@vercel/redwood': 1.0.51 + '@vercel/remix': 1.2.7 + '@vercel/ruby': 1.3.56 + '@vercel/static-build': 1.1.7 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -12851,7 +12868,7 @@ packages: - supports-color dev: true - /vite/3.2.5_@types+node@18.11.17: + /vite/3.2.5_@types+node@18.11.18: resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -12876,7 +12893,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.17 + '@types/node': 18.11.18 esbuild: 0.15.18 postcss: 8.4.21 resolve: 1.22.1 @@ -12920,6 +12937,41 @@ packages: fsevents: 2.3.2 dev: true + /vite/3.2.5_ucexzfio6hto3u55ykhaodjhte: + resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.18 + esbuild: 0.15.18 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 2.79.1 + sass: 1.56.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vitest/0.25.5: resolution: {integrity: sha512-lFKSTZV+AjuL44/yNC0aDPKTiasYSqOQ97Gg2G4P2LnjyzQ21ZUs4rQOscHK3lrSnVuir3+1QavHzbDgH4tWQA==} engines: {node: '>=v14.16.0'} @@ -12944,7 +12996,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.17 + '@types/node': 18.11.18 acorn: 8.8.1 acorn-walk: 8.2.0 chai: 4.3.7 @@ -12955,7 +13007,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.2.5_@types+node@18.11.17 + vite: 3.2.5_@types+node@18.11.18 transitivePeerDependencies: - less - sass @@ -12989,7 +13041,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.17 + '@types/node': 18.11.18 acorn: 8.8.1 acorn-walk: 8.2.0 chai: 4.3.7 @@ -13001,7 +13053,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 3.2.5_lsvry4w5nj6evwofoi5nudk2oa + vite: 3.2.5_ucexzfio6hto3u55ykhaodjhte transitivePeerDependencies: - less - sass @@ -13402,11 +13454,11 @@ packages: dev: false github.com/JonasKruckenberg/sentry-tauri/df123beb03104b6068b3bdd6fc509e3158f7dd30: - resolution: {commit: df123beb03104b6068b3bdd6fc509e3158f7dd30, repo: git+ssh://git@github.com/JonasKruckenberg/sentry-tauri.git, type: git} + resolution: {tarball: https://codeload.github.com/JonasKruckenberg/sentry-tauri/tar.gz/df123beb03104b6068b3bdd6fc509e3158f7dd30} name: '@timfish/sentry-tauri' version: 0.1.0 dependencies: - '@sentry/browser': 7.31.0 + '@sentry/browser': 7.31.1 '@tauri-apps/api': 1.2.0 tslib: 2.4.1 dev: false