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',
}}
>
-
+
{
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