From bf14bbc4873aed208823b3575323cefe69666c4d Mon Sep 17 00:00:00 2001 From: Jennifer Echenim Date: Fri, 24 May 2024 15:21:02 +0100 Subject: [PATCH 001/107] =?UTF-8?q?initialise=20turborepo=20=F0=9F=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .turbo/cookies/1.cookie | 0 .turbo/cookies/10.cookie | 0 .turbo/cookies/11.cookie | 0 .turbo/cookies/12.cookie | 0 .turbo/cookies/13.cookie | 0 .turbo/cookies/2.cookie | 0 .turbo/cookies/3.cookie | 0 .turbo/cookies/4.cookie | 0 .turbo/cookies/5.cookie | 0 .turbo/cookies/6.cookie | 0 .turbo/cookies/7.cookie | 0 .turbo/cookies/8.cookie | 0 .turbo/cookies/9.cookie | 0 .../b253da532d1b4fa5-turbo.log.2024-05-24 | 1835 +++ package.json | 25 + .../apis/.config/openapi-codegen.config.ts | 28 + packages/apis/.config/p2o.config.json | 4 + packages/apis/package.json | 28 + packages/apis/src/api/client.ts | 166 + .../apis/src/api/codegen/digestComponents.ts | 1078 ++ .../apis/src/api/codegen/digestContext.ts | 99 + .../apis/src/api/codegen/digestFetcher.ts | 94 + packages/apis/src/api/response-types.ts | 38 + packages/apis/src/libs/index.ts | 18 + packages/apis/src/libs/observables/auth.ts | 5 + packages/apis/storage/digest-collection.json | 1287 +++ packages/apis/storage/digest-openapi.json | 1450 +++ packages/apis/tsconfig.json | 16 + packages/eslint-config/README.md | 3 + packages/eslint-config/library.js | 34 + packages/eslint-config/next.js | 35 + packages/eslint-config/package.json | 19 + packages/eslint-config/react-internal.js | 43 + packages/shared/package.json | 13 + packages/shared/src/data.helpers.ts | 37 + packages/shared/tsconfig.json | 8 + packages/typescript-config/base.json | 20 + packages/typescript-config/nextjs.json | 13 + packages/typescript-config/package.json | 9 + packages/typescript-config/react-library.json | 8 + packages/ui/.eslintrc.js | 9 + packages/ui/package.json | 26 + packages/ui/src/alert.tsx | 64 + packages/ui/src/avatar.tsx | 54 + packages/ui/src/badge.tsx | 37 + packages/ui/src/button.tsx | 58 + packages/ui/src/calendar.tsx | 62 + packages/ui/src/card.tsx | 56 + packages/ui/src/checkbox.tsx | 28 + packages/ui/src/command.tsx | 153 + packages/ui/src/dialog.tsx | 102 + packages/ui/src/dropdown-menu.tsx | 183 + packages/ui/src/external-link.tsx | 25 + packages/ui/src/input.tsx | 24 + packages/ui/src/key-value.tsx | 29 + packages/ui/src/label.tsx | 19 + packages/ui/src/navigation-menu.tsx | 120 + packages/ui/src/popover.tsx | 29 + packages/ui/src/select.tsx | 119 + packages/ui/src/separator.tsx | 29 + packages/ui/src/skeleton.tsx | 15 + packages/ui/src/spinner.tsx | 11 + packages/ui/src/table.tsx | 91 + packages/ui/src/tabs.tsx | 53 + packages/ui/src/textarea.tsx | 24 + packages/ui/src/toast.tsx | 130 + packages/ui/src/toaster.tsx | 33 + packages/ui/src/tooltip.tsx | 28 + packages/ui/src/use-toast.ts | 196 + packages/ui/tsconfig.json | 8 + packages/ui/tsconfig.lint.json | 8 + packages/ui/turbo/generators/config.ts | 30 + .../turbo/generators/templates/component.hbs | 8 + pnpm-lock.yaml | 9961 +++++++++++++++++ pnpm-workspace.yaml | 4 + tools/tenscan/frontend/next.config.js | 1 + tools/tenscan/frontend/package.json | 1 + turbo.json | 9 + 79 files changed, 18251 insertions(+) create mode 100644 .turbo/cookies/1.cookie create mode 100644 .turbo/cookies/10.cookie create mode 100644 .turbo/cookies/11.cookie create mode 100644 .turbo/cookies/12.cookie create mode 100644 .turbo/cookies/13.cookie create mode 100644 .turbo/cookies/2.cookie create mode 100644 .turbo/cookies/3.cookie create mode 100644 .turbo/cookies/4.cookie create mode 100644 .turbo/cookies/5.cookie create mode 100644 .turbo/cookies/6.cookie create mode 100644 .turbo/cookies/7.cookie create mode 100644 .turbo/cookies/8.cookie create mode 100644 .turbo/cookies/9.cookie create mode 100644 .turbo/daemon/b253da532d1b4fa5-turbo.log.2024-05-24 create mode 100644 package.json create mode 100644 packages/apis/.config/openapi-codegen.config.ts create mode 100644 packages/apis/.config/p2o.config.json create mode 100644 packages/apis/package.json create mode 100644 packages/apis/src/api/client.ts create mode 100644 packages/apis/src/api/codegen/digestComponents.ts create mode 100644 packages/apis/src/api/codegen/digestContext.ts create mode 100644 packages/apis/src/api/codegen/digestFetcher.ts create mode 100644 packages/apis/src/api/response-types.ts create mode 100644 packages/apis/src/libs/index.ts create mode 100644 packages/apis/src/libs/observables/auth.ts create mode 100644 packages/apis/storage/digest-collection.json create mode 100644 packages/apis/storage/digest-openapi.json create mode 100644 packages/apis/tsconfig.json create mode 100644 packages/eslint-config/README.md create mode 100644 packages/eslint-config/library.js create mode 100644 packages/eslint-config/next.js create mode 100644 packages/eslint-config/package.json create mode 100644 packages/eslint-config/react-internal.js create mode 100644 packages/shared/package.json create mode 100644 packages/shared/src/data.helpers.ts create mode 100644 packages/shared/tsconfig.json create mode 100644 packages/typescript-config/base.json create mode 100644 packages/typescript-config/nextjs.json create mode 100644 packages/typescript-config/package.json create mode 100644 packages/typescript-config/react-library.json create mode 100644 packages/ui/.eslintrc.js create mode 100644 packages/ui/package.json create mode 100644 packages/ui/src/alert.tsx create mode 100644 packages/ui/src/avatar.tsx create mode 100644 packages/ui/src/badge.tsx create mode 100644 packages/ui/src/button.tsx create mode 100644 packages/ui/src/calendar.tsx create mode 100644 packages/ui/src/card.tsx create mode 100644 packages/ui/src/checkbox.tsx create mode 100644 packages/ui/src/command.tsx create mode 100644 packages/ui/src/dialog.tsx create mode 100644 packages/ui/src/dropdown-menu.tsx create mode 100644 packages/ui/src/external-link.tsx create mode 100644 packages/ui/src/input.tsx create mode 100644 packages/ui/src/key-value.tsx create mode 100644 packages/ui/src/label.tsx create mode 100644 packages/ui/src/navigation-menu.tsx create mode 100644 packages/ui/src/popover.tsx create mode 100644 packages/ui/src/select.tsx create mode 100644 packages/ui/src/separator.tsx create mode 100644 packages/ui/src/skeleton.tsx create mode 100644 packages/ui/src/spinner.tsx create mode 100644 packages/ui/src/table.tsx create mode 100644 packages/ui/src/tabs.tsx create mode 100644 packages/ui/src/textarea.tsx create mode 100644 packages/ui/src/toast.tsx create mode 100644 packages/ui/src/toaster.tsx create mode 100644 packages/ui/src/tooltip.tsx create mode 100644 packages/ui/src/use-toast.ts create mode 100644 packages/ui/tsconfig.json create mode 100644 packages/ui/tsconfig.lint.json create mode 100644 packages/ui/turbo/generators/config.ts create mode 100644 packages/ui/turbo/generators/templates/component.hbs create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 turbo.json diff --git a/.gitignore b/.gitignore index c9c85f15f0..e3120cb294 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.so *.dylib + # Test binary, built with `go test -c` *.test diff --git a/.turbo/cookies/1.cookie b/.turbo/cookies/1.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/10.cookie b/.turbo/cookies/10.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/11.cookie b/.turbo/cookies/11.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/12.cookie b/.turbo/cookies/12.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/13.cookie b/.turbo/cookies/13.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/2.cookie b/.turbo/cookies/2.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/3.cookie b/.turbo/cookies/3.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/4.cookie b/.turbo/cookies/4.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/5.cookie b/.turbo/cookies/5.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/6.cookie b/.turbo/cookies/6.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/7.cookie b/.turbo/cookies/7.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/8.cookie b/.turbo/cookies/8.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/cookies/9.cookie b/.turbo/cookies/9.cookie new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.turbo/daemon/b253da532d1b4fa5-turbo.log.2024-05-24 b/.turbo/daemon/b253da532d1b4fa5-turbo.log.2024-05-24 new file mode 100644 index 0000000000..6a132e934d --- /dev/null +++ b/.turbo/daemon/b253da532d1b4fa5-turbo.log.2024-05-24 @@ -0,0 +1,1835 @@ +2024-05-24T13:27:34.918231Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.918825Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.919695Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.920136Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.921242Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.922526Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.923439Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.924242Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.925005Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.925407Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.934090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.934699Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.935442Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.938272Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.939190Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.939537Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.940092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.940356Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.945466Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.946229Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.947029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.948347Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.949114Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.952613Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.953398Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.955677Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.956460Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.957503Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.958552Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.959450Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.965389Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.965956Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.967698Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.968042Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.975474Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.975977Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.976755Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.977520Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.978110Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.978664Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.985616Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.986132Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.986916Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.987435Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.987966Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.988261Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.996349Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.997397Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.998160Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.998920Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.999428Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.999714Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:34.999717Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.005472Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.006245Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.007027Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.007541Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.007812Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.008582Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.015794Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.016068Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.016093Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.016720Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.017284Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.017286Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.017287Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.017314Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.018220Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.018496Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.025535Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.026071Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.026697Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.027242Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.027821Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.028394Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.036182Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.036468Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.036483Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.036484Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:35.036985Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.191011Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.217045Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.217320Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.221028Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.241067Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.244465Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.244745Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.261837Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.262286Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.267488Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.270445Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.275760Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.279300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.286490Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.301204Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.303671Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.306824Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.308663Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.317402Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.325111Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.325116Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.325117Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.331421Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.332485Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.337395Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.339424Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.339701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.341955Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.357319Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.385736Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.386152Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.453412Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.456256Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.457598Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.459245Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.460473Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.461375Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.471450Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.474361Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.475409Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.477368Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.478113Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.478928Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.480087Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.482534Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.486802Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.487618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.488321Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.493936Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.510522Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.511149Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.511434Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.517019Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.526316Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.533613Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.538065Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.547052Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.560768Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.567425Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.576363Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.579839Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.589892Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.590402Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.591943Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.592971Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.594644Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.598531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.600123Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.601682Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.602130Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.603867Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.605479Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.606618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.606913Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.607789Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.608647Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.609546Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.610108Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.610646Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.612742Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.613214Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.614892Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.616332Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.617956Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.618615Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.619245Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.620350Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.621730Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.621946Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.623885Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.624885Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.628418Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.628942Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.630092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.630785Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.632199Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.633170Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.634443Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.635370Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.635969Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.636694Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.637432Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.638172Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.640203Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.640907Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.641218Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.694104Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.698054Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.702371Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.703434Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.704176Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.705010Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.705593Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.707988Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.708830Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.709565Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.711099Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.711608Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.712534Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.713411Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.714078Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.715734Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.718052Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.718334Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.718603Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.720504Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.721459Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.722420Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.724224Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.725602Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.727638Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.736143Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.737086Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.737757Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.739540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.739884Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.740469Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.740809Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.741980Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.743171Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.751300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.754715Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.757403Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.761144Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.764490Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.764801Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.771954Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.785832Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.787763Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.788515Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.790815Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.791167Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.791595Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.794712Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.798929Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.799636Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.800029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.804722Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.811285Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.812169Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.814216Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.814562Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.820905Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.821062Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.824425Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.825339Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.832672Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.833270Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.834561Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.855957Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.859310Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.860247Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.861199Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.861770Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.865297Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.865300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.866907Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.870118Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.883095Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.885817Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.887568Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.888915Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.894297Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.903383Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.904529Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.905658Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.906179Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.906443Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.906720Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.907253Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.907514Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.908035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.908564Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.909080Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.911175Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.912449Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.912701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.912961Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.916444Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.918576Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.919090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.919458Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.920273Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.920787Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.921293Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.922207Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.922703Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.923693Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.924432Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.925173Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.929686Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.930254Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.930535Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.930806Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.931083Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.931352Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.931629Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.932042Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.932388Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.933042Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.933987Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.934300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.934672Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.936655Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.937189Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.938193Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.938937Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.939506Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.939812Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.941665Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.942183Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.942701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.943210Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.949732Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.950273Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.950812Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.951599Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.952165Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.952697Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.953569Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.954408Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.954698Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.954699Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.954983Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.964888Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.966686Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.969299Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.971810Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.972550Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.973289Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.974745Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.975964Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.976939Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.977427Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.978643Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.979618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.980596Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.981095Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.981353Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.982114Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.982621Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.982869Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.983605Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.983862Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.984375Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.985114Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.985869Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.986983Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.987542Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.988619Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.990851Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.991632Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.991913Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.992467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.992738Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.993292Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.993573Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.994111Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.995164Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.995942Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.996732Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:36.996992Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.000631Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.001147Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.001411Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.003714Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.003982Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.004508Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.005027Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.005543Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.006320Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.007105Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.008196Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.008478Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.010373Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.010657Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.011409Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.012156Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.012910Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.013997Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.014778Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.015310Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.016091Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.016621Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.021337Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.021598Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.021945Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.022735Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.023239Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.024717Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.024970Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.025724Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.026474Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.027228Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.028237Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.028771Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.029522Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.030021Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.030519Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.031006Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.031250Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.032131Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.032933Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.034088Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.034693Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.035268Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.035544Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.036091Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.036956Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.042285Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.042579Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.042851Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.049954Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.051261Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.053841Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.054614Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.055898Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.056416Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.057444Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.058219Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.059258Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.060814Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.061578Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.062096Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.062355Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.062614Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.063404Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.063667Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.063929Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.064185Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.064961Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.065737Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.066790Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.067063Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.067592Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.068108Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.068109Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.068903Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.069720Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.070250Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.070770Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.071295Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.072066Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.072586Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.075980Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.076231Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.076480Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.076986Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.077478Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.078571Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.078855Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.079709Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.080530Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.085281Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.085772Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.086019Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.086505Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.086991Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.087727Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.088467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.089193Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.089931Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.090688Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.091197Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.093858Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.095807Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.096537Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.098747Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.099239Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.099747Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.100540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.101212Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.101945Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.102772Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.103869Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.104141Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.107360Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.108031Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.109139Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.109675Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.110481Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.111301Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.111824Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.112769Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.113341Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.114267Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.117205Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.117985Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.118498Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.119121Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.132145Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.132678Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.134590Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.135488Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.135805Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.136658Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.137428Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.137967Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.138983Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.139517Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.140060Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.141148Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.141721Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.142274Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.142837Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.144172Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.144975Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.145512Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.146041Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.147100Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.147633Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.148426Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.148962Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.149757Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.150287Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.151090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.151894Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.152157Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.152673Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.158487Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.159508Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.160029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.160850Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.162243Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.162513Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.162778Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.163568Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.164122Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.164952Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.165735Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.167043Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.167307Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.168807Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.169092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.170201Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.170472Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.171014Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.171561Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.172106Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.172916Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.173719Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.174261Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.177006Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.177780Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.178809Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.179585Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.180103Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.180622Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.180881Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.181663Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.182216Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.183318Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.186894Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.192624Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.193152Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.195171Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.198380Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.199139Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.200471Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.201406Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.201716Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.203205Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.204600Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.205228Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.206251Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.207981Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.208807Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.209600Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.210389Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.211425Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.212457Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.213240Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.213762Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.214531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.215820Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.216859Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.217383Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.218428Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.222256Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.223041Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.223837Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.224098Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.224911Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.225439Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.226225Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.227008Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.228573Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.229612Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.230152Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.230682Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.231762Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.232031Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.232301Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.233081Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.233622Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.234842Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.235585Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.236606Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.239439Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.239966Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.241247Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.242009Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.242261Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.242529Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.243029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.243778Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.244278Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.245785Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.246288Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.247985Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.251177Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.251670Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.252175Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.257458Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.262471Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.266656Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.268510Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.270701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.273155Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.276667Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.276998Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.277559Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.281648Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.282183Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.282700Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.283653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.284343Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.285186Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.285733Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.286633Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.286938Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.287499Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.287945Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.288274Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.288922Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.288946Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.290088Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.292303Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.292578Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.292852Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.293927Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.294199Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.296048Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.296571Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.299893Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.300428Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.300740Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.301011Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.301013Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.301556Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.301832Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.302105Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.302918Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.303719Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.304035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.306895Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.307149Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.307399Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.308148Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.308651Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.309154Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.309660Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.310172Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.310174Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.313692Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.313962Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.314519Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.314788Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.315056Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.315856Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.316392Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.316661Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.317179Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.321074Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.322188Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.322725Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.323300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.323594Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.324144Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.324410Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.328681Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.328978Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.328980Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.329539Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.329818Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.330092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.330364Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.330635Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.330899Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.336586Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.337126Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.337408Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.337954Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.338480Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.339023Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.339550Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.339818Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.343500Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.343772Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.344049Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.344348Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.344927Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.345713Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.346233Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.346511Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.349955Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.350218Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.350482Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.350742Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.350995Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.351483Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.351982Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.352481Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.358906Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.359421Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.359926Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.360192Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.360755Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.361436Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.361741Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.362359Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.363295Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.363574Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.363858Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.364410Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.365235Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.372552Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.372838Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.373676Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.373958Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.374238Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.374521Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.375073Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.375884Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.376432Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.377246Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.377792Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.378597Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.379393Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.379657Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.380727Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.381261Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.382063Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.382858Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.383650Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.384450Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.385245Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.385520Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.386600Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.387142Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.387407Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.388482Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.389019Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.389561Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.389828Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.390101Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.390374Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.390922Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.391185Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.391731Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.392519Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.393045Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.393309Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.395413Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.395672Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.395940Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.396204Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.396466Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.396995Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.397529Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.398068Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.401752Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.402015Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.402541Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.404371Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.404897Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.405681Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.406203Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.406721Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.409344Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.409610Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.410133Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.410423Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.410759Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.411292Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.411792Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.412540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.413035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.413532Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.415006Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.415253Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.415515Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.415791Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.416331Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.416858Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.417653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.419223Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.419741Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.421557Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.421884Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.422189Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.422759Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.423568Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.424362Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.424891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.425414Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.428737Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.428999Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.429257Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.429514Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.429778Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.430289Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.430800Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.431327Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.436807Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.437080Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.447357Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.447360Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.447929Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.448713Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.449473Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.449984Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.451027Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.451796Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.452054Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.452812Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.453562Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.454084Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.454601Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.455096Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.455606Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.458345Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.459090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.460609Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.461123Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.465960Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.468319Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.468584Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.469101Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.469620Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.470385Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.470643Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.470906Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.471338Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.472642Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.473521Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.473809Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.474380Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.474660Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.475204Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.476515Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.477299Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.477827Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.478844Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.479362Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.479618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.480133Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.480945Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.481467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.481734Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.482242Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.482891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.483160Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.483977Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.484293Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.484868Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.485154Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.485439Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.485999Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.487364Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.487916Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.488469Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.489028Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.490680Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.490956Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.491236Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.491784Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.495506Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.495773Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.496295Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.496554Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.497091Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.497648Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.498457Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.498723Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.499252Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.499785Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.502382Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.502653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.502919Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.503192Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.504732Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.505011Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.506071Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.506594Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.506862Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.508417Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.508679Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.508946Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.509456Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.509976Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.510764Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.511286Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.512056Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.512060Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.516219Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.517258Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.518061Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.518601Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.519138Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.520191Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.520710Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.521489Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.522540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.523100Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.523915Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.524188Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.524728Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.524991Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.525323Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.525633Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.525924Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.526222Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.527058Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.527616Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.528156Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.528980Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.529796Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.530335Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.531415Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.531688Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.534540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.535046Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.535307Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.537358Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.538966Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.539254Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.539814Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.540125Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.540685Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.540959Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.542283Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.542876Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.543156Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.543434Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.545029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.545402Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.545674Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.545936Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.546202Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.546469Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.546734Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.546996Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.547256Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.547514Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.548032Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.548552Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.564750Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.565253Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.565757Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.566268Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.567014Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.567509Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.568247Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.568984Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.569473Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.570454Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.570952Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.571448Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.571692Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.572177Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.572429Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.573165Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.573893Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.574636Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.575127Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.575618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.576108Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.576352Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.576844Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.577335Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.578813Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.580817Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.581582Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.582090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.582361Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.583136Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.583651Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.584406Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.585154Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.585409Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.586152Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.586886Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.587403Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.587983Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.589673Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.590209Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.590478Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.591279Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.591557Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.592086Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.592624Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.592884Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.593142Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.593665Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.593931Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.595218Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.595491Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.601035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.601305Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.601826Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.602618Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.603662Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.604467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.605003Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.606037Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.606844Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.607382Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.608449Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.608998Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.610288Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.611842Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.612108Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.612627Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.612882Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.613675Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.613999Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.614330Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.614863Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.615389Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.615891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.624636Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.626114Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.626402Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.626686Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.627249Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.628094Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.628640Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.629189Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.639738Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.640058Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.640603Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.640882Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.641440Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.641728Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.642016Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.644503Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.644786Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.645058Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.645327Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.645611Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.645890Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.646443Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.646722Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.647273Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.647566Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.648094Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.648370Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.648915Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.653030Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.653547Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.654091Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.654360Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.654633Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.655183Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.655474Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.656003Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.656272Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.656829Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.657101Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.657635Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.660252Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.660817Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.661102Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.661365Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.662176Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.662440Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.662970Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.663492Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.663751Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.664276Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.664540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.671257Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.671510Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.672035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.672793Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.673055Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.673564Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.674078Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.674337Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.674338Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.674849Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.675366Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.675622Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.676137Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.676396Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.676907Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.677414Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.677672Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.677674Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.677926Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.678429Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.678938Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.679198Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.679456Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.679458Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.679713Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.679967Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.680224Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.684281Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.684828Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.685092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.685383Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.686019Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.686326Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.686605Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.687177Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.687479Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.695562Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.696111Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.696906Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.697173Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.697694Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.697954Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.698469Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.698740Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.699269Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.699541Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.700080Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.703830Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.704350Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.704612Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.705125Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.705648Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.705935Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.706206Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.706713Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.706963Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.707523Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.707840Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.708137Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.708432Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.710533Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.710809Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.711365Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.711653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.711922Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.712479Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.712757Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.713307Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.713582Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.722246Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.722526Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.723062Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.728638Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.728925Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.729447Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.729718Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.729975Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.730499Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.731977Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.732501Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.732764Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.733295Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.733805Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.734076Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.734621Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.734883Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.735401Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.735668Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.736211Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.736481Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.743737Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.744235Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.744495Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.745002Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.745272Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.745808Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.746080Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.746330Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.746592Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.746867Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.747145Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.747418Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.755718Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.756255Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.756544Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.757081Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.757377Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.757916Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.758189Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.758472Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.759037Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.765701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.765962Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.766212Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.766480Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.767000Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.767510Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.767784Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.768277Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.768785Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.769538Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.769799Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.775419Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.775691Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.776204Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.776467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.776980Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.777231Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.777232Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.777741Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.778238Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.785014Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.785531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.785795Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.785798Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.785799Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.786928Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.787193Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.787710Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.787974Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.787975Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.788232Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.788496Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:37.789004Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.220921Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.221185Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.221442Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.240964Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.250900Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.261508Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.281453Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.281459Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.281768Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.291727Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.312843Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:27:59.323722Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.947531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.956897Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.966004Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.968036Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.969660Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.972228Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.973437Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.973733Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.974275Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.982621Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.983709Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.986200Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.987322Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.987872Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:29.999231Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.000009Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.000268Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.002294Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.003572Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.013069Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.014290Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.015158Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.016241Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.023740Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.025834Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.027021Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.028591Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.029892Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.030796Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.032649Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.033432Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.035041Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.036398Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.036664Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.047719Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.049967Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.050511Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.050775Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.061552Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.062150Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:46:30.062455Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.777548Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.778354Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.787235Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.787506Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.787781Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.788066Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.798014Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.800711Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.801016Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.810292Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.810833Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.811561Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.818121Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.818755Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.819438Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.835385Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.836035Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.836717Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.839148Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.845483Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.852768Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.853516Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.856905Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.859752Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.865891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.868973Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.869253Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.869845Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.870145Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.883226Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.902695Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.909524Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.909868Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.916211Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.920655Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.921798Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.923140Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.925044Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.927518Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.928326Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.928594Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.967569Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.981667Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.983819Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.985827Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.990455Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:03.997172Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.001215Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.088016Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.206220Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.210465Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.281653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.286590Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.287839Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.289705Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.299827Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.300495Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.300811Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.301437Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.302106Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.302598Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.303312Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.305341Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.306033Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.306468Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.307160Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.308355Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.308357Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.309891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.310665Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.313208Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.313867Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.315484Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.315938Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.322140Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.323698Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.324344Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.328209Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.330886Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.331297Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.333303Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.335394Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.336612Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.337463Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.339010Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.339298Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.340732Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.341011Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.341549Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.341818Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.342357Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.342622Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.343152Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.343420Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.350496Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.350788Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.412275Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.412852Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.413735Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.414300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.415647Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.416192Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.416782Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.417369Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.418294Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.419631Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.420257Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.420878Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.421662Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.423022Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.423562Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.424861Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.425459Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.426565Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.426836Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.429269Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.430083Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.430608Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.431408Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.431945Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.432734Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.433179Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.433680Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.434557Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.435711Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.436764Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.460204Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.516558Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.553592Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.557947Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.571998Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.576624Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.584871Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.587855Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.588174Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.588490Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.589114Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.589714Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.590351Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.590676Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.591022Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.591860Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.595531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.625928Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.634997Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.635004Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.641917Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.645838Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.646458Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.647293Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.647897Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.654396Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.654849Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.655222Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.655809Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.656657Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.656662Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.657335Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.657647Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.658029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.658741Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.664620Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.672019Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.676095Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.679311Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.679588Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.680101Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.685773Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.690067Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.691806Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.696503Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.696845Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.711841Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.713643Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.723122Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.723967Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.724242Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.724509Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.738733Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.739047Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.740319Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.741202Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.741495Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.745001Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.752173Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.754732Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.755008Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.761998Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.762271Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.764300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.765177Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.767458Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.769120Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.769680Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.773584Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.774642Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.774917Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.776090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.777818Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.779096Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.782119Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.782403Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.784358Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.785103Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.787583Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.789172Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.791655Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.792044Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.805967Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.810349Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.818549Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.820067Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.820639Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.821774Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.822439Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.823236Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.825015Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.826179Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.828037Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.830306Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.832744Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.833079Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.833400Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.834350Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.835488Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.837092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.838437Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.839295Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.842799Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.844265Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.849977Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.857878Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.860920Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.862610Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.863214Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.864015Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.890277Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.890554Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.891078Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.893850Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.894118Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.894754Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.901747Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.903209Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.905023Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.906481Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.907633Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.908975Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.911158Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.911569Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.913960Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.915874Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.917178Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.921375Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.922209Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.923021Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.924235Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.924550Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.926547Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.926856Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.927839Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.928477Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.938890Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.939429Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.939691Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.940281Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.940838Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.941109Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.941653Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.943564Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.944004Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.944330Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.945015Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.945444Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.946069Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.947181Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.947768Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.948320Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.950294Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.950574Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.960300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.960664Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.961285Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.961625Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.962165Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.963468Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.964044Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.964859Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.965675Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.965951Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.967564Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.968109Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.968729Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.969071Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.970484Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.970752Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.971279Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.971541Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.973120Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.974171Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.975227Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.980617Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.980887Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.987437Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.991722Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.992029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.993506Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.994102Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.994709Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.995524Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.995797Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.996328Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.996599Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.997125Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.997392Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.997659Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.998205Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.998467Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.998728Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:04.999810Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.001200Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.001769Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.002672Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.003206Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.004790Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.005891Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.006730Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.007280Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.014851Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.015125Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.015949Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.016211Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.019724Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.020039Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.021092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.021610Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.022384Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.023718Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.023985Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.024531Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.024808Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.025133Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.025419Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.026698Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.027580Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.027841Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.028101Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.028882Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.029414Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.029682Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.031305Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.032619Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.033452Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.034015Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.035137Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.035469Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.036590Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.036861Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.037131Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.037673Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.037940Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.039299Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.039561Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.040090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.043079Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.043958Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.044294Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.045400Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.045666Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.045940Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.046201Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.046463Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.047507Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.048027Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.048298Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.048831Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.049142Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.049423Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.049697Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.052387Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.052749Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.053022Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.053290Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.054346Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.055127Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.061881Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.062413Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.064072Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.064623Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.065164Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.065704Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.066268Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.067171Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.068222Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.069251Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.071330Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.071861Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.072384Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.072650Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.072911Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.073435Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.074963Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.076082Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.077502Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.077772Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.078354Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.078889Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.079714Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.080270Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.080803Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.081337Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.082668Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.083209Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.083762Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.084029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.084300Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.084823Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.087678Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.088216Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.089014Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.089536Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.091899Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.092701Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.092971Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.093573Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.094128Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.094698Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.095496Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.096028Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.096552Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.097078Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.100917Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.101736Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.102801Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.103878Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.105210Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.106557Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.107107Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.108427Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.109206Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.110735Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.111767Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.112560Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.113095Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.113615Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.113894Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.115424Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.115694Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.116754Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.117324Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.118112Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.120214Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.120472Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.121540Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.122594Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.125886Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.126167Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.127243Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.130421Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.130716Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.131054Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.131380Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.131692Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.132077Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.132388Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.136403Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.137779Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.138061Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.138328Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.138949Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.139223Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.141409Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.142559Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.144089Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.145394Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.147092Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.154215Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.154548Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.154831Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.157846Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.158179Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.158964Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.159269Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.160029Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.160316Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.165693Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.166514Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.168452Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.169749Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.173861Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.174387Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.175168Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.175429Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.176199Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.177239Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.178151Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.178638Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.181216Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.181482Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.182003Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.182270Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.182550Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.182828Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.183370Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.183637Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.190278Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.194163Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.194448Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.194951Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.195456Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.195716Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.196246Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.196508Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.196803Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.197090Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.197603Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.198127Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.198391Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.198951Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.199215Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.199729Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.207509Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.208100Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.209167Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.209684Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.210212Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.210464Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.210978Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.211229Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.211743Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.212263Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.212793Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.213883Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.214207Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.218298Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.218612Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.218926Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.219216Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.219495Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:05.219782Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.094730Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.095296Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.096208Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.097255Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.097774Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.099177Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.099858Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.100159Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.103224Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.120930Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.121251Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.121254Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.121533Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.131262Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.131268Z WARN turborepo_lib::package_changes_watcher: file event lagged +2024-05-24T13:47:07.131552Z WARN turborepo_lib::package_changes_watcher: file event lagged diff --git a/package.json b/package.json new file mode 100644 index 0000000000..c31fa37d29 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "go-ten", + "version": "1.0.0", + "description": "go-ten", + "main": "index.js", + "directories": { + "lib": "lib" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ten-protocol/go-ten.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/ten-protocol/go-ten/issues" + }, + "homepage": "https://github.com/ten-protocol/go-ten#readme", + "dependencies": { + "turbo": "^1.13.3" + } +} diff --git a/packages/apis/.config/openapi-codegen.config.ts b/packages/apis/.config/openapi-codegen.config.ts new file mode 100644 index 0000000000..c23d51bdab --- /dev/null +++ b/packages/apis/.config/openapi-codegen.config.ts @@ -0,0 +1,28 @@ +// @ts-expect-error +import { defineConfig } from "@openapi-codegen/cli"; +import { + generateReactQueryComponents, + generateSchemaTypes, +} from "@openapi-codegen/typescript"; + +export default defineConfig({ + digest: { + from: { + relativePath: "./storage/digest-openapi.json", + source: "file", + }, + outputDir: "./src/api/codegen", + // @ts-expect-error + to: async (context) => { + const filenamePrefix = "digest"; + + const { schemasFiles } = await generateSchemaTypes(context, { + filenamePrefix, + }); + return await generateReactQueryComponents(context, { + filenamePrefix, + schemasFiles, + }); + }, + }, +}); diff --git a/packages/apis/.config/p2o.config.json b/packages/apis/.config/p2o.config.json new file mode 100644 index 0000000000..fae75fdf03 --- /dev/null +++ b/packages/apis/.config/p2o.config.json @@ -0,0 +1,4 @@ +{ + "outputFormat": "json", + "operationId": "auto" +} diff --git a/packages/apis/package.json b/packages/apis/package.json new file mode 100644 index 0000000000..48c54d2460 --- /dev/null +++ b/packages/apis/package.json @@ -0,0 +1,28 @@ +{ + "name": "@repo/apis", + "version": "0.0.0", + "private": true, + "scripts": { + "sync": "npm run api:generate", + "api:generate": "pnpm run convert:collection && npm run generate:fetcher", + "generate:fetcher": "npx openapi-codegen -c .config/openapi-codegen.config.ts digest", + "convert:collection": "pnpm exec p2o ./storage/digest-collection.json -f ./storage/digest-openapi.json -o .config/p2o.config.json" + }, + "dependencies": { + "@repo/shared": "workspace:*", + "@repo/typescript-config": "workspace:*", + "destr": "^2.0.2", + "effect": "^2.4.1", + "ofetch": "1.3.3", + "ramda": "^0.29.1", + "rxjs": "^7.8.1" + }, + "devDependencies": { + "@openapi-codegen/cli": "^2.0.0", + "@openapi-codegen/typescript": "^8.0.0", + "@types/ramda": "^0.29.10", + "postman-to-openapi": "^3.0.1", + "typescript": "5.3.3", + "vite": "^5.0.11" + } +} diff --git a/packages/apis/src/api/client.ts b/packages/apis/src/api/client.ts new file mode 100644 index 0000000000..1100f8edb8 --- /dev/null +++ b/packages/apis/src/api/client.ts @@ -0,0 +1,166 @@ +import { safeStr } from "@repo/shared/src/data.helpers"; +import { Match } from "effect"; +import { FetchError } from "ofetch"; +import { has, identity, is } from "ramda"; +import { + ApiError, + ApiErrors, + Okay, + ResponseType, + SafeRes, + UnknownError, +} from "./response-types"; + +export const resolveUrl = ( + url: string, + queryParams: Record = {}, + pathParams: Record = {}, +) => { + let query = new URLSearchParams(queryParams).toString(); + if (query) query = `?${query}`; + + return url.replace(/\{\w*\}/g, (key) => pathParams[key.slice(1, -1)]) + query; +}; + +export async function safeFetchResponse( + promise: Promise, +): Promise> { + try { + const value = await promise; + return resolveFetchResponse(value); + } catch (err: unknown) { + return resolveFetchError(err); + } +} + +export const resolveFetchResponse = (response: T): SafeRes => { + const hasError = has("error", response) && response.error === true; + const hasMessage = has("msg", response); + + const messageIsStr = hasMessage && typeof response?.msg === "string"; + + if (UnacceptedError.validate(response)) { + return UnacceptedError.respond(response); + } + + if (Array.isArray(response)) return Okay(response); + + if (hasError && hasMessage && is(Object, response?.msg)) + // @ts-expect-error Still trying to response structure + return ValidationError(response?.msg); + + if (hasError && hasMessage && messageIsStr) + return ApiError({ + message: response.msg as string, + + error: response.error, + }); + + if (response === undefined || response === null) { + return UnknownError({ + message: "Something went wrong", + value: response, + }); + } + + return Okay(response); +}; + +// biome-ignore lint/suspicious/noExplicitAny: Error type must be any +export function resolveFetchError(error: any): ApiErrors { + if ( + ["Network Error", "NetworkError"].some((str) => + safeStr(error?.message).includes(str), + ) + ) { + return ApiError({ + message: "Seems like you're offline. Please check your network", + }); + } + + return handleErrorByType(error); +} + +const handleErrorByType = ResponseType.pipe( + Match.tag("ApiError", identity), + Match.tag("ValidationError", identity), + Match.tag("UnknownError", identity), + Match.orElse((err) => handleRandomError(err)), +); + +function handleRandomError(error: unknown) { + const err = error as FetchError; + if (err instanceof FetchError) { + const { status = 400 } = guessRequestError(err); + const reason_for_failure = err?.data?.message || err.message; + + if (status === 404) + return ApiError({ message: "404: Resource not found", error: err }); + + if (401 === status) { + return ApiError({ + message: "Unable to process request. You're unauthorized", + error: err, + }); + } + + if (403 === status) { + return ApiError({ + message: "You do not have permission to perform this operation", + error: err, + }); + } + + if (status >= 400 && status < 500) + return ApiError({ message: reason_for_failure, error: err }); + + if (status >= 500) + return ApiError({ message: reason_for_failure, error: err }); + } + + const err_msg = has("message", error) ? safeStr(error.message) : ""; + + if (err_msg.includes("")) { + return ApiError({ + message: "Something new wrong. Server didn't respond", + }); + } + + return ApiError({ message: err_msg }); + + function guessRequestError(err: FetchError) { + return err instanceof FetchError + ? err + : { status: 0, statusText: "UNKNOWN" }; + } +} + +export type ResponseResolver = { + validate: (data: unknown) => boolean; + respond: (data: T) => ApiErrors; + interceptResponse: (data: T) => T; +}; + +export const UnacceptedError: ResponseResolver = { + validate(response: unknown) { + return ( + has("accepted", response) && + has("message", response) && + response.accepted === false + ); + }, + + respond(response: unknown) { + return ApiError({ + // @ts-expect-error + message: response?.message ?? "Unknown Error...", + error: response, + }); + }, + + interceptResponse(response) { + if (!this.validate(response)) return response; + + throw this.respond(response); + }, +}; diff --git a/packages/apis/src/api/codegen/digestComponents.ts b/packages/apis/src/api/codegen/digestComponents.ts new file mode 100644 index 0000000000..d4eea5f3f6 --- /dev/null +++ b/packages/apis/src/api/codegen/digestComponents.ts @@ -0,0 +1,1078 @@ +/** + * Generated by @openapi-codegen + * + * @version 1.0.0 + */ +import * as reactQuery from "@tanstack/react-query"; +import { useDigestContext, DigestContext } from "./digestContext"; +import type * as Fetcher from "./digestFetcher"; +import { digestFetch } from "./digestFetcher"; + +export type AllTeamMembersError = Fetcher.ErrorWrapper; + +export type AllTeamMembersVariables = DigestContext["fetcherOptions"]; + +export const fetchAllTeamMembers = ( + variables: AllTeamMembersVariables, + signal?: AbortSignal +) => + digestFetch, AllTeamMembersError, undefined, {}, {}, {}>({ + url: "/org/team", + method: "get", + ...variables, + signal, + }); + +export const useAllTeamMembers = >( + variables: AllTeamMembersVariables, + options?: Omit< + reactQuery.UseQueryOptions, AllTeamMembersError, TData>, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery, AllTeamMembersError, TData>({ + queryKey: queryKeyFn({ + path: "/org/team", + operationId: "allTeamMembers", + variables, + }), + queryFn: ({ signal }) => + fetchAllTeamMembers({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type DeleteTeamMemberError = Fetcher.ErrorWrapper; + +export type DeleteTeamMemberVariables = DigestContext["fetcherOptions"]; + +export const fetchDeleteTeamMember = ( + variables: DeleteTeamMemberVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/org/team/c718b157-4fe4-4bb1-adc4-787e95b239a2", + method: "delete", + ...variables, + signal, + }); + +export const useDeleteTeamMember = ( + options?: Omit< + reactQuery.UseMutationOptions< + undefined, + DeleteTeamMemberError, + DeleteTeamMemberVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + undefined, + DeleteTeamMemberError, + DeleteTeamMemberVariables + >({ + mutationFn: (variables: DeleteTeamMemberVariables) => + fetchDeleteTeamMember({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type LoginOrgError = Fetcher.ErrorWrapper; + +export type LoginOrgVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchLoginOrg = ( + variables: LoginOrgVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + LoginOrgError, + Record, + {}, + {}, + {} + >({ url: "/org/auth/login", method: "post", ...variables, signal }); + +export const useLoginOrg = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + LoginOrgError, + LoginOrgVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + LoginOrgError, + LoginOrgVariables + >({ + mutationFn: (variables: LoginOrgVariables) => + fetchLoginOrg({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type LogoutOrgError = Fetcher.ErrorWrapper; + +export type LogoutOrgVariables = DigestContext["fetcherOptions"]; + +export const fetchLogoutOrg = ( + variables: LogoutOrgVariables, + signal?: AbortSignal +) => + digestFetch, LogoutOrgError, undefined, {}, {}, {}>({ + url: "/org/auth/logout", + method: "post", + ...variables, + signal, + }); + +export const useLogoutOrg = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + LogoutOrgError, + LogoutOrgVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + LogoutOrgError, + LogoutOrgVariables + >({ + mutationFn: (variables: LogoutOrgVariables) => + fetchLogoutOrg({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type ProfileError = Fetcher.ErrorWrapper; + +export type ProfileVariables = DigestContext["fetcherOptions"]; + +export const fetchProfile = ( + variables: ProfileVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/org/profile", + method: "get", + ...variables, + signal, + }); + +export const useProfile = ( + variables: ProfileVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/org/profile", + operationId: "profile", + variables, + }), + queryFn: ({ signal }) => + fetchProfile({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type GetMetricsError = Fetcher.ErrorWrapper; + +export type GetMetricsVariables = DigestContext["fetcherOptions"]; + +export const fetchGetMetrics = ( + variables: GetMetricsVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/metrics", + method: "get", + ...variables, + signal, + }); + +export const useGetMetrics = ( + variables: GetMetricsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/metrics", + operationId: "getMetrics", + variables, + }), + queryFn: ({ signal }) => + fetchGetMetrics({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type CustomerGrowthMetricsQueryParams = { + /** + * 1wk, 1mth, 1y, all. default: 1mth + */ + range?: string; +}; + +export type CustomerGrowthMetricsError = Fetcher.ErrorWrapper; + +export type CustomerGrowthMetricsVariables = { + queryParams?: CustomerGrowthMetricsQueryParams; +} & DigestContext["fetcherOptions"]; + +export const fetchCustomerGrowthMetrics = ( + variables: CustomerGrowthMetricsVariables, + signal?: AbortSignal +) => + digestFetch< + undefined, + CustomerGrowthMetricsError, + undefined, + {}, + CustomerGrowthMetricsQueryParams, + {} + >({ url: "/kpi/customers", method: "get", ...variables, signal }); + +export const useCustomerGrowthMetrics = ( + variables: CustomerGrowthMetricsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/kpi/customers", + operationId: "customerGrowthMetrics", + variables, + }), + queryFn: ({ signal }) => + fetchCustomerGrowthMetrics({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type CreateAMealCategoryError = Fetcher.ErrorWrapper; + +export type CreateAMealCategoryVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchCreateAMealCategory = ( + variables: CreateAMealCategoryVariables, + signal?: AbortSignal +) => + digestFetch< + undefined, + CreateAMealCategoryError, + Record, + {}, + {}, + {} + >({ url: "/categories/meals", method: "post", ...variables, signal }); + +export const useCreateAMealCategory = ( + options?: Omit< + reactQuery.UseMutationOptions< + undefined, + CreateAMealCategoryError, + CreateAMealCategoryVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + undefined, + CreateAMealCategoryError, + CreateAMealCategoryVariables + >({ + mutationFn: (variables: CreateAMealCategoryVariables) => + fetchCreateAMealCategory({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type GetAllCategoriesError = Fetcher.ErrorWrapper; + +export type GetAllCategoriesVariables = DigestContext["fetcherOptions"]; + +export const fetchGetAllCategories = ( + variables: GetAllCategoriesVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/categories/meals", + method: "get", + ...variables, + signal, + }); + +export const useGetAllCategories = ( + variables: GetAllCategoriesVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/categories/meals", + operationId: "getAllCategories", + variables, + }), + queryFn: ({ signal }) => + fetchGetAllCategories({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type DeleteCategoryError = Fetcher.ErrorWrapper; + +export type DeleteCategoryVariables = DigestContext["fetcherOptions"]; + +export const fetchDeleteCategory = ( + variables: DeleteCategoryVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/categories/05fa9976-2366-479b-8854-21727fb78152", + method: "delete", + ...variables, + signal, + }); + +export const useDeleteCategory = ( + options?: Omit< + reactQuery.UseMutationOptions< + undefined, + DeleteCategoryError, + DeleteCategoryVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + undefined, + DeleteCategoryError, + DeleteCategoryVariables + >({ + mutationFn: (variables: DeleteCategoryVariables) => + fetchDeleteCategory({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type GetIngredientsQueryParams = { + page?: number; + limit?: number; +}; + +export type GetIngredientsError = Fetcher.ErrorWrapper; + +export type GetIngredientsVariables = { + queryParams?: GetIngredientsQueryParams; +} & DigestContext["fetcherOptions"]; + +export const fetchGetIngredients = ( + variables: GetIngredientsVariables, + signal?: AbortSignal +) => + digestFetch< + undefined, + GetIngredientsError, + undefined, + {}, + GetIngredientsQueryParams, + {} + >({ url: "/ingredients", method: "get", ...variables, signal }); + +export const useGetIngredients = ( + variables: GetIngredientsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/ingredients", + operationId: "getIngredients", + variables, + }), + queryFn: ({ signal }) => + fetchGetIngredients({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type CreateMeasurementError = Fetcher.ErrorWrapper; + +export type CreateMeasurementVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchCreateMeasurement = ( + variables: CreateMeasurementVariables, + signal?: AbortSignal +) => + digestFetch< + undefined, + CreateMeasurementError, + Record, + {}, + {}, + {} + >({ url: "/ingredients", method: "post", ...variables, signal }); + +export const useCreateMeasurement = ( + options?: Omit< + reactQuery.UseMutationOptions< + undefined, + CreateMeasurementError, + CreateMeasurementVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + undefined, + CreateMeasurementError, + CreateMeasurementVariables + >({ + mutationFn: (variables: CreateMeasurementVariables) => + fetchCreateMeasurement({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type CreateMealError = Fetcher.ErrorWrapper; + +export type CreateMealVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchCreateMeal = ( + variables: CreateMealVariables, + signal?: AbortSignal +) => + digestFetch, {}, {}, {}>({ + url: "/dishes", + method: "post", + ...variables, + signal, + }); + +export const useCreateMeal = ( + options?: Omit< + reactQuery.UseMutationOptions< + undefined, + CreateMealError, + CreateMealVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + undefined, + CreateMealError, + CreateMealVariables + >({ + mutationFn: (variables: CreateMealVariables) => + fetchCreateMeal({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type GetMealsError = Fetcher.ErrorWrapper; + +export type GetMealsVariables = DigestContext["fetcherOptions"]; + +export const fetchGetMeals = ( + variables: GetMealsVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/dishes", + method: "get", + ...variables, + signal, + }); + +export const useGetMeals = ( + variables: GetMealsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/dishes", + operationId: "getMeals", + variables, + }), + queryFn: ({ signal }) => + fetchGetMeals({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type CreateARecipeError = Fetcher.ErrorWrapper; + +export type CreateARecipeVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchCreateARecipe = ( + variables: CreateARecipeVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + CreateARecipeError, + Record, + {}, + {}, + {} + >({ url: "/recipes", method: "post", ...variables, signal }); + +export const useCreateARecipe = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + CreateARecipeError, + CreateARecipeVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + CreateARecipeError, + CreateARecipeVariables + >({ + mutationFn: (variables: CreateARecipeVariables) => + fetchCreateARecipe({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type AllRecipesQueryParams = { + limit?: number; + page?: number; +}; + +export type AllRecipesError = Fetcher.ErrorWrapper; + +export type AllRecipesVariables = { + queryParams?: AllRecipesQueryParams; +} & DigestContext["fetcherOptions"]; + +export const fetchAllRecipes = ( + variables: AllRecipesVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + AllRecipesError, + undefined, + {}, + AllRecipesQueryParams, + {} + >({ url: "/recipes", method: "get", ...variables, signal }); + +export const useAllRecipes = >( + variables: AllRecipesVariables, + options?: Omit< + reactQuery.UseQueryOptions, AllRecipesError, TData>, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery, AllRecipesError, TData>({ + queryKey: queryKeyFn({ + path: "/recipes", + operationId: "allRecipes", + variables, + }), + queryFn: ({ signal }) => + fetchAllRecipes({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type GetARecipePathParams = { + recipeId: string; +}; + +export type GetARecipeError = Fetcher.ErrorWrapper; + +export type GetARecipeVariables = { + pathParams: GetARecipePathParams; +} & DigestContext["fetcherOptions"]; + +export const fetchGetARecipe = ( + variables: GetARecipeVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + GetARecipeError, + undefined, + {}, + {}, + GetARecipePathParams + >({ url: "/recipes/{recipeId}", method: "get", ...variables, signal }); + +export const useGetARecipe = >( + variables: GetARecipeVariables, + options?: Omit< + reactQuery.UseQueryOptions, GetARecipeError, TData>, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery, GetARecipeError, TData>({ + queryKey: queryKeyFn({ + path: "/recipes/{recipeId}", + operationId: "getARecipe", + variables, + }), + queryFn: ({ signal }) => + fetchGetARecipe({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type GetQuestionsError = Fetcher.ErrorWrapper; + +export type GetQuestionsVariables = DigestContext["fetcherOptions"]; + +export const fetchGetQuestions = ( + variables: GetQuestionsVariables, + signal?: AbortSignal +) => + digestFetch, GetQuestionsError, undefined, {}, {}, {}>({ + url: "/org/onboarding/questions", + method: "get", + ...variables, + signal, + }); + +export const useGetQuestions = >( + variables: GetQuestionsVariables, + options?: Omit< + reactQuery.UseQueryOptions, GetQuestionsError, TData>, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery, GetQuestionsError, TData>({ + queryKey: queryKeyFn({ + path: "/org/onboarding/questions", + operationId: "getQuestions", + variables, + }), + queryFn: ({ signal }) => + fetchGetQuestions({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type CreateQuestionError = Fetcher.ErrorWrapper; + +export type CreateQuestionVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchCreateQuestion = ( + variables: CreateQuestionVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + CreateQuestionError, + Record, + {}, + {}, + {} + >({ url: "/org/onboarding/questions", method: "post", ...variables, signal }); + +export const useCreateQuestion = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + CreateQuestionError, + CreateQuestionVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + CreateQuestionError, + CreateQuestionVariables + >({ + mutationFn: (variables: CreateQuestionVariables) => + fetchCreateQuestion({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type UpdateQuestionPathParams = { + questionId: string; +}; + +export type UpdateQuestionError = Fetcher.ErrorWrapper; + +export type UpdateQuestionVariables = { + body?: Record; + pathParams: UpdateQuestionPathParams; +} & DigestContext["fetcherOptions"]; + +export const fetchUpdateQuestion = ( + variables: UpdateQuestionVariables, + signal?: AbortSignal +) => + digestFetch< + Record, + UpdateQuestionError, + Record, + {}, + {}, + UpdateQuestionPathParams + >({ + url: "/org/onboarding/questions/{questionId}", + method: "post", + ...variables, + signal, + }); + +export const useUpdateQuestion = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + UpdateQuestionError, + UpdateQuestionVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + UpdateQuestionError, + UpdateQuestionVariables + >({ + mutationFn: (variables: UpdateQuestionVariables) => + fetchUpdateQuestion({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type GetUsersQueryParams = { + page?: number; + limit?: number; + range_created_at?: string; +}; + +export type GetUsersError = Fetcher.ErrorWrapper; + +export type GetUsersVariables = { + queryParams?: GetUsersQueryParams; +} & DigestContext["fetcherOptions"]; + +export const fetchGetUsers = ( + variables: GetUsersVariables, + signal?: AbortSignal +) => + digestFetch( + { url: "/users", method: "get", ...variables, signal } + ); + +export const useGetUsers = ( + variables: GetUsersVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/users", + operationId: "getUsers", + variables, + }), + queryFn: ({ signal }) => + fetchGetUsers({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type PaymentsQueryParams = { + /** + * (optional) + */ + user_id?: string; +}; + +export type PaymentsError = Fetcher.ErrorWrapper; + +export type PaymentsVariables = { + queryParams?: PaymentsQueryParams; +} & DigestContext["fetcherOptions"]; + +export const fetchPayments = ( + variables: PaymentsVariables, + signal?: AbortSignal +) => + digestFetch( + { url: "/payments", method: "get", ...variables, signal } + ); + +export const usePayments = ( + variables: PaymentsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/payments", + operationId: "payments", + variables, + }), + queryFn: ({ signal }) => + fetchPayments({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type LoginError = Fetcher.ErrorWrapper; + +export type LoginVariables = { + body?: Record; +} & DigestContext["fetcherOptions"]; + +export const fetchLogin = (variables: LoginVariables, signal?: AbortSignal) => + digestFetch, LoginError, Record, {}, {}, {}>( + { url: "/auth/login", method: "post", ...variables, signal } + ); + +export const useLogin = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + LoginError, + LoginVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + LoginError, + LoginVariables + >({ + mutationFn: (variables: LoginVariables) => + fetchLogin({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type LogoutError = Fetcher.ErrorWrapper; + +export type LogoutVariables = DigestContext["fetcherOptions"]; + +export const fetchLogout = (variables: LogoutVariables, signal?: AbortSignal) => + digestFetch, LogoutError, undefined, {}, {}, {}>({ + url: "/auth/logout", + method: "post", + ...variables, + signal, + }); + +export const useLogout = ( + options?: Omit< + reactQuery.UseMutationOptions< + Record, + LogoutError, + LogoutVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useDigestContext(); + return reactQuery.useMutation< + Record, + LogoutError, + LogoutVariables + >({ + mutationFn: (variables: LogoutVariables) => + fetchLogout({ ...fetcherOptions, ...variables }), + ...options, + }); +}; + +export type OnboardingQuestionsError = Fetcher.ErrorWrapper; + +export type OnboardingQuestionsVariables = DigestContext["fetcherOptions"]; + +export const fetchOnboardingQuestions = ( + variables: OnboardingQuestionsVariables, + signal?: AbortSignal +) => + digestFetch({ + url: "/onboarding/questions", + method: "get", + ...variables, + signal, + }); + +export const useOnboardingQuestions = ( + variables: OnboardingQuestionsVariables, + options?: Omit< + reactQuery.UseQueryOptions, + "queryKey" | "queryFn" | "initialData" + > +) => { + const { fetcherOptions, queryOptions, queryKeyFn } = + useDigestContext(options); + return reactQuery.useQuery({ + queryKey: queryKeyFn({ + path: "/onboarding/questions", + operationId: "onboardingQuestions", + variables, + }), + queryFn: ({ signal }) => + fetchOnboardingQuestions({ ...fetcherOptions, ...variables }, signal), + ...options, + ...queryOptions, + }); +}; + +export type QueryOperation = + | { + path: "/org/team"; + operationId: "allTeamMembers"; + variables: AllTeamMembersVariables; + } + | { + path: "/org/profile"; + operationId: "profile"; + variables: ProfileVariables; + } + | { + path: "/metrics"; + operationId: "getMetrics"; + variables: GetMetricsVariables; + } + | { + path: "/kpi/customers"; + operationId: "customerGrowthMetrics"; + variables: CustomerGrowthMetricsVariables; + } + | { + path: "/categories/meals"; + operationId: "getAllCategories"; + variables: GetAllCategoriesVariables; + } + | { + path: "/ingredients"; + operationId: "getIngredients"; + variables: GetIngredientsVariables; + } + | { + path: "/dishes"; + operationId: "getMeals"; + variables: GetMealsVariables; + } + | { + path: "/recipes"; + operationId: "allRecipes"; + variables: AllRecipesVariables; + } + | { + path: "/recipes/{recipeId}"; + operationId: "getARecipe"; + variables: GetARecipeVariables; + } + | { + path: "/org/onboarding/questions"; + operationId: "getQuestions"; + variables: GetQuestionsVariables; + } + | { + path: "/users"; + operationId: "getUsers"; + variables: GetUsersVariables; + } + | { + path: "/payments"; + operationId: "payments"; + variables: PaymentsVariables; + } + | { + path: "/onboarding/questions"; + operationId: "onboardingQuestions"; + variables: OnboardingQuestionsVariables; + }; diff --git a/packages/apis/src/api/codegen/digestContext.ts b/packages/apis/src/api/codegen/digestContext.ts new file mode 100644 index 0000000000..b5818d0cb3 --- /dev/null +++ b/packages/apis/src/api/codegen/digestContext.ts @@ -0,0 +1,99 @@ +import type { QueryKey, UseQueryOptions } from "@tanstack/react-query"; +import { QueryOperation } from "./digestComponents"; + +export type DigestContext = { + fetcherOptions: { + /** + * Headers to inject in the fetcher + */ + headers?: {}; + /** + * Query params to inject in the fetcher + */ + queryParams?: {}; + }; + queryOptions: { + /** + * Set this to `false` to disable automatic refetching when the query mounts or changes query keys. + * Defaults to `true`. + */ + enabled?: boolean; + }; + /** + * Query key manager. + */ + queryKeyFn: (operation: QueryOperation) => QueryKey; +}; + +/** + * Context injected into every react-query hook wrappers + * + * @param queryOptions options from the useQuery wrapper + */ +export function useDigestContext< + TQueryFnData = unknown, + TError = unknown, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + _queryOptions?: Omit< + UseQueryOptions, + "queryKey" | "queryFn" + >, +): DigestContext { + return { + fetcherOptions: {}, + queryOptions: {}, + queryKeyFn, + }; +} + +export const queryKeyFn = (operation: QueryOperation) => { + const queryKey: unknown[] = hasPathParams(operation) + ? operation.path + .split("/") + .filter(Boolean) + .map((i) => resolvePathParam(i, operation.variables.pathParams)) + : operation.path.split("/").filter(Boolean); + + if (hasQueryParams(operation)) { + queryKey.push(operation.variables.queryParams); + } + + if (hasBody(operation)) { + queryKey.push(operation.variables.body); + } + + return queryKey; +}; +// Helpers +const resolvePathParam = (key: string, pathParams: Record) => { + if (key.startsWith("{") && key.endsWith("}")) { + return pathParams[key.slice(1, -1)]; + } + return key; +}; + +const hasPathParams = ( + operation: QueryOperation, +): operation is QueryOperation & { + variables: { pathParams: Record }; +} => { + return Boolean((operation.variables as any).pathParams); +}; + +const hasBody = ( + operation: QueryOperation, +): operation is QueryOperation & { + variables: { body: Record }; +} => { + return Boolean((operation.variables as any).body); +}; + +const hasQueryParams = ( + operation: QueryOperation, +): operation is QueryOperation & { + variables: { queryParams: Record }; +} => { + return Boolean((operation.variables as any).queryParams); +}; diff --git a/packages/apis/src/api/codegen/digestFetcher.ts b/packages/apis/src/api/codegen/digestFetcher.ts new file mode 100644 index 0000000000..c432c87f52 --- /dev/null +++ b/packages/apis/src/api/codegen/digestFetcher.ts @@ -0,0 +1,94 @@ +import { resolveFetchError, UnacceptedError, resolveUrl } from "../client"; +import { FetchError, FetchOptions, ofetch } from "ofetch"; +import { authSubject } from "../../libs/observables/auth"; +import { destr } from "destr"; +import { ApiError } from "../response-types"; +import { DigestContext } from "./digestContext"; + +export type ErrorWrapper = + | TError + | { status: "unknown"; payload: string }; + +export type DigestFetcherOptions = { + url: string; + method: string; + body?: TBody; + headers?: THeaders; + queryParams?: TQueryParams; + pathParams?: TPathParams; + signal?: AbortSignal; +} & DigestContext["fetcherOptions"]; + +export async function digestFetch< + TData, + TError, + TBody extends Record | FormData | undefined | null, + THeaders extends {}, + TQueryParams extends {}, + TPathParams extends {}, +>( + params: DigestFetcherOptions, +): Promise { + const headers: HeadersInit = { + "Content-Type": "application/json", + ...params.headers, + }; + + try { + return UnacceptedError.interceptResponse( + await baseFetcherFn({ + ...params, + query: params.queryParams, + headers, + url: resolveUrl(params.url, params.queryParams, params.pathParams), + }), + ); + } catch (error) { + return Promise.reject(resolveFetchError(error)); + } +} + +export async function baseFetcherFn( + params: { url: string } & FetchOptions, +): Promise { + try { + const { url, ...rest } = params; + const request = api(url, rest as FetchOptions<"json">); + + // @ts-expect-error + return Promise.race([ + new Promise((_, rej) => + setTimeout( + () => rej(ApiError({ message: "Request Timed out" })), + 30000, + ), + ), + request, + ]); + } catch (err) { + const xhrErr = err as FetchError; + if (xhrErr instanceof FetchError) { + if (xhrErr?.response?.status === 401) { + authSubject.next({ type: "unauthorized" }); + } + } + throw err; + } +} + +function resolveEnvVariable( + record: Record, + env_variable: string, +): string { + if (env_variable in record) { + return String(record[env_variable]); + } + return "--"; +} + +const url = resolveEnvVariable(import.meta.env || process.env, "VITE_API_URL"); + +const api = ofetch.create({ + baseURL: url, + parseResponse: destr, +}); diff --git a/packages/apis/src/api/response-types.ts b/packages/apis/src/api/response-types.ts new file mode 100644 index 0000000000..d0aa8ce394 --- /dev/null +++ b/packages/apis/src/api/response-types.ts @@ -0,0 +1,38 @@ +import { Data, Match } from "effect"; + +interface ApiError { + readonly _tag: "ApiError"; // the tag + message: string; + error?: unknown; +} + +interface ValidationError { + readonly _tag: "ValidationError"; // the tag + messages: Record; +} + +interface UnknownError { + readonly _tag: "UnknownError"; // the tag + message: string; + value: unknown; +} + +export interface Okay { + readonly _tag: "Okay"; // the tag + value: T; +} + +export const ApiError = Data.tagged("ApiError"); +export const ValidationError = Data.tagged("ValidationError"); +export const UnknownError = Data.tagged("UnknownError"); + +export const Okay = (data: T) => { + const Constructor = Data.case>(); + return Constructor({ _tag: "Okay", value: data }); +}; + +export type ApiErrors = ValidationError | ApiError | UnknownError; + +export type SafeRes = ApiErrors | Okay; + +export const ResponseType = Match.type>(); diff --git a/packages/apis/src/libs/index.ts b/packages/apis/src/libs/index.ts new file mode 100644 index 0000000000..fb8660726b --- /dev/null +++ b/packages/apis/src/libs/index.ts @@ -0,0 +1,18 @@ +import { destr } from "destr"; +import { is } from "ramda"; + +type AuthCredentials = { + id: string; + accessToken: string; + refreshToken: string; + expiresIn: number; + tokenType: string; +}; + +export function getAuthData(): AuthCredentials | undefined { + const auth_data = destr(localStorage.getItem("authentication")); + + if (!is(Object, auth_data)) return undefined; + + return auth_data; +} diff --git a/packages/apis/src/libs/observables/auth.ts b/packages/apis/src/libs/observables/auth.ts new file mode 100644 index 0000000000..8ea240789c --- /dev/null +++ b/packages/apis/src/libs/observables/auth.ts @@ -0,0 +1,5 @@ +import { Subject } from "rxjs"; + +type AuthEvents = { type: "unauthorized" }; + +export const authSubject = new Subject(); diff --git a/packages/apis/storage/digest-collection.json b/packages/apis/storage/digest-collection.json new file mode 100644 index 0000000000..217409b10f --- /dev/null +++ b/packages/apis/storage/digest-collection.json @@ -0,0 +1,1287 @@ +{ + "info": { + "_postman_id": "3008e2f7-16cb-4ab1-8822-4cded1fc9991", + "name": "Digest", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "2691360" + }, + "item": [ + { + "name": "Org", + "item": [ + { + "name": "Team", + "item": [ + { + "name": "All Team members", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/team", + "host": ["{{baseUrl}}"], + "path": ["org", "team"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:3006/api/v1/org/team", + "protocol": "http", + "host": ["localhost"], + "port": "3006", + "path": ["api", "v1", "org", "team"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Thu, 11 Apr 2024 04:24:28 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "502" + } + ], + "cookie": [], + "body": "{\n \"data\": [\n {\n \"id\": \"81c7e4a4-19cf-48a7-bd02-f07fd239e8c4\",\n \"first_name\": \"Joseph\",\n \"password\": \"$argon2id$v=19$m=19456,t=2,p=1$4KmqjtSTFuUANlxHA+4Zxg$RXVfFWxe3Md4ZxtdMaz/lWRwsF9eM1eoWzgOerynlPM\",\n \"last_name\": \"Owonvwon\",\n \"email\": \"joseph.owonwo@gmail.com\",\n \"role\": \"OWNER\",\n \"created_at\": \"2024-04-11T01:52:52.330Z\",\n \"updated_at\": null,\n \"deleted_at\": null\n }\n ],\n \"meta\": {\n \"current_page\": 1,\n \"per_page\": 25,\n \"total\": 1\n }\n}" + } + ] + }, + { + "name": "Delete Team member", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/team/c718b157-4fe4-4bb1-adc4-787e95b239a2", + "host": ["{{baseUrl}}"], + "path": [ + "org", + "team", + "c718b157-4fe4-4bb1-adc4-787e95b239a2" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Auth", + "item": [ + { + "name": "Login - Org", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const response = pm.response.json()", + "", + "if (response?.data?.access_token)", + " pm.environment.set(\"accessToken\", response.data.access_token);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"email\": \"joseph.owonwo@gmail.com\",\n \"password\": \"helloman\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/auth/login", + "host": ["{{baseUrl}}"], + "path": ["org", "auth", "login"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"email\": \"joseph.owonwo@gmail.com\",\n \"password\": \"helloman\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:3006/api/v1/auth/login", + "protocol": "http", + "host": ["localhost"], + "port": "3006", + "path": ["api", "v1", "auth", "login"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Mon, 08 Apr 2024 03:18:00 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "158" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Login successful\",\n \"data\": {\n \"access_token\": \"6wfgh44amvxok4twm08v7cimg5k3065ay1oklioh\",\n \"expires\": \"2024-05-08T03:18:00.035Z\"\n }\n}" + } + ] + }, + { + "name": "Logout - Org", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/auth/logout", + "host": ["{{baseUrl}}"], + "path": ["org", "auth", "logout"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "url": { + "raw": "http://localhost:3006/api/v1/auth/logout", + "protocol": "http", + "host": ["localhost"], + "port": "3006", + "path": ["api", "v1", "auth", "logout"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Wed, 10 Apr 2024 01:38:00 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "37" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Session terminated\"\n}" + } + ] + }, + { + "name": "Profile", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/profile", + "host": ["{{baseUrl}}"], + "path": ["org", "profile"] + } + }, + "response": [] + } + ] + }, + { + "name": "Metrics", + "item": [ + { + "name": "Get Metrics", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/metrics", + "host": ["{{baseUrl}}"], + "path": ["metrics"] + } + }, + "response": [] + }, + { + "name": "Customer Growth Metrics", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/kpi/customers?range=1mth", + "host": ["{{baseUrl}}"], + "path": ["kpi", "customers"], + "query": [ + { + "key": "range", + "value": "1mth", + "description": "1wk, 1mth, 1y, all. default: 1mth" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "Create a Meal Category", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Pastries\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/categories/meals", + "host": ["{{baseUrl}}"], + "path": ["categories", "meals"] + } + }, + "response": [] + }, + { + "name": "Get all categories", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Pastries\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/categories/meals", + "host": ["{{baseUrl}}"], + "path": ["categories", "meals"] + } + }, + "response": [] + }, + { + "name": "Delete Category", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{baseUrl}}/categories/05fa9976-2366-479b-8854-21727fb78152", + "host": ["{{baseUrl}}"], + "path": ["categories", "05fa9976-2366-479b-8854-21727fb78152"] + } + }, + "response": [] + } + ] + }, + { + "name": "Ingredients", + "item": [ + { + "name": "Get Ingredients", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/ingredients?page=1&limit=12", + "host": ["{{baseUrl}}"], + "path": ["ingredients"], + "query": [ + { + "key": "page", + "value": "1" + }, + { + "key": "limit", + "value": "12" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Ingredients", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Vanilla Extract\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/ingredients", + "host": ["{{baseUrl}}"], + "path": ["ingredients"] + } + }, + "response": [] + }, + { + "name": "Create Measurement", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Vanilla Extract\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/ingredients", + "host": ["{{baseUrl}}"], + "path": ["ingredients"] + } + }, + "response": [] + } + ] + }, + { + "name": "Dishes", + "item": [ + { + "name": "Create Meal", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Peppered snail and crab shell\",\n \"description\": \"{{$randomLoremParagraph}}\",\n \"status\": \"DRAFT\",\n \"category\": [4],\n \"updated_at\": \"{{$isoTimestamp}}\",\n \"created_at\": \"{{$isoTimestamp}}\",\n \"video_url\": \"https://youtube.com/watch?q=ve9320a\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/dishes", + "host": ["{{baseUrl}}"], + "path": ["dishes"] + } + }, + "response": [] + }, + { + "name": "Get Meals", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"Peppered snail and crab shell\",\n \"description\": \"{{$randomLoremParagraph}}\",\n \"status\": \"DRAFT\",\n \"category\": [4],\n \"updated_at\": \"{{$isoTimestamp}}\",\n \"created_at\": \"{{$isoTimestamp}}\",\n \"video_url\": \"https://youtube.com/watch?q=ve9320a\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/dishes", + "host": ["{{baseUrl}}"], + "path": ["dishes"] + } + }, + "response": [] + } + ] + }, + { + "name": "Recipes", + "item": [ + { + "name": "Create a Recipe", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"meal_id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"serving\": 2,\n \"cooking_time\": 120, // 2 hours. base unit is `seconds`\n \"ingredients\": [\n {\n \"measurement_id\": 1,\n \"ingredient_id\": 1,\n \"quantity\": 0.5\n }\n ],\n \"steps\": [\n {\n \"order\": 1,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n },\n {\n \"order\": 2,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/recipes", + "host": ["{{baseUrl}}"], + "path": ["recipes"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"meal_id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"serving\": 2,\n \"cooking_time\": 120, // 2 hours. base unit is `seconds`\n \"ingredients\": [\n {\n \"measurement_id\": 1,\n \"ingredient_id\": 1,\n \"quantity\": 0.5\n }\n ],\n \"steps\": [\n {\n \"order\": 1,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n },\n {\n \"order\": 2,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/recipes", + "host": ["{{baseUrl}}"], + "path": ["recipes"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Wed, 27 Mar 2024 21:39:42 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "251" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Recipe created\",\n \"data\": {\n \"serial\": 8,\n \"id\": \"1b7356e7-de71-4fa0-9ea1-13766dd2b49b\",\n \"serving\": 2,\n \"cooking_time\": 120,\n \"created_at\": \"2024-03-27T21:39:35.732Z\",\n \"updated_at\": \"2024-03-27T21:39:35.732Z\"\n }\n}" + } + ] + }, + { + "name": "All Recipes", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/recipes?limit=10&page=1", + "host": ["{{baseUrl}}"], + "path": ["recipes"], + "query": [ + { + "key": "limit", + "value": "10" + }, + { + "key": "page", + "value": "1" + } + ] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"meal_id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"serving\": 2,\n \"cooking_time\": 120, // 2 hours. base unit is `seconds`\n \"ingredients\": [\n {\n \"measurement_id\": 1,\n \"ingredient_id\": 1,\n \"quantity\": 0.5\n }\n ],\n \"steps\": [\n {\n \"order\": 1,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n },\n {\n \"order\": 2,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/recipes", + "host": ["{{baseUrl}}"], + "path": ["recipes"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Wed, 27 Mar 2024 21:39:42 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "251" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Recipe created\",\n \"data\": {\n \"serial\": 8,\n \"id\": \"1b7356e7-de71-4fa0-9ea1-13766dd2b49b\",\n \"serving\": 2,\n \"cooking_time\": 120,\n \"created_at\": \"2024-03-27T21:39:35.732Z\",\n \"updated_at\": \"2024-03-27T21:39:35.732Z\"\n }\n}" + }, + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/recipes?pageSize=2&pageNumber=2", + "host": ["{{baseUrl}}"], + "path": ["recipes"], + "query": [ + { + "key": "pageSize", + "value": "2" + }, + { + "key": "pageNumber", + "value": "2" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Thu, 28 Mar 2024 01:06:42 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "1750" + } + ], + "cookie": [], + "body": "{\n \"data\": [\n {\n \"serial\": 8,\n \"id\": \"1b7356e7-de71-4fa0-9ea1-13766dd2b49b\",\n \"serving\": 2,\n \"cooking_time\": 120,\n \"created_at\": \"2024-03-27T21:39:35.732Z\",\n \"updated_at\": \"2024-03-27T21:39:35.732Z\",\n \"meals\": [\n {\n \"serial\": 2,\n \"id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"name\": \"Ghana Jollof\",\n \"description\": \"Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.\",\n \"status\": \"DRAFT\",\n \"created_at\": \"2024-03-25T04:51:18.624Z\",\n \"updated_at\": \"2024-03-25T04:51:18.624Z\",\n \"video_url\": \"https://youtube.com/watch?q=ve9320a\"\n }\n ]\n },\n {\n \"serial\": 4,\n \"id\": \"2e6d3f86-01ed-46d0-aa03-f977658c1223\",\n \"serving\": 2,\n \"cooking_time\": 120,\n \"created_at\": \"2024-03-27T19:41:30.693Z\",\n \"updated_at\": \"2024-03-27T19:41:30.693Z\",\n \"meals\": [\n {\n \"serial\": 2,\n \"id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"name\": \"Ghana Jollof\",\n \"description\": \"Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.\",\n \"status\": \"DRAFT\",\n \"created_at\": \"2024-03-25T04:51:18.624Z\",\n \"updated_at\": \"2024-03-25T04:51:18.624Z\",\n \"video_url\": \"https://youtube.com/watch?q=ve9320a\"\n }\n ]\n }\n ],\n \"meta\": {\n \"current_page\": 2,\n \"per_page\": 2,\n \"total\": 7\n }\n}" + } + ] + }, + { + "name": "Get A Recipe", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"meal_id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"serving\": 2,\n \"cooking_time\": 120, // 2 hours. base unit is `seconds`\n \"ingredients\": [\n {\n \"measurement_id\": \"\",\n \"ingredient_id\": \"\",\n \"quantity\": \"1/2\"\n }\n ],\n \"steps\": [\n {\n \"order\": 1,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n },\n {\n \"order\": 2,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/recipes/{{recipeId}}", + "host": ["{{baseUrl}}"], + "path": ["recipes", "{{recipeId}}"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"meal_id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"serving\": 2,\n \"cooking_time\": 120, // 2 hours. base unit is `seconds`\n \"ingredients\": [\n {\n \"measurement_id\": \"\",\n \"ingredient_id\": \"\",\n \"quantity\": \"1/2\"\n }\n ],\n \"steps\": [\n {\n \"order\": 1,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n },\n {\n \"order\": 2,\n \"image\": \"{{$randomImageUrl}}\",\n \"caption\": \"Dance a little\",\n \"paragraph\": \"{{$randomLoremParagraph}}\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/recipes/{{recipeId}}", + "host": ["{{baseUrl}}"], + "path": ["recipes", "{{recipeId}}"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Wed, 27 Mar 2024 23:23:11 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "1849" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"serial\": 1,\n \"id\": \"70b0543c-de4c-445e-a6c2-131f5c5c0aa7\",\n \"serving\": 2,\n \"cooking_time\": 120,\n \"created_at\": \"2024-03-27T19:33:59.883Z\",\n \"updated_at\": \"2024-03-27T19:33:59.883Z\",\n \"meals\": [\n {\n \"serial\": 2,\n \"id\": \"ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6\",\n \"name\": \"Ghana Jollof\",\n \"description\": \"Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.\",\n \"status\": \"DRAFT\",\n \"created_at\": \"2024-03-25T04:51:18.624Z\",\n \"updated_at\": \"2024-03-25T04:51:18.624Z\",\n \"video_url\": \"https://youtube.com/watch?q=ve9320a\"\n }\n ],\n \"recipes\": [\n {\n \"serial\": 1,\n \"id\": \"61f32a50-175d-4bcf-b3e4-2c4b49f65599\",\n \"image\": \"http://placeimg.com/640/480\",\n \"order\": 1,\n \"caption\": \"Dance a little\",\n \"paragraph\": \"Laudantium enim consequatur enim animi voluptatem quaerat nemo. Consequuntur illum quae exercitationem ducimus molestiae quae soluta hic aut. Natus sit doloremque et itaque et non. Perspiciatis voluptates placeat. Vel ullam est quam ut et.\",\n \"recipeId\": \"70b0543c-de4c-445e-a6c2-131f5c5c0aa7\"\n },\n {\n \"serial\": 2,\n \"id\": \"374965ef-0ad8-448f-9f40-a88bccef233f\",\n \"image\": \"http://placeimg.com/640/480\",\n \"order\": 2,\n \"caption\": \"Dance a little\",\n \"paragraph\": \"Repellat consectetur molestias eum velit ab reprehenderit aliquid dicta ipsam. Dicta et magni minus quaerat eius sed reiciendis. Qui dolores iure. Exercitationem iste velit. A velit accusamus qui quis qui placeat at molestiae.\",\n \"recipeId\": \"70b0543c-de4c-445e-a6c2-131f5c5c0aa7\"\n }\n ]\n }\n}" + } + ] + } + ] + }, + { + "name": "Onboarding", + "item": [ + { + "name": "Get Questions", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Sun, 21 Apr 2024 00:01:07 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "5528" + } + ], + "cookie": [], + "body": "{\n \"data\": [\n {\n \"id\": \"5eac4875-cd28-4b4a-b0ce-60e1a5be512f\",\n \"type\": \"single\",\n \"text\": \"Are you diabetic?\",\n \"status\": \"DRAFT\",\n \"options\": [\n {\n \"id\": \"79a9b597-935c-4ead-9b07-588a433d7a5c\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"5eac4875-cd28-4b4a-b0ce-60e1a5be512f\"\n },\n {\n \"id\": \"578856a8-9686-4006-be8f-f6a7e3929d55\",\n \"text\": \"No\",\n \"image\": null,\n \"questionId\": \"5eac4875-cd28-4b4a-b0ce-60e1a5be512f\"\n }\n ]\n },\n {\n \"id\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\",\n \"type\": \"multiple\",\n \"text\": \"Do you have any allergy?\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"55cb1a83-5564-4259-bf6f-565d46f24134\",\n \"text\": \"Sea food\",\n \"image\": null,\n \"questionId\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\"\n },\n {\n \"id\": \"0ca5884a-6e05-41d8-ac35-3e2f280f9247\",\n \"text\": \"Fish\",\n \"image\": null,\n \"questionId\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\"\n },\n {\n \"id\": \"f6e00c82-e532-4a75-a094-80aac1fb59ea\",\n \"text\": \"Egg\",\n \"image\": null,\n \"questionId\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\"\n },\n {\n \"id\": \"ccb3bc30-74cd-482a-8a21-7a14b701d37a\",\n \"text\": \"Peanut\",\n \"image\": null,\n \"questionId\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\"\n },\n {\n \"id\": \"0d593271-6c9e-4ba9-86a5-6e6c1107b2fc\",\n \"text\": \"Celery\",\n \"image\": null,\n \"questionId\": \"672d0022-898b-4d8d-9da0-3e2d6d734dd7\"\n }\n ]\n },\n {\n \"id\": \"45751715-c5eb-4dc2-ba66-ac07135d6ada\",\n \"type\": \"single\",\n \"text\": \"What your favourite window\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"1b81cf10-50e6-48d8-8e41-6d2049a3b3d5\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"45751715-c5eb-4dc2-ba66-ac07135d6ada\"\n }\n ]\n },\n {\n \"id\": \"a08dd432-6df8-470e-8812-c02d9d64004f\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite window\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"b6318183-ed2c-489c-a1d3-d9974d0ee2e8\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"a08dd432-6df8-470e-8812-c02d9d64004f\"\n },\n {\n \"id\": \"f42de010-d4bc-4215-95a2-2db19205ab00\",\n \"text\": \"No\",\n \"image\": null,\n \"questionId\": \"a08dd432-6df8-470e-8812-c02d9d64004f\"\n }\n ]\n },\n {\n \"id\": \"f02dddd0-cecc-41be-9d36-ad70707466ae\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite window\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"0298390a-b033-4373-b52a-8b745b627539\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"f02dddd0-cecc-41be-9d36-ad70707466ae\"\n },\n {\n \"id\": \"c584ee6c-13f3-4d50-b320-5cca87208798\",\n \"text\": \"No\",\n \"image\": null,\n \"questionId\": \"f02dddd0-cecc-41be-9d36-ad70707466ae\"\n }\n ]\n },\n {\n \"id\": \"e3b86580-438d-4602-bb14-705378b9e7ed\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite window\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"d013e070-6a3f-454d-aa1f-37ef9d2e4c0d\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"e3b86580-438d-4602-bb14-705378b9e7ed\"\n },\n {\n \"id\": \"6183dfe0-1983-4ce2-86e1-9e0f848b5e01\",\n \"text\": \"No\",\n \"image\": null,\n \"questionId\": \"e3b86580-438d-4602-bb14-705378b9e7ed\"\n }\n ]\n },\n {\n \"id\": \"81540fd5-d97c-4225-b314-fb9980d58ba2\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite fruit?\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"d0578505-1696-4d0a-8e3d-52435ed15599\",\n \"text\": \"Yes\",\n \"image\": null,\n \"questionId\": \"81540fd5-d97c-4225-b314-fb9980d58ba2\"\n },\n {\n \"id\": \"9dbd0ee6-772f-404a-9f6b-1d125caf225e\",\n \"text\": \"No\",\n \"image\": null,\n \"questionId\": \"81540fd5-d97c-4225-b314-fb9980d58ba2\"\n }\n ]\n },\n {\n \"id\": \"5155935f-52ec-4eaf-855c-ff2e4d39926a\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite fruit?\",\n \"status\": \"PUBLISHED\",\n \"options\": [\n {\n \"id\": \"7cb2f0f3-19af-4e78-9ffa-b14e31512b64\",\n \"text\": \"Apple\",\n \"image\": null,\n \"questionId\": \"5155935f-52ec-4eaf-855c-ff2e4d39926a\"\n },\n {\n \"id\": \"fbfb609c-f281-4425-89cd-bcbb758e7a18\",\n \"text\": \"Orange\",\n \"image\": null,\n \"questionId\": \"5155935f-52ec-4eaf-855c-ff2e4d39926a\"\n }\n ]\n },\n {\n \"id\": \"309f687d-0253-4dfa-863d-fd08b6a45487\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\",\n \"options\": [\n {\n \"id\": \"d82f60a2-9d6b-4aca-9b5d-97e7fb3f1627\",\n \"text\": \"Apple\",\n \"image\": null,\n \"questionId\": \"309f687d-0253-4dfa-863d-fd08b6a45487\"\n },\n {\n \"id\": \"fef2b37f-addf-4bb8-904f-c9bac1d672ae\",\n \"text\": \"Orange\",\n \"image\": null,\n \"questionId\": \"309f687d-0253-4dfa-863d-fd08b6a45487\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Create Question", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const response = pm.response.json();", + "const questionId = response?.data?.id", + "", + "if (questionId)", + " pm.collectionVariables.set('questionId', questionId)" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"question\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\",\n \"type\": \"multiple\",\n \"options\": [\n {\n \"text\": \"Apple\"\n },\n {\n \"text\": \"Orange\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"question\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\",\n \"type\": \"multiple\",\n \"options\": [\n {\n \"text\": \"Apple\"\n },\n {\n \"text\": \"Orange\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Sun, 21 Apr 2024 00:00:40 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "196" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Question created\",\n \"data\": {\n \"id\": \"309f687d-0253-4dfa-863d-fd08b6a45487\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\"\n }\n}" + } + ] + }, + { + "name": "Update Question", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"question\": \"Do you like beans?\",\n \"status\": \"UNPUBLISHED\",\n \"type\": \"single\",\n \"options\": [\n {\n \"id\": \"60a1204d-c985-4ed7-b731-adf8491a518e\",\n \"text\": \"Honey\"\n },\n {\n \"id\": \"98c17408-938a-420f-ab43-6611130ec9b1\",\n \"text\": \"Iron\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions/{{questionId}}", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions", "{{questionId}}"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"question\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\",\n \"type\": \"multiple\",\n \"options\": [\n {\n \"text\": \"Apple\"\n },\n {\n \"text\": \"Orange\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["org", "onboarding", "questions"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Sun, 21 Apr 2024 00:00:40 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "196" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Question created\",\n \"data\": {\n \"id\": \"309f687d-0253-4dfa-863d-fd08b6a45487\",\n \"type\": \"multiple\",\n \"text\": \"What your favourite fruit?\",\n \"status\": \"UNPUBLISHED\"\n }\n}" + }, + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"question\": \"Do you like beans?\",\n \"status\": \"UNPUBLISHED\",\n \"type\": \"single\",\n \"options\": [\n {\n \"id\": \"60a1204d-c985-4ed7-b731-adf8491a518e\",\n \"text\": \"Honey\"\n },\n {\n \"id\": \"98c17408-938a-420f-ab43-6611130ec9b1\",\n \"text\": \"Iron\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/org/onboarding/questions/{{questionId}}", + "host": ["{{baseUrl}}"], + "path": [ + "org", + "onboarding", + "questions", + "{{questionId}}" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Sun, 21 Apr 2024 00:40:12 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "569" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Update successful\",\n \"data\": {\n \"id\": \"5d827e40-e7f8-4750-8ffc-4f18f9a4c07f\",\n \"type\": \"single\",\n \"text\": \"Do you like beans?\",\n \"status\": \"UNPUBLISHED\",\n \"options\": [\n {\n \"id\": \"60a1204d-c985-4ed7-b731-adf8491a518e\",\n \"text\": \"Honey\",\n \"image\": null,\n \"questionId\": \"5d827e40-e7f8-4750-8ffc-4f18f9a4c07f\"\n },\n {\n \"id\": \"98c17408-938a-420f-ab43-6611130ec9b1\",\n \"text\": \"Iron\",\n \"image\": null,\n \"questionId\": \"5d827e40-e7f8-4750-8ffc-4f18f9a4c07f\"\n }\n ]\n }\n}" + } + ] + } + ] + }, + { + "name": "Get Users", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/users?page=1&limit=12&range_created_at=[toDate,fromDate]", + "host": ["{{baseUrl}}"], + "path": ["users"], + "query": [ + { + "key": "page", + "value": "1" + }, + { + "key": "limit", + "value": "12" + }, + { + "key": "range_created_at", + "value": "[toDate,fromDate]" + } + ] + } + }, + "response": [] + }, + { + "name": "Payments", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/payments?user_id={{$randomUUID}}", + "host": ["{{baseUrl}}"], + "path": ["payments"], + "query": [ + { + "key": "user_id", + "value": "{{$randomUUID}}", + "description": "(optional)" + } + ] + } + }, + "response": [] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [""] + } + } + ] + }, + { + "name": "Customer", + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Login", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const response = pm.response.json()", + "", + "if ( response?.data?.access_token)", + " pm.environment.set(\"accessToken\", response.data.access_token);" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"email\": \"owonwo@live.com\",\n \"password\": \"helloman\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/auth/login", + "host": ["{{baseUrl}}"], + "path": ["auth", "login"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"email\": \"joseph.owonwo@gmail.com\",\n \"password\": \"helloman\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/auth/login", + "host": ["{{baseUrl}}"], + "path": ["auth", "login"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Mon, 08 Apr 2024 03:18:00 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "158" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Login successful\",\n \"data\": {\n \"access_token\": \"6wfgh44amvxok4twm08v7cimg5k3065ay1oklioh\",\n \"expires\": \"2024-05-08T03:18:00.035Z\"\n }\n}" + } + ] + }, + { + "name": "Logout", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/auth/logout", + "host": ["{{baseUrl}}"], + "path": ["auth", "logout"] + } + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/auth/logout", + "host": ["{{baseUrl}}"], + "path": ["auth", "logout"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "content-type", + "value": "application/json" + }, + { + "key": "date", + "value": "Wed, 10 Apr 2024 01:38:00 GMT" + }, + { + "key": "connection", + "value": "close" + }, + { + "key": "content-length", + "value": "37" + } + ], + "cookie": [], + "body": "{\n \"message\": \"Session terminated\"\n}" + } + ] + } + ] + }, + { + "name": "Onboarding Questions", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/onboarding/questions", + "host": ["{{baseUrl}}"], + "path": ["onboarding", "questions"] + } + }, + "response": [] + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [""] + } + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "http://localhost:3006/api/v1", + "type": "string" + }, + { + "key": "recipeId", + "value": "70b0543c-de4c-445e-a6c2-131f5c5c0aa7" + }, + { + "key": "accessToken", + "value": "", + "type": "string" + }, + { + "key": "questionId", + "value": "" + } + ] +} diff --git a/packages/apis/storage/digest-openapi.json b/packages/apis/storage/digest-openapi.json new file mode 100644 index 0000000000..248da59458 --- /dev/null +++ b/packages/apis/storage/digest-openapi.json @@ -0,0 +1,1450 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Digest", + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://{{baseurl}}" + } + ], + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer" + } + } + }, + "tags": [ + { + "name": "Org" + }, + { + "name": "Org > Team" + }, + { + "name": "Org > Auth" + }, + { + "name": "Org > Metrics" + }, + { + "name": "Org > Categories" + }, + { + "name": "Org > Ingredients" + }, + { + "name": "Org > Dishes" + }, + { + "name": "Org > Recipes" + }, + { + "name": "Org > Onboarding" + }, + { + "name": "Customer" + }, + { + "name": "Customer > Auth" + } + ], + "paths": { + "/org/team": { + "get": { + "tags": ["Org > Team"], + "summary": "All Team members", + "operationId": "allTeamMembers", + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Thu, 11 Apr 2024 04:24:28 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "502" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "data": [ + { + "id": "81c7e4a4-19cf-48a7-bd02-f07fd239e8c4", + "first_name": "Joseph", + "password": "$argon2id$v=19$m=19456,t=2,p=1$4KmqjtSTFuUANlxHA+4Zxg$RXVfFWxe3Md4ZxtdMaz/lWRwsF9eM1eoWzgOerynlPM", + "last_name": "Owonvwon", + "email": "joseph.owonwo@gmail.com", + "role": "OWNER", + "created_at": "2024-04-11T01:52:52.330Z", + "updated_at": null, + "deleted_at": null + } + ], + "meta": { + "current_page": 1, + "per_page": 25, + "total": 1 + } + } + } + } + } + } + } + }, + "/org/team/c718b157-4fe4-4bb1-adc4-787e95b239a2": { + "delete": { + "tags": ["Org > Team"], + "summary": "Delete Team member", + "operationId": "deleteTeamMember", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/org/auth/login": { + "post": { + "tags": ["Org > Auth"], + "summary": "Login - Org", + "operationId": "loginOrg", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "email": "joseph.owonwo@gmail.com", + "password": "helloman" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Mon, 08 Apr 2024 03:18:00 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "158" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Login successful", + "data": { + "access_token": "6wfgh44amvxok4twm08v7cimg5k3065ay1oklioh", + "expires": "2024-05-08T03:18:00.035Z" + } + } + } + } + } + } + } + }, + "/org/auth/logout": { + "post": { + "tags": ["Org > Auth"], + "summary": "Logout - Org", + "operationId": "logoutOrg", + "requestBody": { + "content": {} + }, + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Wed, 10 Apr 2024 01:38:00 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "37" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Session terminated" + } + } + } + } + } + } + }, + "/org/profile": { + "get": { + "tags": ["Org > Auth"], + "summary": "Profile", + "operationId": "profile", + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/metrics": { + "get": { + "tags": ["Org > Metrics"], + "summary": "Get Metrics", + "operationId": "getMetrics", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/kpi/customers": { + "get": { + "tags": ["Org > Metrics"], + "summary": "Customer Growth Metrics", + "operationId": "customerGrowthMetrics", + "parameters": [ + { + "name": "range", + "in": "query", + "schema": { + "type": "string" + }, + "description": "1wk, 1mth, 1y, all. default: 1mth", + "example": "1mth" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/categories/meals": { + "post": { + "tags": ["Org > Categories"], + "summary": "Create a Meal Category", + "operationId": "createAMealCategory", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "name": "Pastries" + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + }, + "get": { + "tags": ["Org > Categories"], + "summary": "Get all categories", + "operationId": "getAllCategories", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/categories/05fa9976-2366-479b-8854-21727fb78152": { + "delete": { + "tags": ["Org > Categories"], + "summary": "Delete Category", + "operationId": "deleteCategory", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/ingredients": { + "get": { + "tags": ["Org > Ingredients"], + "summary": "Get Ingredients", + "operationId": "getIngredients", + "parameters": [ + { + "name": "page", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "1" + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "12" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + }, + "post": { + "tags": ["Org > Ingredients"], + "summary": "Create Measurement", + "operationId": "createMeasurement", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "name": "Vanilla Extract" + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/dishes": { + "post": { + "tags": ["Org > Dishes"], + "summary": "Create Meal", + "operationId": "createMeal", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "name": "Peppered snail and crab shell", + "description": "{{$randomLoremParagraph}}", + "status": "DRAFT", + "category": [4], + "updated_at": "{{$isoTimestamp}}", + "created_at": "{{$isoTimestamp}}", + "video_url": "https://youtube.com/watch?q=ve9320a" + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + }, + "get": { + "tags": ["Org > Dishes"], + "summary": "Get Meals", + "operationId": "getMeals", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/recipes": { + "post": { + "tags": ["Org > Recipes"], + "summary": "Create a Recipe", + "operationId": "createARecipe", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "meal_id": "ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6", + "serving": 2, + "cooking_time": 120, + "ingredients": [ + { + "measurement_id": 1, + "ingredient_id": 1, + "quantity": 0.5 + } + ], + "steps": [ + { + "order": 1, + "image": "{{$randomImageUrl}}", + "caption": "Dance a little", + "paragraph": "{{$randomLoremParagraph}}" + }, + { + "order": 2, + "image": "{{$randomImageUrl}}", + "caption": "Dance a little", + "paragraph": "{{$randomLoremParagraph}}" + } + ] + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Wed, 27 Mar 2024 21:39:42 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "251" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Recipe created", + "data": { + "serial": 8, + "id": "1b7356e7-de71-4fa0-9ea1-13766dd2b49b", + "serving": 2, + "cooking_time": 120, + "created_at": "2024-03-27T21:39:35.732Z", + "updated_at": "2024-03-27T21:39:35.732Z" + } + } + } + } + } + } + }, + "get": { + "tags": ["Org > Recipes"], + "summary": "All Recipes", + "operationId": "allRecipes", + "parameters": [ + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "10" + }, + { + "name": "page", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "1" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Wed, 27 Mar 2024 21:39:42 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "251" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "examples": { + "example-0": { + "summary": "Success", + "value": { + "message": "Recipe created", + "data": { + "serial": 8, + "id": "1b7356e7-de71-4fa0-9ea1-13766dd2b49b", + "serving": 2, + "cooking_time": 120, + "created_at": "2024-03-27T21:39:35.732Z", + "updated_at": "2024-03-27T21:39:35.732Z" + } + } + }, + "example-1": { + "summary": "Success", + "value": { + "data": [ + { + "serial": 8, + "id": "1b7356e7-de71-4fa0-9ea1-13766dd2b49b", + "serving": 2, + "cooking_time": 120, + "created_at": "2024-03-27T21:39:35.732Z", + "updated_at": "2024-03-27T21:39:35.732Z", + "meals": [ + { + "serial": 2, + "id": "ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6", + "name": "Ghana Jollof", + "description": "Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.", + "status": "DRAFT", + "created_at": "2024-03-25T04:51:18.624Z", + "updated_at": "2024-03-25T04:51:18.624Z", + "video_url": "https://youtube.com/watch?q=ve9320a" + } + ] + }, + { + "serial": 4, + "id": "2e6d3f86-01ed-46d0-aa03-f977658c1223", + "serving": 2, + "cooking_time": 120, + "created_at": "2024-03-27T19:41:30.693Z", + "updated_at": "2024-03-27T19:41:30.693Z", + "meals": [ + { + "serial": 2, + "id": "ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6", + "name": "Ghana Jollof", + "description": "Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.", + "status": "DRAFT", + "created_at": "2024-03-25T04:51:18.624Z", + "updated_at": "2024-03-25T04:51:18.624Z", + "video_url": "https://youtube.com/watch?q=ve9320a" + } + ] + } + ], + "meta": { + "current_page": 2, + "per_page": 2, + "total": 7 + } + } + } + } + } + } + } + } + } + }, + "/recipes/{recipeId}": { + "get": { + "tags": ["Org > Recipes"], + "summary": "Get A Recipe", + "operationId": "getARecipe", + "parameters": [ + { + "name": "recipeId", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Wed, 27 Mar 2024 23:23:11 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "1849" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "data": { + "serial": 1, + "id": "70b0543c-de4c-445e-a6c2-131f5c5c0aa7", + "serving": 2, + "cooking_time": 120, + "created_at": "2024-03-27T19:33:59.883Z", + "updated_at": "2024-03-27T19:33:59.883Z", + "meals": [ + { + "serial": 2, + "id": "ee6b9c6d-6241-4feb-b70e-7bf6f7b798f6", + "name": "Ghana Jollof", + "description": "Dicta aliquid corporis nobis hic qui et officia quas quis. Quo omnis dolor modi maxime facere corrupti minima aliquid recusandae. Illo reiciendis officia officiis tenetur eos sit ratione sit. Amet earum amet iure at quia.", + "status": "DRAFT", + "created_at": "2024-03-25T04:51:18.624Z", + "updated_at": "2024-03-25T04:51:18.624Z", + "video_url": "https://youtube.com/watch?q=ve9320a" + } + ], + "recipes": [ + { + "serial": 1, + "id": "61f32a50-175d-4bcf-b3e4-2c4b49f65599", + "image": "http://placeimg.com/640/480", + "order": 1, + "caption": "Dance a little", + "paragraph": "Laudantium enim consequatur enim animi voluptatem quaerat nemo. Consequuntur illum quae exercitationem ducimus molestiae quae soluta hic aut. Natus sit doloremque et itaque et non. Perspiciatis voluptates placeat. Vel ullam est quam ut et.", + "recipeId": "70b0543c-de4c-445e-a6c2-131f5c5c0aa7" + }, + { + "serial": 2, + "id": "374965ef-0ad8-448f-9f40-a88bccef233f", + "image": "http://placeimg.com/640/480", + "order": 2, + "caption": "Dance a little", + "paragraph": "Repellat consectetur molestias eum velit ab reprehenderit aliquid dicta ipsam. Dicta et magni minus quaerat eius sed reiciendis. Qui dolores iure. Exercitationem iste velit. A velit accusamus qui quis qui placeat at molestiae.", + "recipeId": "70b0543c-de4c-445e-a6c2-131f5c5c0aa7" + } + ] + } + } + } + } + } + } + } + }, + "/org/onboarding/questions": { + "get": { + "tags": ["Org > Onboarding"], + "summary": "Get Questions", + "operationId": "getQuestions", + "responses": { + "200": { + "description": "OK", + "headers": { + "access-control-allow-origin": { + "schema": { + "type": "string", + "example": "*" + } + }, + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Sun, 21 Apr 2024 00:01:07 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "5528" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "data": [ + { + "id": "5eac4875-cd28-4b4a-b0ce-60e1a5be512f", + "type": "single", + "text": "Are you diabetic?", + "status": "DRAFT", + "options": [ + { + "id": "79a9b597-935c-4ead-9b07-588a433d7a5c", + "text": "Yes", + "image": null, + "questionId": "5eac4875-cd28-4b4a-b0ce-60e1a5be512f" + }, + { + "id": "578856a8-9686-4006-be8f-f6a7e3929d55", + "text": "No", + "image": null, + "questionId": "5eac4875-cd28-4b4a-b0ce-60e1a5be512f" + } + ] + }, + { + "id": "672d0022-898b-4d8d-9da0-3e2d6d734dd7", + "type": "multiple", + "text": "Do you have any allergy?", + "status": "PUBLISHED", + "options": [ + { + "id": "55cb1a83-5564-4259-bf6f-565d46f24134", + "text": "Sea food", + "image": null, + "questionId": "672d0022-898b-4d8d-9da0-3e2d6d734dd7" + }, + { + "id": "0ca5884a-6e05-41d8-ac35-3e2f280f9247", + "text": "Fish", + "image": null, + "questionId": "672d0022-898b-4d8d-9da0-3e2d6d734dd7" + }, + { + "id": "f6e00c82-e532-4a75-a094-80aac1fb59ea", + "text": "Egg", + "image": null, + "questionId": "672d0022-898b-4d8d-9da0-3e2d6d734dd7" + }, + { + "id": "ccb3bc30-74cd-482a-8a21-7a14b701d37a", + "text": "Peanut", + "image": null, + "questionId": "672d0022-898b-4d8d-9da0-3e2d6d734dd7" + }, + { + "id": "0d593271-6c9e-4ba9-86a5-6e6c1107b2fc", + "text": "Celery", + "image": null, + "questionId": "672d0022-898b-4d8d-9da0-3e2d6d734dd7" + } + ] + }, + { + "id": "45751715-c5eb-4dc2-ba66-ac07135d6ada", + "type": "single", + "text": "What your favourite window", + "status": "PUBLISHED", + "options": [ + { + "id": "1b81cf10-50e6-48d8-8e41-6d2049a3b3d5", + "text": "Yes", + "image": null, + "questionId": "45751715-c5eb-4dc2-ba66-ac07135d6ada" + } + ] + }, + { + "id": "a08dd432-6df8-470e-8812-c02d9d64004f", + "type": "multiple", + "text": "What your favourite window", + "status": "PUBLISHED", + "options": [ + { + "id": "b6318183-ed2c-489c-a1d3-d9974d0ee2e8", + "text": "Yes", + "image": null, + "questionId": "a08dd432-6df8-470e-8812-c02d9d64004f" + }, + { + "id": "f42de010-d4bc-4215-95a2-2db19205ab00", + "text": "No", + "image": null, + "questionId": "a08dd432-6df8-470e-8812-c02d9d64004f" + } + ] + }, + { + "id": "f02dddd0-cecc-41be-9d36-ad70707466ae", + "type": "multiple", + "text": "What your favourite window", + "status": "PUBLISHED", + "options": [ + { + "id": "0298390a-b033-4373-b52a-8b745b627539", + "text": "Yes", + "image": null, + "questionId": "f02dddd0-cecc-41be-9d36-ad70707466ae" + }, + { + "id": "c584ee6c-13f3-4d50-b320-5cca87208798", + "text": "No", + "image": null, + "questionId": "f02dddd0-cecc-41be-9d36-ad70707466ae" + } + ] + }, + { + "id": "e3b86580-438d-4602-bb14-705378b9e7ed", + "type": "multiple", + "text": "What your favourite window", + "status": "PUBLISHED", + "options": [ + { + "id": "d013e070-6a3f-454d-aa1f-37ef9d2e4c0d", + "text": "Yes", + "image": null, + "questionId": "e3b86580-438d-4602-bb14-705378b9e7ed" + }, + { + "id": "6183dfe0-1983-4ce2-86e1-9e0f848b5e01", + "text": "No", + "image": null, + "questionId": "e3b86580-438d-4602-bb14-705378b9e7ed" + } + ] + }, + { + "id": "81540fd5-d97c-4225-b314-fb9980d58ba2", + "type": "multiple", + "text": "What your favourite fruit?", + "status": "PUBLISHED", + "options": [ + { + "id": "d0578505-1696-4d0a-8e3d-52435ed15599", + "text": "Yes", + "image": null, + "questionId": "81540fd5-d97c-4225-b314-fb9980d58ba2" + }, + { + "id": "9dbd0ee6-772f-404a-9f6b-1d125caf225e", + "text": "No", + "image": null, + "questionId": "81540fd5-d97c-4225-b314-fb9980d58ba2" + } + ] + }, + { + "id": "5155935f-52ec-4eaf-855c-ff2e4d39926a", + "type": "multiple", + "text": "What your favourite fruit?", + "status": "PUBLISHED", + "options": [ + { + "id": "7cb2f0f3-19af-4e78-9ffa-b14e31512b64", + "text": "Apple", + "image": null, + "questionId": "5155935f-52ec-4eaf-855c-ff2e4d39926a" + }, + { + "id": "fbfb609c-f281-4425-89cd-bcbb758e7a18", + "text": "Orange", + "image": null, + "questionId": "5155935f-52ec-4eaf-855c-ff2e4d39926a" + } + ] + }, + { + "id": "309f687d-0253-4dfa-863d-fd08b6a45487", + "type": "multiple", + "text": "What your favourite fruit?", + "status": "UNPUBLISHED", + "options": [ + { + "id": "d82f60a2-9d6b-4aca-9b5d-97e7fb3f1627", + "text": "Apple", + "image": null, + "questionId": "309f687d-0253-4dfa-863d-fd08b6a45487" + }, + { + "id": "fef2b37f-addf-4bb8-904f-c9bac1d672ae", + "text": "Orange", + "image": null, + "questionId": "309f687d-0253-4dfa-863d-fd08b6a45487" + } + ] + } + ] + } + } + } + } + } + }, + "post": { + "tags": ["Org > Onboarding"], + "summary": "Create Question", + "operationId": "createQuestion", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "question": "What your favourite fruit?", + "status": "UNPUBLISHED", + "type": "multiple", + "options": [ + { + "text": "Apple" + }, + { + "text": "Orange" + } + ] + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": { + "access-control-allow-origin": { + "schema": { + "type": "string", + "example": "*" + } + }, + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Sun, 21 Apr 2024 00:00:40 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "196" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Question created", + "data": { + "id": "309f687d-0253-4dfa-863d-fd08b6a45487", + "type": "multiple", + "text": "What your favourite fruit?", + "status": "UNPUBLISHED" + } + } + } + } + } + } + } + }, + "/org/onboarding/questions/{questionId}": { + "post": { + "tags": ["Org > Onboarding"], + "summary": "Update Question", + "operationId": "updateQuestion", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "question": "Do you like beans?", + "status": "UNPUBLISHED", + "type": "single", + "options": [ + { + "id": "60a1204d-c985-4ed7-b731-adf8491a518e", + "text": "Honey" + }, + { + "id": "98c17408-938a-420f-ab43-6611130ec9b1", + "text": "Iron" + } + ] + } + } + } + } + }, + "parameters": [ + { + "name": "questionId", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "access-control-allow-origin": { + "schema": { + "type": "string", + "example": "*" + } + }, + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Sun, 21 Apr 2024 00:00:40 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "196" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "examples": { + "example-0": { + "summary": "Success", + "value": { + "message": "Question created", + "data": { + "id": "309f687d-0253-4dfa-863d-fd08b6a45487", + "type": "multiple", + "text": "What your favourite fruit?", + "status": "UNPUBLISHED" + } + } + }, + "example-1": { + "summary": "Success", + "value": { + "message": "Update successful", + "data": { + "id": "5d827e40-e7f8-4750-8ffc-4f18f9a4c07f", + "type": "single", + "text": "Do you like beans?", + "status": "UNPUBLISHED", + "options": [ + { + "id": "60a1204d-c985-4ed7-b731-adf8491a518e", + "text": "Honey", + "image": null, + "questionId": "5d827e40-e7f8-4750-8ffc-4f18f9a4c07f" + }, + { + "id": "98c17408-938a-420f-ab43-6611130ec9b1", + "text": "Iron", + "image": null, + "questionId": "5d827e40-e7f8-4750-8ffc-4f18f9a4c07f" + } + ] + } + } + } + } + } + } + } + } + } + }, + "/users": { + "get": { + "tags": ["Org"], + "summary": "Get Users", + "operationId": "getUsers", + "parameters": [ + { + "name": "page", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "1" + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer" + }, + "example": "12" + }, + { + "name": "range_created_at", + "in": "query", + "schema": { + "type": "string" + }, + "example": "[toDate,fromDate]" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/payments": { + "get": { + "tags": ["Org"], + "summary": "Payments", + "operationId": "payments", + "parameters": [ + { + "name": "user_id", + "in": "query", + "schema": { + "type": "string" + }, + "description": "(optional)", + "example": "{{$randomUUID}}" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + }, + "/auth/login": { + "post": { + "tags": ["Customer > Auth"], + "summary": "Login", + "operationId": "login", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "email": "owonwo@live.com", + "password": "helloman" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Mon, 08 Apr 2024 03:18:00 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "158" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Login successful", + "data": { + "access_token": "6wfgh44amvxok4twm08v7cimg5k3065ay1oklioh", + "expires": "2024-05-08T03:18:00.035Z" + } + } + } + } + } + } + } + }, + "/auth/logout": { + "post": { + "tags": ["Customer > Auth"], + "summary": "Logout", + "operationId": "logout", + "requestBody": { + "content": {} + }, + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "content-type": { + "schema": { + "type": "string", + "example": "application/json" + } + }, + "date": { + "schema": { + "type": "string", + "example": "Wed, 10 Apr 2024 01:38:00 GMT" + } + }, + "connection": { + "schema": { + "type": "string", + "example": "close" + } + }, + "content-length": { + "schema": { + "type": "integer", + "example": "37" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": { + "message": "Session terminated" + } + } + } + } + } + } + }, + "/onboarding/questions": { + "get": { + "tags": ["Customer"], + "summary": "Onboarding Questions", + "operationId": "onboardingQuestions", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + } + } + } + } + } +} diff --git a/packages/apis/tsconfig.json b/packages/apis/tsconfig.json new file mode 100644 index 0000000000..2688427422 --- /dev/null +++ b/packages/apis/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@repo/typescript-config/base.json", + "compilerOptions": { + "types": ["vite/client", "@types/node"], + "target": "es5", + "outDir": "dist", + "allowJs": true, + "skipLibCheck": true, + "strictNullChecks": false, + "strict": true, + "module": "esnext", + "moduleResolution": "node", + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md new file mode 100644 index 0000000000..8b42d901b0 --- /dev/null +++ b/packages/eslint-config/README.md @@ -0,0 +1,3 @@ +# `@turbo/eslint-config` + +Collection of internal eslint configurations. diff --git a/packages/eslint-config/library.js b/packages/eslint-config/library.js new file mode 100644 index 0000000000..c667cd1001 --- /dev/null +++ b/packages/eslint-config/library.js @@ -0,0 +1,34 @@ +const { resolve } = require("node:path"); + +const project = resolve(process.cwd(), "tsconfig.json"); + +/** @type {import("eslint").Linter.Config} */ +module.exports = { + extends: ["eslint:recommended", "prettier", "eslint-config-turbo"], + plugins: ["only-warn"], + globals: { + React: true, + JSX: true, + }, + env: { + node: true, + }, + settings: { + "import/resolver": { + typescript: { + project, + }, + }, + }, + ignorePatterns: [ + // Ignore dotfiles + ".*.js", + "node_modules/", + "dist/", + ], + overrides: [ + { + files: ["*.js?(x)", "*.ts?(x)"], + }, + ], +}; diff --git a/packages/eslint-config/next.js b/packages/eslint-config/next.js new file mode 100644 index 0000000000..6000e54673 --- /dev/null +++ b/packages/eslint-config/next.js @@ -0,0 +1,35 @@ +const { resolve } = require("node:path"); + +const project = resolve(process.cwd(), "tsconfig.json"); + +/** @type {import("eslint").Linter.Config} */ +module.exports = { + extends: [ + "eslint:recommended", + "prettier", + require.resolve("@vercel/style-guide/eslint/next"), + "eslint-config-turbo", + ], + globals: { + React: true, + JSX: true, + }, + env: { + node: true, + browser: true, + }, + plugins: ["only-warn"], + settings: { + "import/resolver": { + typescript: { + project, + }, + }, + }, + ignorePatterns: [ + // Ignore dotfiles + ".*.js", + "node_modules/", + ], + overrides: [{ files: ["*.js?(x)", "*.ts?(x)"] }], +}; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 0000000000..46ee25185f --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,19 @@ +{ + "name": "@repo/eslint-config", + "version": "0.0.0", + "private": true, + "files": [ + "library.js", + "next.js", + "react-internal.js" + ], + "devDependencies": { + "@vercel/style-guide": "^5.1.0", + "eslint-config-turbo": "^1.11.3", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-only-warn": "^1.1.0", + "@typescript-eslint/parser": "^6.17.0", + "@typescript-eslint/eslint-plugin": "^6.17.0", + "typescript": "5.4.3" + } +} diff --git a/packages/eslint-config/react-internal.js b/packages/eslint-config/react-internal.js new file mode 100644 index 0000000000..f56c9249e7 --- /dev/null +++ b/packages/eslint-config/react-internal.js @@ -0,0 +1,43 @@ +const { resolve } = require("node:path"); + +const project = resolve(process.cwd(), "tsconfig.json"); + +/* + * This is a custom ESLint configuration for use with + * internal (bundled by their consumer) libraries + * that utilize React. + * + * This config extends the Vercel Engineering Style Guide. + * For more information, see https://github.com/vercel/style-guide + * + */ + +/** @type {import("eslint").Linter.Config} */ +module.exports = { + extends: ["eslint:recommended", "prettier", "eslint-config-turbo"], + plugins: ["only-warn"], + globals: { + React: true, + JSX: true, + }, + env: { + browser: true, + }, + settings: { + "import/resolver": { + typescript: { + project, + }, + }, + }, + ignorePatterns: [ + // Ignore dotfiles + ".*.js", + "node_modules/", + "dist/", + ], + overrides: [ + // Force ESLint to detect .tsx files + { files: ["*.js?(x)", "*.ts?(x)"] }, + ], +}; diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000000..93a1db41a8 --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,13 @@ +{ + "name": "@repo/shared", + "version": "0.0.0", + "private": true, + "scripts": {}, + "dependencies": { + "ramda": "^0.29.1" + }, + "devDependencies": { + "@types/ramda": "^0.29.10", + "typescript": "5.4.3" + } +} diff --git a/packages/shared/src/data.helpers.ts b/packages/shared/src/data.helpers.ts new file mode 100644 index 0000000000..8db93b6d80 --- /dev/null +++ b/packages/shared/src/data.helpers.ts @@ -0,0 +1,37 @@ +import { is } from "ramda"; + +const EmptyPrimitives = Object.freeze({ + Array: [], + Object: { + __proto_: { + type: "EmptyObject", + }, + }, +}); + +export const safeNum = (a: unknown, fallback = 0): number => { + const value = Number(a); + + return !Object.is(NaN, value) ? value : fallback; +}; + +export const safeArray = (a?: Array): Array => + Array.isArray(a) ? a : EmptyPrimitives.Array; + +export const safeStr = (a: unknown, fallback = ""): string => + typeof a === "string" ? a : fallback; + +const EmptyObject: Record = Object.freeze({}); + +export const safeObj = ( + obj: T, +): T extends Record ? T : typeof EmptyObject => { + // @ts-expect-error; + return is(Object, obj) ? obj : EmptyObject; +}; + +export function safeInt(num: unknown, fallback = 0): number { + const value = parseInt(num as string); + + return !Object.is(NaN, value) ? value : fallback; +} diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000000..ca86687c4b --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@repo/typescript-config/react-library.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json new file mode 100644 index 0000000000..0f80cfd67c --- /dev/null +++ b/packages/typescript-config/base.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "incremental": false, + "isolatedModules": true, + "lib": ["es2022", "DOM", "DOM.Iterable"], + "module": "NodeNext", + "moduleDetection": "force", + "moduleResolution": "NodeNext", + "noUncheckedIndexedAccess": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ES2022" + } +} diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json new file mode 100644 index 0000000000..44f4289918 --- /dev/null +++ b/packages/typescript-config/nextjs.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Next.js", + "extends": "./base.json", + "compilerOptions": { + "plugins": [{ "name": "next" }], + "module": "ESNext", + "moduleResolution": "Bundler", + "allowJs": true, + "jsx": "preserve", + "noEmit": true + } +} diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json new file mode 100644 index 0000000000..27c0e60436 --- /dev/null +++ b/packages/typescript-config/package.json @@ -0,0 +1,9 @@ +{ + "name": "@repo/typescript-config", + "version": "0.0.0", + "private": true, + "license": "MIT", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/typescript-config/react-library.json b/packages/typescript-config/react-library.json new file mode 100644 index 0000000000..44924d9ed8 --- /dev/null +++ b/packages/typescript-config/react-library.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "React Library", + "extends": "./base.json", + "compilerOptions": { + "jsx": "react-jsx" + } +} diff --git a/packages/ui/.eslintrc.js b/packages/ui/.eslintrc.js new file mode 100644 index 0000000000..9117326a92 --- /dev/null +++ b/packages/ui/.eslintrc.js @@ -0,0 +1,9 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@repo/eslint-config/react-internal.js"], + parser: "@typescript-eslint/parser", + parserOptions: { + project: "./tsconfig.lint.json", + }, +}; diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 0000000000..5539e31ead --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,26 @@ +{ + "name": "@repo/ui", + "version": "0.0.0", + "private": true, + "exports": { + "./button": "./src/button.tsx", + "./card": "./src/card.tsx", + "./code": "./src/code.tsx" + }, + "scripts": { + "lint": "eslint . --max-warnings 0", + "generate:component": "turbo gen react-component" + }, + "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", + "@turbo/gen": "^1.11.3", + "@types/node": "^20.10.6", + "@types/eslint": "^8.56.1", + "@types/react": "^18.2.46", + "@types/react-dom": "^18.2.18", + "eslint": "^8.56.0", + "react": "^18.2.0", + "typescript": "5.4.3" + } +} diff --git a/packages/ui/src/alert.tsx b/packages/ui/src/alert.tsx new file mode 100644 index 0000000000..85cfe674b7 --- /dev/null +++ b/packages/ui/src/alert.tsx @@ -0,0 +1,64 @@ +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/src/lib/utils"; + +const alertVariants = cva( + "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + info: "border-info/50 text-info dark:border-info [&>svg]:text-info", + success: + "border-success/50 text-success dark:border-success [&>svg]:text-success", + warning: + "border-warning/50 text-warning dark:border-warning [&>svg]:text-warning", + }, + }, + defaultVariants: { + variant: "default", + }, + } +); + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)); +Alert.displayName = "Alert"; + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +AlertTitle.displayName = "AlertTitle"; + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +AlertDescription.displayName = "AlertDescription"; + +export { Alert, AlertTitle, AlertDescription }; diff --git a/packages/ui/src/avatar.tsx b/packages/ui/src/avatar.tsx new file mode 100644 index 0000000000..dcc25adf49 --- /dev/null +++ b/packages/ui/src/avatar.tsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import * as AvatarPrimitive from "@radix-ui/react-avatar"; + +import { cn } from "@/src/lib/utils"; + +type AvatarImageProps = React.ComponentPropsWithoutRef< + typeof AvatarPrimitive.Image +> & { + src?: string | React.ComponentType; +}; + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +Avatar.displayName = AvatarPrimitive.Root.displayName; + +const AvatarImage = React.forwardRef< + React.ElementRef, + AvatarImageProps +>(({ className, ...props }, ref) => ( + +)); +AvatarImage.displayName = AvatarPrimitive.Image.displayName; + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName; + +export { Avatar, AvatarImage, AvatarFallback }; diff --git a/packages/ui/src/badge.tsx b/packages/ui/src/badge.tsx new file mode 100644 index 0000000000..cac0bf960b --- /dev/null +++ b/packages/ui/src/badge.tsx @@ -0,0 +1,37 @@ +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/src/lib/utils"; + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: "border-transparent bg-primary hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + success: + "border-transparent bg-success text-success-foreground hover:bg-success/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +); + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ); +} + +export { Badge, badgeVariants }; diff --git a/packages/ui/src/button.tsx b/packages/ui/src/button.tsx new file mode 100644 index 0000000000..aa0d241a58 --- /dev/null +++ b/packages/ui/src/button.tsx @@ -0,0 +1,58 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/src/lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + clear: "bg-transparent text-primary-foreground outline-none", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10 p-1", + wrap: "h-full w-full", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + } +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/packages/ui/src/calendar.tsx b/packages/ui/src/calendar.tsx new file mode 100644 index 0000000000..0b2f5e83e6 --- /dev/null +++ b/packages/ui/src/calendar.tsx @@ -0,0 +1,62 @@ +import * as React from "react"; +import { ChevronLeft, ChevronRight } from "lucide-react"; +import { DayPicker } from "react-day-picker"; + +import { cn } from "@/src/lib/utils"; +import { buttonVariants } from "@/src/components/ui/button"; + +export type CalendarProps = React.ComponentProps; + +function Calendar({ + className, + classNames, + showOutsideDays = true, + ...props +}: CalendarProps) { + return ( + , + IconRight: ({ ...props }) => , + }} + {...props} + /> + ); +} +Calendar.displayName = "Calendar"; + +export { Calendar }; diff --git a/packages/ui/src/card.tsx b/packages/ui/src/card.tsx new file mode 100644 index 0000000000..3307589084 --- /dev/null +++ b/packages/ui/src/card.tsx @@ -0,0 +1,56 @@ +import * as React from 'react' + +import { cn } from '@/src/lib/utils' + +const Card = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ) +) +Card.displayName = 'Card' + +const CardHeader = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ) +) +CardHeader.displayName = 'CardHeader' + +const CardTitle = React.forwardRef>( + ({ className, ...props }, ref) => ( +

+ ) +) +CardTitle.displayName = 'CardTitle' + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardDescription.displayName = 'CardDescription' + +const CardContent = React.forwardRef>( + ({ className, ...props }, ref) => ( +

+ ) +) +CardContent.displayName = 'CardContent' + +const CardFooter = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ) +) +CardFooter.displayName = 'CardFooter' + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/packages/ui/src/checkbox.tsx b/packages/ui/src/checkbox.tsx new file mode 100644 index 0000000000..e4f571b0ce --- /dev/null +++ b/packages/ui/src/checkbox.tsx @@ -0,0 +1,28 @@ +import * as React from "react"; +import * as CheckboxPrimitive from "@radix-ui/react-checkbox"; +import { Check } from "lucide-react"; + +import { cn } from "@/src/lib/utils"; + +const Checkbox = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + + +)); +Checkbox.displayName = CheckboxPrimitive.Root.displayName; + +export { Checkbox }; diff --git a/packages/ui/src/command.tsx b/packages/ui/src/command.tsx new file mode 100644 index 0000000000..fd81fd9b4c --- /dev/null +++ b/packages/ui/src/command.tsx @@ -0,0 +1,153 @@ +import * as React from "react"; +import { DialogProps } from "@radix-ui/react-dialog"; +import { Command as CommandPrimitive } from "cmdk"; +import { Search } from "lucide-react"; + +import { cn } from "@/src/lib/utils"; +import { Dialog, DialogContent } from "@/src/components/ui/dialog"; + +const Command = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +Command.displayName = CommandPrimitive.displayName; + +interface CommandDialogProps extends DialogProps {} + +const CommandDialog = ({ children, ...props }: CommandDialogProps) => { + return ( + + + + {children} + + + + ); +}; + +const CommandInput = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( +
+ + +
+)); + +CommandInput.displayName = CommandPrimitive.Input.displayName; + +const CommandList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); + +CommandList.displayName = CommandPrimitive.List.displayName; + +const CommandEmpty = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>((props, ref) => ( + +)); + +CommandEmpty.displayName = CommandPrimitive.Empty.displayName; + +const CommandGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); + +CommandGroup.displayName = CommandPrimitive.Group.displayName; + +const CommandSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +CommandSeparator.displayName = CommandPrimitive.Separator.displayName; + +const CommandItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); + +CommandItem.displayName = CommandPrimitive.Item.displayName; + +const CommandShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ); +}; +CommandShortcut.displayName = "CommandShortcut"; + +export { + Command, + CommandDialog, + CommandInput, + CommandList, + CommandEmpty, + CommandGroup, + CommandItem, + CommandShortcut, + CommandSeparator, +}; diff --git a/packages/ui/src/dialog.tsx b/packages/ui/src/dialog.tsx new file mode 100644 index 0000000000..973b5c4088 --- /dev/null +++ b/packages/ui/src/dialog.tsx @@ -0,0 +1,102 @@ +import * as React from 'react' +import * as DialogPrimitive from '@radix-ui/react-dialog' +import { X } from 'lucide-react' + +import { cn } from '@/src/lib/utils' + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ className, ...props }: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = 'DialogHeader' + +const DialogFooter = ({ className, ...props }: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = 'DialogFooter' + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogClose, + DialogTrigger, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription +} diff --git a/packages/ui/src/dropdown-menu.tsx b/packages/ui/src/dropdown-menu.tsx new file mode 100644 index 0000000000..f08b9a2d01 --- /dev/null +++ b/packages/ui/src/dropdown-menu.tsx @@ -0,0 +1,183 @@ +import * as React from 'react' +import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' +import { Check, ChevronRight, Circle } from 'lucide-react' + +import { cn } from '@/src/lib/utils' + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes) => { + return +} +DropdownMenuShortcut.displayName = 'DropdownMenuShortcut' + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup +} diff --git a/packages/ui/src/external-link.tsx b/packages/ui/src/external-link.tsx new file mode 100644 index 0000000000..13366137ea --- /dev/null +++ b/packages/ui/src/external-link.tsx @@ -0,0 +1,25 @@ +import { ExternalLinkIcon } from "@radix-ui/react-icons"; +import React from "react"; + +const ExternalLink = ({ + href, + children, + className, +}: { + href: string; + children: React.ReactNode; + className?: string; +}) => { + return ( + + {children} + + ); +}; + +export default ExternalLink; diff --git a/packages/ui/src/input.tsx b/packages/ui/src/input.tsx new file mode 100644 index 0000000000..e23cdfa1a8 --- /dev/null +++ b/packages/ui/src/input.tsx @@ -0,0 +1,24 @@ +import * as React from 'react' + +import { cn } from '@/src/lib/utils' + +export interface InputProps extends React.InputHTMLAttributes {} + +const Input = React.forwardRef( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = 'Input' + +export { Input } diff --git a/packages/ui/src/key-value.tsx b/packages/ui/src/key-value.tsx new file mode 100644 index 0000000000..d75ca31aea --- /dev/null +++ b/packages/ui/src/key-value.tsx @@ -0,0 +1,29 @@ +import React from "react"; +import { Separator } from "./separator"; + +export const KeyValueList = ({ children }: { children: React.ReactNode }) => ( +
    {children}
+); + +export const KeyValueItem = ({ + label, + value, + isLastItem, +}: { + label: string; + value: string | number | React.ReactNode; + isLastItem?: boolean; +}) => ( +
  • +
    + {label} + {value} +
    + {!isLastItem && } +
  • +); + +export default KeyValueItem; diff --git a/packages/ui/src/label.tsx b/packages/ui/src/label.tsx new file mode 100644 index 0000000000..27adca2cea --- /dev/null +++ b/packages/ui/src/label.tsx @@ -0,0 +1,19 @@ +import * as React from 'react' +import * as LabelPrimitive from '@radix-ui/react-label' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/src/lib/utils' + +const labelVariants = cva( + 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70' +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/packages/ui/src/navigation-menu.tsx b/packages/ui/src/navigation-menu.tsx new file mode 100644 index 0000000000..1e7b75005f --- /dev/null +++ b/packages/ui/src/navigation-menu.tsx @@ -0,0 +1,120 @@ +import * as React from 'react' +import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu' +import { cva } from 'class-variance-authority' +import { ChevronDown } from 'lucide-react' + +import { cn } from '@/src/lib/utils' + +const NavigationMenu = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {children} + + +)) +NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName + +const NavigationMenuList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName + +const NavigationMenuItem = NavigationMenuPrimitive.Item + +const navigationMenuTriggerStyle = cva( + 'group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50' +) + +const NavigationMenuTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {children}{' '} + +)) +NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName + +const NavigationMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName + +const NavigationMenuLink = NavigationMenuPrimitive.Link + +const NavigationMenuViewport = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( +
    + +
    +)) +NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName + +const NavigationMenuIndicator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +
    + +)) +NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName + +export { + navigationMenuTriggerStyle, + NavigationMenu, + NavigationMenuList, + NavigationMenuItem, + NavigationMenuContent, + NavigationMenuTrigger, + NavigationMenuLink, + NavigationMenuIndicator, + NavigationMenuViewport +} diff --git a/packages/ui/src/popover.tsx b/packages/ui/src/popover.tsx new file mode 100644 index 0000000000..18b61979cf --- /dev/null +++ b/packages/ui/src/popover.tsx @@ -0,0 +1,29 @@ +import * as React from 'react' +import * as PopoverPrimitive from '@radix-ui/react-popover' + +import { cn } from '@/src/lib/utils' + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent } diff --git a/packages/ui/src/select.tsx b/packages/ui/src/select.tsx new file mode 100644 index 0000000000..bb1703edc5 --- /dev/null +++ b/packages/ui/src/select.tsx @@ -0,0 +1,119 @@ +import * as React from 'react' +import * as SelectPrimitive from '@radix-ui/react-select' +import { Check, ChevronDown } from 'lucide-react' + +import { cn } from '@/src/lib/utils' + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = 'popper', ...props }, ref) => ( + + + + {children} + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator +} diff --git a/packages/ui/src/separator.tsx b/packages/ui/src/separator.tsx new file mode 100644 index 0000000000..fd1ac8931b --- /dev/null +++ b/packages/ui/src/separator.tsx @@ -0,0 +1,29 @@ +import * as React from "react"; +import * as SeparatorPrimitive from "@radix-ui/react-separator"; + +import { cn } from "@/src/lib/utils"; + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref + ) => ( + + ) +); +Separator.displayName = SeparatorPrimitive.Root.displayName; + +export { Separator }; diff --git a/packages/ui/src/skeleton.tsx b/packages/ui/src/skeleton.tsx new file mode 100644 index 0000000000..03e4c85986 --- /dev/null +++ b/packages/ui/src/skeleton.tsx @@ -0,0 +1,15 @@ +import { cn } from "@/src/lib/utils" + +function Skeleton({ + className, + ...props +}: React.HTMLAttributes) { + return ( +
    + ) +} + +export { Skeleton } diff --git a/packages/ui/src/spinner.tsx b/packages/ui/src/spinner.tsx new file mode 100644 index 0000000000..2948ef451b --- /dev/null +++ b/packages/ui/src/spinner.tsx @@ -0,0 +1,11 @@ +import React from "react"; + +const Spinner = () => { + return ( +
    +
    +
    + ); +}; + +export default Spinner; diff --git a/packages/ui/src/table.tsx b/packages/ui/src/table.tsx new file mode 100644 index 0000000000..0b8376b09f --- /dev/null +++ b/packages/ui/src/table.tsx @@ -0,0 +1,91 @@ +import * as React from 'react' + +import { cn } from '@/src/lib/utils' + +const Table = React.forwardRef>( + ({ className, ...props }, ref) => ( +
    + + + ) +) +Table.displayName = 'Table' + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = 'TableHeader' + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = 'TableBody' + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableFooter.displayName = 'TableFooter' + +const TableRow = React.forwardRef>( + ({ className, ...props }, ref) => ( + + ) +) +TableRow.displayName = 'TableRow' + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
    +)) +TableHead.displayName = 'TableHead' + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableCell.displayName = 'TableCell' + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
    +)) +TableCaption.displayName = 'TableCaption' + +export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption } diff --git a/packages/ui/src/tabs.tsx b/packages/ui/src/tabs.tsx new file mode 100644 index 0000000000..47a3925903 --- /dev/null +++ b/packages/ui/src/tabs.tsx @@ -0,0 +1,53 @@ +import * as React from 'react' +import * as TabsPrimitive from '@radix-ui/react-tabs' + +import { cn } from '@/src/lib/utils' + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/packages/ui/src/textarea.tsx b/packages/ui/src/textarea.tsx new file mode 100644 index 0000000000..db65d62a57 --- /dev/null +++ b/packages/ui/src/textarea.tsx @@ -0,0 +1,24 @@ +import * as React from "react" + +import { cn } from "@/src/lib/utils" + +export interface TextareaProps + extends React.TextareaHTMLAttributes {} + +const Textarea = React.forwardRef( + ({ className, ...props }, ref) => { + return ( +