From dc7f335beb0ed7b01096f4895189a048e8b8b08b Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 09:22:05 +0100 Subject: [PATCH 01/95] Latest lockfile --- pnpm-lock.yaml | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d601be2a7a..2e32ccda19e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -689,8 +689,8 @@ importers: integrations/airtable: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x airtable: ^0.12.1 @@ -717,8 +717,8 @@ importers: '@octokit/types': ^9.2.3 '@octokit/webhooks': ^10.4.0 '@octokit/webhooks-types': ^6.10.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' octokit: ^2.0.14 @@ -743,8 +743,8 @@ importers: integrations/openai: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' openai: ^4.2.0 @@ -763,8 +763,8 @@ importers: integrations/plain: specifiers: '@team-plain/typescript-sdk': ^2.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -781,8 +781,8 @@ importers: integrations/resend: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' resend: ^1.0.0 @@ -801,8 +801,8 @@ importers: integrations/sendgrid: specifiers: '@sendgrid/mail': ^7.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x rimraf: ^3.0.2 @@ -822,7 +822,7 @@ importers: integrations/slack: specifiers: '@slack/web-api': ^6.8.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -840,8 +840,8 @@ importers: integrations/stripe: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@types/node': 16.x rimraf: ^3.0.2 stripe: ^12.14.0 @@ -864,8 +864,8 @@ importers: integrations/supabase: specifiers: '@supabase/supabase-js': ^2.26.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 18.x rimraf: ^3.0.2 @@ -888,8 +888,8 @@ importers: integrations/typeform: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@typeform/api-client': ^1.8.0 '@types/node': 16.x rimraf: ^3.0.2 @@ -1116,7 +1116,7 @@ importers: packages/express: specifiers: '@remix-run/web-fetch': ^4.3.5 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/express': ^4.17.13 @@ -1189,7 +1189,7 @@ importers: packages/react: specifiers: '@tanstack/react-query': 5.0.0-beta.2 - '@trigger.dev/core': workspace:^2.1.1 + '@trigger.dev/core': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/react': 18.2.17 @@ -1265,7 +1265,7 @@ importers: packages/trigger-sdk: specifiers: - '@trigger.dev/core': workspace:^2.1.1 + '@trigger.dev/core': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/node': '18' From dbd094216dddc30365d3694aa89ca7e7f46b1269 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 11:14:35 +0100 Subject: [PATCH 02/95] Updated Astro setup docs: env import --- docs/_snippets/manual-setup-astro.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_snippets/manual-setup-astro.mdx b/docs/_snippets/manual-setup-astro.mdx index 55c16726b6e..51ebdc127a4 100644 --- a/docs/_snippets/manual-setup-astro.mdx +++ b/docs/_snippets/manual-setup-astro.mdx @@ -60,8 +60,8 @@ To set up the Trigger Client for your project, follow these steps: export const client = new TriggerClient({ id: "my-app", - apiKey: process.env.TRIGGER_API_KEY, - apiUrl: process.env.TRIGGER_API_URL, + apiKey: import.meta.env.TRIGGER_API_KEY, + apiUrl: import.meta.env.TRIGGER_API_URL, }); ``` From dde51d6d25ec69af835253d1a2929188524712df Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 11:55:38 +0100 Subject: [PATCH 03/95] Astro docs improvements --- docs/_snippets/manual-setup-astro.mdx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/_snippets/manual-setup-astro.mdx b/docs/_snippets/manual-setup-astro.mdx index 51ebdc127a4..7dd774f1cd8 100644 --- a/docs/_snippets/manual-setup-astro.mdx +++ b/docs/_snippets/manual-setup-astro.mdx @@ -90,9 +90,9 @@ To set up the Trigger Client for your project, follow these steps: By following these steps, you'll configure the Trigger Client to work with your project, regardless of whether you have a separate **src** directory and whether you're using TypeScript or JavaScript files. -## update the astro.config file to enable ssr +## Update the astro.config file to enable ssr -- You need to enable ssr to use API endpoints that would be in the `pages/api` folder +- You need to enable ssr to use API endpoints (which are required by Trigger.dev). ```typescript astro.config.mjs import { defineConfig } from "astro/config"; @@ -109,12 +109,13 @@ To establish an API route for interacting with Trigger.dev, follow these steps b 1. Create a new file named `trigger.(ts/js)` within the `pages/api/` directory. 2. Add the following code to `trigger.(ts/js)`: -```typescript api/trigger.ts/js +```typescript src/pages/api/trigger.(ts/js) import { createAstroRoute } from "@trigger.dev/astro"; -import { client } from "@/trigger"; +//you may need to update this path to point at your trigger.ts file +import { client } from "../../trigger"; -//import your jobs -import "@/jobs"; +//import your jobs, this could be different depending on your project structure +import "../../jobs"; export const { POST } = createAstroRoute(client); ``` @@ -126,7 +127,7 @@ export const { POST } = createAstroRoute(client); -```typescript example.(ts/js) +```typescript src/jobs/example.(ts/js) import { eventTrigger } from "@trigger.dev/sdk"; import { client } from "@/trigger"; @@ -148,10 +149,9 @@ client.defineJob({ }); ``` -```typescript index.ts/index.(ts/js) -// import all your job files here - -export * from "./examples"; +```typescript src/jobs/index.(ts/js) +// export all your job files here +export * from "./example"; ``` From a68a912d56e18eaae6f714f1771f849d4e80a3cc Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 11:55:51 +0100 Subject: [PATCH 04/95] Docs: improved the limitations --- docs/documentation/concepts/limitations.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/documentation/concepts/limitations.mdx b/docs/documentation/concepts/limitations.mdx index 4f1330d8704..ab9b80a8c6c 100644 --- a/docs/documentation/concepts/limitations.mdx +++ b/docs/documentation/concepts/limitations.mdx @@ -4,7 +4,7 @@ title: "Limitations" There are a few limitations that are important to understand. -In the current beta: +In the latest version: - Runs on localhost are limited to 5 minutes. - On long-running servers (not serverless) Runs can be retried erroneously. From 9a0e6412e9d11f2a19431037dc9b531a8e300f88 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 13:37:02 +0100 Subject: [PATCH 05/95] Bumped package versions to 2.1.3 --- integrations/airtable/CHANGELOG.md | 8 ++++++++ integrations/airtable/package.json | 6 +++--- integrations/github/CHANGELOG.md | 8 ++++++++ integrations/github/package.json | 6 +++--- integrations/openai/CHANGELOG.md | 8 ++++++++ integrations/openai/package.json | 6 +++--- integrations/plain/CHANGELOG.md | 8 ++++++++ integrations/plain/package.json | 6 +++--- integrations/resend/CHANGELOG.md | 8 ++++++++ integrations/resend/package.json | 6 +++--- integrations/sendgrid/CHANGELOG.md | 8 ++++++++ integrations/sendgrid/package.json | 6 +++--- integrations/slack/CHANGELOG.md | 7 +++++++ integrations/slack/package.json | 4 ++-- integrations/stripe/CHANGELOG.md | 8 ++++++++ integrations/stripe/package.json | 6 +++--- integrations/supabase/CHANGELOG.md | 8 ++++++++ integrations/supabase/package.json | 6 +++--- integrations/typeform/CHANGELOG.md | 8 ++++++++ integrations/typeform/package.json | 6 +++--- packages/astro/CHANGELOG.md | 7 +++++++ packages/astro/package.json | 4 ++-- packages/cli/CHANGELOG.md | 2 ++ packages/cli/package.json | 2 +- packages/core/CHANGELOG.md | 2 ++ packages/core/package.json | 2 +- packages/eslint-plugin/CHANGELOG.md | 2 ++ packages/eslint-plugin/package.json | 2 +- packages/express/CHANGELOG.md | 7 +++++++ packages/express/package.json | 6 +++--- packages/integration-kit/CHANGELOG.md | 2 ++ packages/integration-kit/package.json | 2 +- packages/nextjs/CHANGELOG.md | 7 +++++++ packages/nextjs/package.json | 4 ++-- packages/react/CHANGELOG.md | 7 +++++++ packages/react/package.json | 4 ++-- packages/remix/CHANGELOG.md | 7 +++++++ packages/remix/package.json | 4 ++-- packages/testing/CHANGELOG.md | 8 ++++++++ packages/testing/package.json | 2 +- packages/trigger-sdk/CHANGELOG.md | 8 ++++++++ packages/trigger-sdk/package.json | 4 ++-- 42 files changed, 185 insertions(+), 47 deletions(-) diff --git a/integrations/airtable/CHANGELOG.md b/integrations/airtable/CHANGELOG.md index b00a8e55c95..c93c1dbbee9 100644 --- a/integrations/airtable/CHANGELOG.md +++ b/integrations/airtable/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/airtable +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/airtable/package.json b/integrations/airtable/package.json index eeec49284e4..985282d44fc 100644 --- a/integrations/airtable/package.json +++ b/integrations/airtable/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/airtable", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev integration for airtable", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -26,8 +26,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@trigger.dev/integration-kit": "workspace:^2.1.2", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/integration-kit": "workspace:^2.1.3", + "@trigger.dev/sdk": "workspace:^2.1.3", "airtable": "^0.12.1", "zod": "3.21.4" }, diff --git a/integrations/github/CHANGELOG.md b/integrations/github/CHANGELOG.md index 545e09e9a42..ed8d08ec3bc 100644 --- a/integrations/github/CHANGELOG.md +++ b/integrations/github/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/github +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/github/package.json b/integrations/github/package.json index dd7136a2dda..9af2f6e6560 100644 --- a/integrations/github/package.json +++ b/integrations/github/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/github", - "version": "2.1.2", + "version": "2.1.3", "description": "The official GitHub integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -29,8 +29,8 @@ "@octokit/request": "^6.2.5", "@octokit/request-error": "^4.0.1", "@octokit/webhooks": "^10.4.0", - "@trigger.dev/sdk": "workspace:^2.1.2", - "@trigger.dev/integration-kit": "workspace:^2.1.2", + "@trigger.dev/sdk": "workspace:^2.1.3", + "@trigger.dev/integration-kit": "workspace:^2.1.3", "octokit": "^2.0.14", "zod": "3.21.4" }, diff --git a/integrations/openai/CHANGELOG.md b/integrations/openai/CHANGELOG.md index d360d655aa8..72c8735ae2e 100644 --- a/integrations/openai/CHANGELOG.md +++ b/integrations/openai/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/slack +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/openai/package.json b/integrations/openai/package.json index e4fe25c83d5..4dd05de91c6 100644 --- a/integrations/openai/package.json +++ b/integrations/openai/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/openai", - "version": "2.1.2", + "version": "2.1.3", "description": "The official OpenAI integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -25,8 +25,8 @@ }, "dependencies": { "openai": "^4.2.0", - "@trigger.dev/sdk": "workspace:^2.1.2", - "@trigger.dev/integration-kit": "workspace:^2.1.2" + "@trigger.dev/sdk": "workspace:^2.1.3", + "@trigger.dev/integration-kit": "workspace:^2.1.3" }, "engines": { "node": ">=16.8.0" diff --git a/integrations/plain/CHANGELOG.md b/integrations/plain/CHANGELOG.md index a2f059d9f51..b12c0b2df6b 100644 --- a/integrations/plain/CHANGELOG.md +++ b/integrations/plain/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/plain +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/plain/package.json b/integrations/plain/package.json index e9f31ab03bc..eb76bfa7ad2 100644 --- a/integrations/plain/package.json +++ b/integrations/plain/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/plain", - "version": "2.1.2", + "version": "2.1.3", "description": "The official Plain.com integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -24,8 +24,8 @@ "build:tsup": "tsup" }, "dependencies": { - "@trigger.dev/integration-kit": "workspace:^2.1.2", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/integration-kit": "workspace:^2.1.3", + "@trigger.dev/sdk": "workspace:^2.1.3", "@team-plain/typescript-sdk": "^2.7.0" }, "engines": { diff --git a/integrations/resend/CHANGELOG.md b/integrations/resend/CHANGELOG.md index 6bd15f0fe3f..50ca41dc6c6 100644 --- a/integrations/resend/CHANGELOG.md +++ b/integrations/resend/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/resend +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/resend/package.json b/integrations/resend/package.json index 5ee79e223b6..b39df10ee6a 100644 --- a/integrations/resend/package.json +++ b/integrations/resend/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/resend", - "version": "2.1.2", + "version": "2.1.3", "description": "The official Resend.com integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -24,8 +24,8 @@ "build:tsup": "tsup" }, "dependencies": { - "@trigger.dev/integration-kit": "workspace:^2.1.2", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/integration-kit": "workspace:^2.1.3", + "@trigger.dev/sdk": "workspace:^2.1.3", "resend": "^1.0.0" }, "engines": { diff --git a/integrations/sendgrid/CHANGELOG.md b/integrations/sendgrid/CHANGELOG.md index 1417bbbfda3..5811eae947a 100644 --- a/integrations/sendgrid/CHANGELOG.md +++ b/integrations/sendgrid/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/sendgrid +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/sendgrid/package.json b/integrations/sendgrid/package.json index 7a7fb913f68..54d5c2c70d0 100644 --- a/integrations/sendgrid/package.json +++ b/integrations/sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sendgrid", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev integration for @sendgrid/mail", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -27,8 +27,8 @@ }, "dependencies": { "@sendgrid/mail": "^7.7.0", - "@trigger.dev/sdk": "workspace:^2.1.2", - "@trigger.dev/integration-kit": "workspace:^2.1.2" + "@trigger.dev/sdk": "workspace:^2.1.3", + "@trigger.dev/integration-kit": "workspace:^2.1.3" }, "engines": { "node": ">=16.8.0" diff --git a/integrations/slack/CHANGELOG.md b/integrations/slack/CHANGELOG.md index 0cf9f6f012e..5ac08ddef63 100644 --- a/integrations/slack/CHANGELOG.md +++ b/integrations/slack/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/slack +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/slack/package.json b/integrations/slack/package.json index c1a4bae3d45..daa684a53ce 100644 --- a/integrations/slack/package.json +++ b/integrations/slack/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/slack", - "version": "2.1.2", + "version": "2.1.3", "description": "The official Slack integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -25,7 +25,7 @@ }, "dependencies": { "@slack/web-api": "^6.8.1", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/sdk": "workspace:^2.1.3", "zod": "3.21.4" }, "engines": { diff --git a/integrations/stripe/CHANGELOG.md b/integrations/stripe/CHANGELOG.md index b10600ad95a..19813065111 100644 --- a/integrations/stripe/CHANGELOG.md +++ b/integrations/stripe/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/stripe +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/stripe/package.json b/integrations/stripe/package.json index fcbd9c292f1..427d50ef8df 100644 --- a/integrations/stripe/package.json +++ b/integrations/stripe/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/stripe", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev integration for stripe", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -26,8 +26,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@trigger.dev/integration-kit": "workspace:^2.1.2", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/integration-kit": "workspace:^2.1.3", + "@trigger.dev/sdk": "workspace:^2.1.3", "stripe": "^12.14.0", "zod": "3.21.4" }, diff --git a/integrations/supabase/CHANGELOG.md b/integrations/supabase/CHANGELOG.md index 7de80da39a6..de48ac94352 100644 --- a/integrations/supabase/CHANGELOG.md +++ b/integrations/supabase/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/supabase +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/supabase/package.json b/integrations/supabase/package.json index f9876d5707f..a94e53d57b5 100644 --- a/integrations/supabase/package.json +++ b/integrations/supabase/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/supabase", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev integration for @supabase/supabase-js", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -27,8 +27,8 @@ }, "dependencies": { "@supabase/supabase-js": "^2.26.0", - "@trigger.dev/integration-kit": "workspace:^2.1.2", - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/integration-kit": "workspace:^2.1.3", + "@trigger.dev/sdk": "workspace:^2.1.3", "supabase-management-js": "^0.1.4", "zod": "3.21.4" }, diff --git a/integrations/typeform/CHANGELOG.md b/integrations/typeform/CHANGELOG.md index 449cbe62132..fd0caabbee5 100644 --- a/integrations/typeform/CHANGELOG.md +++ b/integrations/typeform/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/typeform +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/integration-kit@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/integrations/typeform/package.json b/integrations/typeform/package.json index dd166bf12de..0aaaec0dfec 100644 --- a/integrations/typeform/package.json +++ b/integrations/typeform/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/typeform", - "version": "2.1.2", + "version": "2.1.3", "description": "The official Typeform integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -26,8 +26,8 @@ }, "dependencies": { "@typeform/api-client": "^1.8.0", - "@trigger.dev/sdk": "workspace:^2.1.2", - "@trigger.dev/integration-kit": "workspace:^2.1.2", + "@trigger.dev/sdk": "workspace:^2.1.3", + "@trigger.dev/integration-kit": "workspace:^2.1.3", "zod": "3.21.4" }, "engines": { diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index e0a7b7f689c..16c682a7b06 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/astro +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 9ccadc66728..dcf4962e987 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/astro", "description": "An Astro-native integration for Trigger.dev background jobs platform", - "version": "2.1.2", + "version": "2.1.3", "main": "./dist/index.js", "types": "./dist/index.d.ts", "files": [ @@ -20,7 +20,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^2.1.2" + "@trigger.dev/sdk": "workspace:^2.1.3" }, "devDependencies": { "astro": "^3.0.12", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index c7f7d5a2f9d..10cb7a8fee6 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,7 @@ # create-trigger +## 2.1.3 + ## 2.1.2 ## 2.1.1 diff --git a/packages/cli/package.json b/packages/cli/package.json index 80e3115bf58..f33c78a0579 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/cli", - "version": "2.1.2", + "version": "2.1.3", "description": "The Trigger.dev CLI", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 70da691ffa5..17188826ba1 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,7 @@ # internal-platform +## 2.1.3 + ## 2.1.2 ## 2.1.1 diff --git a/packages/core/package.json b/packages/core/package.json index 5b0c37a0fae..0f3c9abdd0f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core", - "version": "2.1.2", + "version": "2.1.3", "description": "Core code used across the Trigger.dev SDK and platform", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index f00d982e508..30e804ac9ef 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/eslint-plugin +## 2.1.3 + ## 2.1.2 ## 2.1.1 diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 735ac60654f..e82883554cd 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/eslint-plugin", - "version": "2.1.2", + "version": "2.1.3", "description": "ESLint plugin with trigger.dev best practices", "keywords": [ "eslint", diff --git a/packages/express/CHANGELOG.md b/packages/express/CHANGELOG.md index ab4fc5c378e..ae3e424c59a 100644 --- a/packages/express/CHANGELOG.md +++ b/packages/express/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/express +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/express/package.json b/packages/express/package.json index 8d139c5d2d7..9c6412b0857 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/express", - "version": "2.1.2", + "version": "2.1.3", "description": "Official Express adapter for Trigger.dev", "license": "MIT", "main": "./dist/index.js", @@ -19,7 +19,7 @@ "./package.json": "./package.json" }, "devDependencies": { - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/sdk": "workspace:^2.1.3", "@trigger.dev/tsconfig": "workspace:*", "@types/debug": "^4.1.7", "@types/express": "^4.17.13", @@ -33,7 +33,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^2.1.2" + "@trigger.dev/sdk": "workspace:^2.1.3" }, "dependencies": { "@remix-run/web-fetch": "^4.3.5", diff --git a/packages/integration-kit/CHANGELOG.md b/packages/integration-kit/CHANGELOG.md index 82704f81c42..f001b7de315 100644 --- a/packages/integration-kit/CHANGELOG.md +++ b/packages/integration-kit/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/integration-kit +## 2.1.3 + ## 2.1.2 ## 2.1.1 diff --git a/packages/integration-kit/package.json b/packages/integration-kit/package.json index 8a657c6cd2a..81d901138be 100644 --- a/packages/integration-kit/package.json +++ b/packages/integration-kit/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/integration-kit", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev Integration Kit has helpers to make creating integrations easier", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index e640e5c18ee..023e18bbde1 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/nextjs +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 1931b5cbc06..96e715127c9 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/nextjs", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev Next.js integration", "license": "MIT", "main": "./dist/index.js", @@ -34,7 +34,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^2.1.2", + "@trigger.dev/sdk": "workspace:^2.1.3", "next": ">=12.0.0 <14.0.0" }, "dependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index cc1bbade1cd..07c34dc923f 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/react +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index 6c98255a619..df330021b77 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/react", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev React SDK", "license": "MIT", "types": "dist/index.d.ts", @@ -27,7 +27,7 @@ }, "dependencies": { "@tanstack/react-query": "5.0.0-beta.2", - "@trigger.dev/core": "workspace:^2.1.2", + "@trigger.dev/core": "workspace:^2.1.3", "debug": "^4.3.4", "zod": "3.21.4" }, diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index d66d94b0fd7..d41afd4ca31 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/remix +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/remix/package.json b/packages/remix/package.json index 0a0d04921e9..9040c157da8 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/remix", - "version": "2.1.2", + "version": "2.1.3", "description": "Trigger.dev Remix integration", "license": "MIT", "main": "./dist/index.js", @@ -34,7 +34,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^2.1.2" + "@trigger.dev/sdk": "workspace:^2.1.3" }, "dependencies": { "debug": "^4.3.4" diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md index 9ddc382dbeb..9ae83576aa0 100644 --- a/packages/testing/CHANGELOG.md +++ b/packages/testing/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/testing +## 2.1.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/sdk@2.1.3` + - `@trigger.dev/core@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/testing/package.json b/packages/testing/package.json index cb901361b6b..4cb379997a6 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/testing", "description": "A collection of useful tools to write tests for Trigger.dev.", - "version": "2.1.2", + "version": "2.1.3", "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/trigger-sdk/CHANGELOG.md b/packages/trigger-sdk/CHANGELOG.md index bd99ae7a484..192d035f765 100644 --- a/packages/trigger-sdk/CHANGELOG.md +++ b/packages/trigger-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/sdk +## 2.1.3 + +### Patch Changes + +- Fix for bad publish +- Updated dependencies: + - `@trigger.dev/core@2.1.3` + ## 2.1.2 ### Patch Changes diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 8115d1c9297..11c13c92d23 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sdk", - "version": "2.1.2", + "version": "2.1.3", "description": "trigger.dev Node.JS SDK", "license": "MIT", "main": "./dist/index.js", @@ -25,7 +25,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@trigger.dev/core": "workspace:^2.1.2", + "@trigger.dev/core": "workspace:^2.1.3", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", From 88ebf4a1a0f72112b5ebfb91695fa846f414e5a2 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 14 Sep 2023 15:25:43 +0100 Subject: [PATCH 06/95] Updated the Astro docs with SSR notes --- docs/_snippets/manual-setup-astro.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/_snippets/manual-setup-astro.mdx b/docs/_snippets/manual-setup-astro.mdx index 7dd774f1cd8..160d72a9b12 100644 --- a/docs/_snippets/manual-setup-astro.mdx +++ b/docs/_snippets/manual-setup-astro.mdx @@ -98,10 +98,13 @@ By following these steps, you'll configure the Trigger Client to work with your import { defineConfig } from "astro/config"; export default defineConfig({ + //alternatively you can use "hybrid" instead of "server" output: "server", }); ``` +[Read the full Astro docs on SSR](https://docs.astro.build/en/guides/server-side-rendering/). + ## Creating the API Route To establish an API route for interacting with Trigger.dev, follow these steps based on your project's file type and structure @@ -117,6 +120,7 @@ import { client } from "../../trigger"; //import your jobs, this could be different depending on your project structure import "../../jobs"; +export const prerender = false; export const { POST } = createAstroRoute(client); ``` From 6ccb4fbc63cf9122d4454bbaee0f0a76ef044f6b Mon Sep 17 00:00:00 2001 From: Wesley <100464352+ologbonowiwi@users.noreply.github.com> Date: Fri, 15 Sep 2023 08:51:25 -0300 Subject: [PATCH 07/95] test/368/use vitest instead of jest (#470) * chore: add vitest dependencies * refactor: replace jest by vitest * test: disable broken test * Update pnpm-lock.yaml * Update pnpm-lock.yaml --------- Co-authored-by: Matt Aitken --- packages/cli/package.json | 8 ++-- .../cli/src/utils/getUserPkgManager.spec.ts | 38 +++++++++++++------ packages/cli/test/example.test.ts | 10 +++-- packages/cli/tsconfig.json | 2 +- packages/cli/vite.config.ts | 7 ++++ 5 files changed, 45 insertions(+), 20 deletions(-) create mode 100644 packages/cli/vite.config.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index f33c78a0579..b4ecec32e35 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -42,12 +42,12 @@ "@types/jest": "^29.5.3", "@types/node": "16", "@types/node-fetch": "^2.6.2", - "jest": "^29.6.2", "rimraf": "^3.0.2", "ts-jest": "^29.1.1", "tsup": "^6.5.0", "type-fest": "^3.6.0", - "typescript": "^4.9.5" + "typescript": "^4.9.5", + "vitest": "^0.34.4" }, "scripts": { "typecheck": "tsc", @@ -55,7 +55,7 @@ "dev": "tsup --watch", "clean": "rimraf dist", "start": "node dist/index.js", - "test": "jest" + "test": "vitest" }, "dependencies": { "@types/degit": "^2.8.3", @@ -68,11 +68,11 @@ "gradient-string": "^2.0.2", "inquirer": "^9.1.4", "localtunnel": "^2.0.2", - "openai": "^4.5.0", "nanoid": "^4.0.2", "ngrok": "5.0.0-beta.2", "node-fetch": "^3.3.0", "npm-check-updates": "^16.12.2", + "openai": "^4.5.0", "ora": "^6.1.2", "path-to-regexp": "^6.2.1", "posthog-node": "^3.1.1", diff --git a/packages/cli/src/utils/getUserPkgManager.spec.ts b/packages/cli/src/utils/getUserPkgManager.spec.ts index 3e5f493c46e..9ad7d30f17b 100644 --- a/packages/cli/src/utils/getUserPkgManager.spec.ts +++ b/packages/cli/src/utils/getUserPkgManager.spec.ts @@ -2,13 +2,21 @@ import { randomUUID } from "crypto"; import { pathExists } from "./fileSystem"; import { getUserPackageManager } from "./getUserPkgManager"; import * as pathModule from "path"; +import { Mock } from "vitest"; -jest.mock('path', () => ({ - join: jest.fn().mockImplementation((...paths: string[]) => paths.join('/')), -})) +vi.mock('path', () => { + const path = { + join: vi.fn().mockImplementation((...paths: string[]) => paths.join('/')), + }; -jest.mock('./fileSystem', () => ({ - pathExists: jest.fn().mockResolvedValue(false), + return { + ...path, + default: path, + } +}) + +vi.mock('./fileSystem.ts', () => ({ + pathExists: vi.fn().mockResolvedValue(false), })); describe(getUserPackageManager.name, () => { @@ -18,7 +26,13 @@ describe(getUserPackageManager.name, () => { path = randomUUID(); }); - afterEach(jest.clearAllMocks); + afterEach(() => { + vi.clearAllMocks(); + }); + + afterAll(() => { + vi.restoreAllMocks(); + }) describe(`should use ${pathExists.name} to check for package manager artifacts`, () => { it('should join the path with the artifact name', async () => { @@ -32,7 +46,7 @@ describe(getUserPackageManager.name, () => { it(`should call ${pathExists.name} with the path.join result`, async () => { const expected = randomUUID(); - (pathModule.join as jest.Mock).mockReturnValueOnce(expected); + (pathModule.join as Mock).mockReturnValueOnce(expected); await getUserPackageManager(path); @@ -40,25 +54,25 @@ describe(getUserPackageManager.name, () => { }); it('should return "yarn" if yarn.lock exists', async () => { - (pathExists as jest.Mock).mockImplementation((path: string) => path.endsWith('yarn.lock')); + (pathExists as Mock).mockImplementation((path: string) => path.endsWith('yarn.lock')); expect(await getUserPackageManager(path)).toBe('yarn'); }); it('should return "pnpm" if pnpm-lock.yaml exists', async () => { - (pathExists as jest.Mock).mockImplementation(async (path: string) => path.endsWith('pnpm-lock.yaml')); + (pathExists as Mock).mockImplementation(async (path: string) => path.endsWith('pnpm-lock.yaml')); expect(await getUserPackageManager(path)).toBe('pnpm'); }); it('should return "npm" if package-lock.json exists', async () => { - (pathExists as jest.Mock).mockImplementation((path: string) => path.endsWith('package-lock.json')); + (pathExists as Mock).mockImplementation((path: string) => path.endsWith('package-lock.json')); expect(await getUserPackageManager(path)).toBe('npm'); }); it('should return "npm" if npm-shrinkwrap.json exists', async () => { - (pathExists as jest.Mock).mockImplementation((path: string) => path.endsWith('npm-shrinkwrap.json')); + (pathExists as Mock).mockImplementation((path: string) => path.endsWith('npm-shrinkwrap.json')); expect(await getUserPackageManager(path)).toBe('npm'); }); @@ -66,7 +80,7 @@ describe(getUserPackageManager.name, () => { describe(`if doesn't found artifacts, should use process.env.npm_config_user_agent to detect package manager`, () => { beforeEach(() => { - (pathExists as jest.Mock).mockResolvedValue(false); + (pathExists as Mock).mockResolvedValue(false); }) it('should return "yarn" if process.env.npm_config_user_agent starts with "yarn"', async () => { diff --git a/packages/cli/test/example.test.ts b/packages/cli/test/example.test.ts index 8005acc7936..18ec80513c7 100644 --- a/packages/cli/test/example.test.ts +++ b/packages/cli/test/example.test.ts @@ -5,7 +5,7 @@ import { join } from "node:path"; let environment: CLITestEnvironment; beforeAll(async () => { - // This will create a sandbox folder under `/var/folders` + // This will create a "sandbox" terminal under `/var/folders` environment = await prepareEnvironment(); }); @@ -13,7 +13,8 @@ afterAll(async () => { await environment.cleanup(); }); -describe('cli', () => { +// this test is not returning timeout +describe.skip('cli', () => { // can be any path with a nextjs project const NEXT_PROJECT_PATH = join(__dirname, '..', '..', '..', 'examples', 'nextjs-example'); @@ -22,6 +23,9 @@ describe('cli', () => { console.log('getStdout() :>> ', getStdout()); + // this promises never resolves + // maybe we have a conflict between vitest and @gmrchk/cli-testing-library? + // with jest works fine, but with vitest not await waitForText('Detected Next.js project'); console.log('getStdout() :>> ', getStdout()); @@ -36,4 +40,4 @@ describe('cli', () => { // wait next prompt, make assertions and keep going }); -}) \ No newline at end of file +}, 20000) \ No newline at end of file diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 7a865e071c4..31b1728d41e 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -47,7 +47,7 @@ "useDefineForClassFields": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "types": ["jest"] + "types": ["vitest/globals"] }, "exclude": ["node_modules"] } diff --git a/packages/cli/vite.config.ts b/packages/cli/vite.config.ts new file mode 100644 index 00000000000..e72485843d7 --- /dev/null +++ b/packages/cli/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true + }, +}) \ No newline at end of file From fb5f4e308f9960a4e801dc4e87c7accf053f3a68 Mon Sep 17 00:00:00 2001 From: Vishesh Rawal <92795514+visheshrwl@users.noreply.github.com> Date: Mon, 11 Sep 2023 07:20:01 +0000 Subject: [PATCH 08/95] Created Temp for pull req, bugreport & feature req --- .github/ISSUE_TEMPLATE/bug_report.yml | 38 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 27 +++++++++++++++ .github/labeler.yml | 12 +++++++ .github/pull_request_template.md | 21 ++++++++++++ 5 files changed, 103 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/labeler.yml create mode 100644 .github/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..9b9fe8d799d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,38 @@ +name: 🐞 Bug Report +description: Create a bug report to help us improve +title: "bug: " +labels: ["πŸžβ” unconfirmed bug"] +body: + - type: textarea + attributes: + label: Provide environment information + description: | + Run this command in your project root and paste the results: + ```bash + npx envinfo --system --binaries + ``` + If the issue is regarding a scaffolded app, please include the version used to scaffold that app which you can find in the `package.json` under `ct3aMetadata.initVersion`. + validations: + required: true + - type: textarea + attributes: + label: Describe the bug + description: A clear and concise description of the bug, as well as what you expected to happen when encountering it. + validations: + required: true + - type: input + attributes: + label: Reproduction repo + description: If applicable, please provide a link to a reproduction repo or a Stackblitz / CodeSandbox project. Your issue may be closed if this is not provided and we are unable to reproduce the issue. If your bug is a documentaion issue, link the appropriate page. + validations: + required: true + - type: textarea + attributes: + label: To reproduce + description: Describe how to reproduce your bug. Steps, code snippets, reproduction repos etc. + validations: + required: true + - type: textarea + attributes: + label: Additional information + description: Add any other information related to the bug here, screenshots if applicable. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..2e580885b46 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + -name: Ask a Question + url: https://github.com/triggerdotdev/trigger.dev/issues + about: Ask questions and discuss with other community members \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..df310ac6cdc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,27 @@ +name: Feature Request +description: Suggest an idea for this project +title: "feat: " +labels: ["🌟 enhancement"] +body: + - type: textarea + attributes: + label: Is your feature request related to a problem? Please describe. + description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + validations: + required: true + - type: textarea + attributes: + label: Describe the solution you'd like to see + description: A clear and concise description of what you want to happen. + validations: + required: true + - type: textarea + attributes: + label: Describe alternate solutions + description: A clear and concise description of any alternative solutions or features you've considered. + validations: + required: true + - type: textarea + attributes: + label: Additional information + description: Add any other information related to the feature here. If your feature request is related to any issues or discussions, link them here. \ No newline at end of file diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 00000000000..279bab91a79 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,12 @@ +"πŸ“Œ area: cli": + - any: ["cli/**/*"] + +"πŸ“Œ area: t3-app": + - any: ["cli/template/**/*"] + +"πŸ“š documentation": + - any: ["www/**/*"] + - any: ["**/*.md"] + +"πŸ“Œ area: ci": + - any: [".github/**/*"] \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000000..90e2b8de499 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +Closes # + +## βœ… Checklist + +- [ ] I have followed every step in the [contributing guide](https://github.com/triggerdotdev/trigger.dev/blob/82c5965e8a173f4fc805befa0cb2c8cf3519bc17/CONTRIBUTING.md) +- [ ] The PR title follows the convention. +- [ ] I performed a functional test on my final commit + +--- + +## Changelog + +_[Short description of what has changed]_ + +--- + +## Screenshots + +_[Screenshots]_ + +πŸ’― \ No newline at end of file From 5aeef1233bb13f7537c17fc4aa4065fe4afb012a Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 12:51:45 +0100 Subject: [PATCH 09/95] A few teaks to the templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 8 ++++---- .github/ISSUE_TEMPLATE/config.yml | 6 +++--- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .github/pull_request_template.md | 12 +++++++++--- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 9b9fe8d799d..c5d01d19193 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: 🐞 Bug Report description: Create a bug report to help us improve title: "bug: " -labels: ["πŸžβ” unconfirmed bug"] +labels: ["🐞 unconfirmed bug"] body: - type: textarea attributes: @@ -11,7 +11,7 @@ body: ```bash npx envinfo --system --binaries ``` - If the issue is regarding a scaffolded app, please include the version used to scaffold that app which you can find in the `package.json` under `ct3aMetadata.initVersion`. + validations: required: true - type: textarea @@ -23,7 +23,7 @@ body: - type: input attributes: label: Reproduction repo - description: If applicable, please provide a link to a reproduction repo or a Stackblitz / CodeSandbox project. Your issue may be closed if this is not provided and we are unable to reproduce the issue. If your bug is a documentaion issue, link the appropriate page. + description: If applicable, please provide a link to a reproduction repo or a Stackblitz / CodeSandbox project. Your issue may be closed if this is not provided and we are unable to reproduce the issue. If your bug is a docs issue, link the appropriate page. validations: required: true - type: textarea @@ -35,4 +35,4 @@ body: - type: textarea attributes: label: Additional information - description: Add any other information related to the bug here, screenshots if applicable. \ No newline at end of file + description: Add any other information related to the bug here, screenshots if applicable. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2e580885b46..6833d3e2019 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - -name: Ask a Question - url: https://github.com/triggerdotdev/trigger.dev/issues - about: Ask questions and discuss with other community members \ No newline at end of file + - name: Ask a Question + url: https://github.com/triggerdotdev/trigger.dev/issues + about: Ask questions and discuss with other community members diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index df310ac6cdc..bcb3dee02aa 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -24,4 +24,4 @@ body: - type: textarea attributes: label: Additional information - description: Add any other information related to the feature here. If your feature request is related to any issues or discussions, link them here. \ No newline at end of file + description: Add any other information related to the feature here. If your feature request is related to any issues or discussions, link them here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 90e2b8de499..eec6c728208 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,9 +2,15 @@ Closes # ## βœ… Checklist -- [ ] I have followed every step in the [contributing guide](https://github.com/triggerdotdev/trigger.dev/blob/82c5965e8a173f4fc805befa0cb2c8cf3519bc17/CONTRIBUTING.md) +- [ ] I have followed every step in the [contributing guide](https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md) - [ ] The PR title follows the convention. -- [ ] I performed a functional test on my final commit +- [ ] I ran and tested the code works + +--- + +## Testing + +_[Describe the steps you took to test this change]_ --- @@ -18,4 +24,4 @@ _[Short description of what has changed]_ _[Screenshots]_ -πŸ’― \ No newline at end of file +πŸ’― From da10ba907f9cdc76625adf06f3981ce2e844d83f Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Fri, 15 Sep 2023 12:54:38 +0100 Subject: [PATCH 10/95] Added instructions for how to do Changeset snapshots --- CHANGESETS.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGESETS.md b/CHANGESETS.md index b16222c103b..9565e908ce9 100644 --- a/CHANGESETS.md +++ b/CHANGESETS.md @@ -27,3 +27,12 @@ Please follow the best-practice of adding changesets in the same commit as the c 3. Create version `pnpm run changeset:version` 4. Release `pnpm run changeset:release` 5. Switch back to normal mode by running `pnpm run changeset:normal` + +## Snapshot instructions + +!MAKE SURE TO UPDATE THE TAG IN THE INSTRUCTIONS BELOW! + +1. Add changesets as usual `pnpm run changeset:add` +2. Create a snapshot version (replace "dev" with your tag) `pnpm exec changeset version --snapshot dev` +3. Build the packages: `pnpm run build --filter "@trigger.dev/*"` +4. Publish the snapshot (replace "dev" with your tag) `pnpm exec changeset publish --no-git-tag --snapshot --tag dev` From f98c4251861a795adeb8c770f9a262e253b84d8d Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 12:54:42 +0100 Subject: [PATCH 11/95] Redirect people to discord to ask a question --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 6833d3e2019..4e9aa8c95b7 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - name: Ask a Question - url: https://github.com/triggerdotdev/trigger.dev/issues + url: https://trigger.dev/discord about: Ask questions and discuss with other community members From 363c74c6da1f9c359978351dc008d0e2cd8bcf78 Mon Sep 17 00:00:00 2001 From: Aniket Bindhani Date: Fri, 15 Sep 2023 17:25:56 +0530 Subject: [PATCH 12/95] Documentation Update: Added instead of triggerdotdev to avoid confusion while cloning the repository (#477) --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3732dd9ad8c..b0cd4a35599 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,11 +23,11 @@ branch are tagged into a release monthly. 1. Clone the repo into a public GitHub repository or [fork the repo](https://github.com/triggerdotdev/trigger.dev/fork). If you plan to distribute the code, keep the source code public to comply with the [Apache Licence 2.0](https://github.com/triggerdotdev/trigger.dev/blob/main/LICENSE). ``` - git clone https://github.com/triggerdotdev/trigger.dev.git + git clone https://github.com//trigger.dev.git ``` > If you are on windows, run the following command on gitbash with admin privileges: - > `git clone -c core.symlinks=true https://github.com/triggerdotdev/trigger.dev.git` + > `git clone -c core.symlinks=true https://github.com//trigger.dev.git` 2. Navigate to the project folder ``` From 40f2ee79340aca70e867be8312c91a5cca0cbfeb Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 19:04:00 +0530 Subject: [PATCH 13/95] add fastify package --- packages/fastify/README.md | 9 +++++ packages/fastify/package.json | 41 +++++++++++++++++++ packages/fastify/src/index.ts | 71 +++++++++++++++++++++++++++++++++ packages/fastify/tsconfig.json | 16 ++++++++ packages/fastify/tsup.config.ts | 19 +++++++++ 5 files changed, 156 insertions(+) create mode 100644 packages/fastify/README.md create mode 100644 packages/fastify/package.json create mode 100644 packages/fastify/src/index.ts create mode 100644 packages/fastify/tsconfig.json create mode 100644 packages/fastify/tsup.config.ts diff --git a/packages/fastify/README.md b/packages/fastify/README.md new file mode 100644 index 00000000000..c8c74574b87 --- /dev/null +++ b/packages/fastify/README.md @@ -0,0 +1,9 @@ +# Fastify and Trigger.dev + +Trigger.dev has full support for the Fastify framework. + +For information about the using Trigger.dev in your Fastify app, check out these useful docs links: + +- [Quick start guide for getting setup with Trigger.dev in a Fastify project](https://trigger.dev/docs/documentation/quickstarts/fastify) +- [Manually setup Fastify with Trigger.dev](https://trigger.dev/docs/documentation/guides/manual/fastify) +- [Using Trigger.dev with Fastify, handling middleware and more](https://trigger.dev/docs/documentation/guides/platforms/fastify) diff --git a/packages/fastify/package.json b/packages/fastify/package.json new file mode 100644 index 00000000000..400c1dc7cab --- /dev/null +++ b/packages/fastify/package.json @@ -0,0 +1,41 @@ +{ + "name": "@trigger.dev/fastify", + "version": "0.0.1", + "description": "Official Fastify adapter for Trigger.dev", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist" + ], + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.js" + }, + "./package.json": "./package.json" + }, + "devDependencies": { + "@trigger.dev/tsconfig": "workspace:*", + "rimraf": "^3.0.2", + "tsup": "^7.2.0" + }, + "scripts": { + "clean": "rimraf dist", + "build": "npm run clean && npm run build:tsup", + "build:tsup": "tsup" + }, + "peerDependencies": { + "@trigger.dev/sdk": "workspace:^2.1.0" + }, + "engines": { + "node": ">=16.8.0" + }, + "dependencies": { + "@remix-run/web-fetch": "^4.3.6", + "fastify": "^4.22.2" + } +} diff --git a/packages/fastify/src/index.ts b/packages/fastify/src/index.ts new file mode 100644 index 00000000000..39772b08f4c --- /dev/null +++ b/packages/fastify/src/index.ts @@ -0,0 +1,71 @@ +import fastify, { FastifyInstance, FastifyRequest, FastifyReply } from "fastify"; +import { TriggerClient } from "@trigger.dev/sdk"; +import { Request as StandardRequest, Headers as StandardHeaders } from "@remix-run/web-fetch"; + +/** + * This is a convenience function to create a Fastify server for the TriggerClient. If you want to use Trigger.dev with an existing Fastify server, use `createMiddleware` instead. + * @param client - The TriggerClient to use for the server. + * @param port - The port to listen on, defaults to 8080. + */ +export function createFastifyServer( + client: TriggerClient, + port: number = 3000, + path: string = "/api/trigger" +): FastifyInstance { + const app = fastify(); + + const middleware = createMiddleware(client, path); + + app.addHook("preHandler", middleware); + + app.listen({ port }, () => { + console.log(`Endpoint ${client.id} listening on port ${port}`); + }); + + return app; +} + +export function createMiddleware(client: TriggerClient, path: string = "/api/trigger") { + return async (req: FastifyRequest, res: FastifyReply) => { + if (req.url !== path) { + return; + } + + if (req.method === "HEAD") { + res.status(200).send(); + return; + } + + try { + const request = convertToStandardRequest(req); + + const response = await client.handleRequest(request); + + if (!response) { + res.status(404).send({ error: "Not found" }); + } else { + res.status(response.status).send(response.body); + } + } catch (error) { + throw error; + } + }; +} + +function convertToStandardRequest(req: FastifyRequest): StandardRequest { + const { headers: nextHeaders, method } = req; + + const headers: Record = {}; + + for (let [key, value] of Object.entries(nextHeaders)) { + headers[key] = value as string; + } + + // Create a new Request object (hardcode the url because it doesn't really matter what it is) + return new StandardRequest("https://fastify.js/api/trigger", { + headers: headers, + method, + // @ts-ignore + body: req.body ? JSON.stringify(req.body) : req, + }); +} diff --git a/packages/fastify/tsconfig.json b/packages/fastify/tsconfig.json new file mode 100644 index 00000000000..f56d168f466 --- /dev/null +++ b/packages/fastify/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@trigger.dev/tsconfig/node18.json", + "include": ["./src/**/*.ts", "tsup.config.ts"], + "compilerOptions": { + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "declaration": false, + "declarationMap": false, + "lib": ["DOM", "DOM.Iterable"], + "paths": { + "@trigger.dev/sdk": ["../trigger-sdk/src/index"], + "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"] + } + }, + "exclude": ["node_modules"] +} diff --git a/packages/fastify/tsup.config.ts b/packages/fastify/tsup.config.ts new file mode 100644 index 00000000000..74c4f4dc148 --- /dev/null +++ b/packages/fastify/tsup.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from "tsup"; + +export default defineConfig([ + { + name: "main", + entry: ["./src/index.ts"], + outDir: "./dist", + platform: "node", + format: ["cjs"], + legacyOutput: true, + sourcemap: true, + clean: true, + bundle: true, + splitting: false, + dts: true, + external: ["http", "https", "util", "events", "tty", "os", "timers"], + esbuildPlugins: [], + }, +]); From 8cf791f161032919d2156c4d67bb80baa20615c6 Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 19:30:47 +0530 Subject: [PATCH 14/95] add fastify example --- examples/fastify-example/package.json | 29 +++++++++++++++++++++++++ examples/fastify-example/src/server.ts | 16 ++++++++++++++ examples/fastify-example/src/trigger.ts | 27 +++++++++++++++++++++++ examples/fastify-example/tsconfig.json | 21 ++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 examples/fastify-example/package.json create mode 100644 examples/fastify-example/src/server.ts create mode 100644 examples/fastify-example/src/trigger.ts create mode 100644 examples/fastify-example/tsconfig.json diff --git a/examples/fastify-example/package.json b/examples/fastify-example/package.json new file mode 100644 index 00000000000..32f5e0b5666 --- /dev/null +++ b/examples/fastify-example/package.json @@ -0,0 +1,29 @@ +{ + "name": "fastify-example", + "version": "0.0.1", + "description": "", + "main": "src/server.ts", + "scripts": { + "start": "node ./dist/server.js", + "dev": "ts-node ./src/server.ts", + "build": "tsc" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "@trigger.dev/fastify": "workspace:*", + "@trigger.dev/sdk": "workspace:*", + "dotenv": "^16.3.1", + "fastify": "^4.23.0" + }, + "devDependencies": { + "@types/node": "^20.6.0", + "ts-node": "^10.9.1", + "typescript": "^5.2.2", + "@trigger.dev/cli": "workspace:*" + }, + "trigger.dev": { + "endpointId": "fastify-example" + } +} diff --git a/examples/fastify-example/src/server.ts b/examples/fastify-example/src/server.ts new file mode 100644 index 00000000000..6500073e67c --- /dev/null +++ b/examples/fastify-example/src/server.ts @@ -0,0 +1,16 @@ +import fastify from "fastify"; +import { createMiddleware } from "@trigger.dev/fastify"; +import { client } from "./trigger"; +import "dotenv/config"; + +const app = fastify({ + logger: true, +}); + +const middleware = createMiddleware(client); + +app.addHook("preHandler", middleware); + +app.listen({ port: 3000 }, () => { + console.log("Listening on port 3000"); +}); diff --git a/examples/fastify-example/src/trigger.ts b/examples/fastify-example/src/trigger.ts new file mode 100644 index 00000000000..2f3410f2f7f --- /dev/null +++ b/examples/fastify-example/src/trigger.ts @@ -0,0 +1,27 @@ +import { TriggerClient } from "@trigger.dev/sdk"; +import { eventTrigger } from "@trigger.dev/sdk"; + +export const client = new TriggerClient({ + id: "fastify-example", + apiKey: process.env.TRIGGER_API_KEY!, + apiUrl: process.env.TRIGGER_API_URL!, + logLevel: "debug", + ioLogLocalEnabled: true, + verbose: true, +}); + +client.defineJob({ + id: "fastify-example", + name: "Fastify example", + version: "0.0.1", + trigger: eventTrigger({ + name: "Fastify Test Run", + }), + run: async (_payload, io, _ctx) => { + await io.wait("wait", 15); + await io.logger.info("Hello Fastify!"); + return { + message: "Trigger x Fastify", + }; + }, +}); diff --git a/examples/fastify-example/tsconfig.json b/examples/fastify-example/tsconfig.json new file mode 100644 index 00000000000..df23c4bc92e --- /dev/null +++ b/examples/fastify-example/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2019"], + "isolatedModules": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "strict": true, + "allowJs": true, + "module": "commonjs", + "declaration": true, + "target": "ES2019", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": ".", + "strictNullChecks": false, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "noEmit": false + }, + "include": ["./src/**/*.ts"] +} From 686be1c6dca1122a99309170ab67daa1f895508d Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 19:35:11 +0530 Subject: [PATCH 15/95] update fastify docs --- .../frameworks/FrameworkSelector.tsx | 2 +- .../route.tsx | 182 +++++++++- docs/_snippets/manual-setup-fastify.mdx | 329 +++++++++++++++++- 3 files changed, 499 insertions(+), 14 deletions(-) diff --git a/apps/webapp/app/components/frameworks/FrameworkSelector.tsx b/apps/webapp/app/components/frameworks/FrameworkSelector.tsx index 1e8fd1adb0c..e015a3aa88a 100644 --- a/apps/webapp/app/components/frameworks/FrameworkSelector.tsx +++ b/apps/webapp/app/components/frameworks/FrameworkSelector.tsx @@ -69,7 +69,7 @@ export function FrameworkSelector() { - + diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.setup.fastify/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.setup.fastify/route.tsx index a9eaa746910..d289e0ff7f6 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.setup.fastify/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.setup.fastify/route.tsx @@ -1,21 +1,179 @@ -import { FastifyLogo } from "~/assets/logos/FastifyLogo"; -import { FrameworkComingSoon } from "~/components/frameworks/FrameworkComingSoon"; -import { BreadcrumbLink } from "~/components/navigation/NavBar"; +import { useState } from "react"; +import invariant from "tiny-invariant"; +import { useProjectSetupComplete } from "~/hooks/useProjectSetupComplete"; +import { useDevEnvironment } from "~/hooks/useEnvironments"; +import { useAppOrigin } from "~/hooks/useAppOrigin"; +import { useOrganization } from "~/hooks/useOrganizations"; +import { useProject } from "~/hooks/useProject"; import { Handle } from "~/utils/handle"; -import { trimTrailingSlash } from "~/utils/pathBuilder"; +import { projectSetupPath, trimTrailingSlash } from "~/utils/pathBuilder"; +import { Callout } from "~/components/primitives/Callout"; +import { StepNumber } from "~/components/primitives/StepNumber"; +import { StepContentContainer } from "~/components/StepContentContainer"; +import { RunDevCommand, TriggerDevStep, InitCommand } from "~/components/SetupCommands"; +import { Header1 } from "~/components/primitives/Headers"; +import { LinkButton } from "~/components/primitives/Buttons"; +import { PageGradient } from "~/components/PageGradient"; +import { BreadcrumbLink } from "~/components/navigation/NavBar"; +import { Button } from "~/components/primitives/Buttons"; +import { Paragraph } from "~/components/primitives/Paragraph"; +import { InlineCode } from "~/components/code/InlineCode"; +import { ClipboardField } from "~/components/primitives/ClipboardField"; +import { CodeBlock } from "~/components/code/CodeBlock"; +import { + ClientTabs, + ClientTabsList, + ClientTabsTrigger, + ClientTabsContent, +} from "~/components/primitives/ClientTabs"; export const handle: Handle = { - breadcrumb: (match) => , + breadcrumb: (match) => , }; export default function Page() { + useProjectSetupComplete(); + const devEnvironment = useDevEnvironment(); + + invariant(devEnvironment, "devEnvironment is required"); + return ( - - - + +
+ + Get setup in 5 minutes for an existing Fastify project + + + Trigger.dev has full support for serverless. We will be adding support for long-running + servers soon. + + + + + + npm + pnpm + yarn + + + + + + + + + + + + + + + + + + + { + await io.logger.info('Hello world!', { payload }); + + return { + message: 'Hello world!', + }; + }, +}); + `} + /> + + Replace "my-app" with an appropriate identifier for your project. + + + + + { + console.log("Listening on port 3000"); +});`} + /> + + + + + + + + + + This page will automatically refresh. + +
+
); } diff --git a/docs/_snippets/manual-setup-fastify.mdx b/docs/_snippets/manual-setup-fastify.mdx index d8711a764ce..71e8574cee0 100644 --- a/docs/_snippets/manual-setup-fastify.mdx +++ b/docs/_snippets/manual-setup-fastify.mdx @@ -1 +1,328 @@ -We're in the process of building support for the Fastify framework. You can follow along with progress or contribute via [this GitHub issue](https://github.com/triggerdotdev/trigger.dev/issues). +--- +title: "Fastify" +sidebarTitle: "Fastify" +description: "How to manually set up Trigger.dev in your Fastify project" +--- + + +Create a blank project by creating a new Fastify application: + +Step 1: Create a new directory + +Create a new directory for your project and navigate into it: + +```bash +mkdir my-fastify-server +cd my-fastify-server +``` + +Step 2: Initialize your Node.js application + +In your project directory, initialize your Node.js application: + +```bash +npm init -y +``` + +This will create a `package.json` file in your project directory. This file holds various metadata relevant to the project. + +Step 3: Install Fastify + +Now, install Fastify by typing: + +```bash +npm install fastify +``` + +Step 4: Create your server file + +Create a new file in your project directory named `server.js` (or whatever you prefer) and open it in your text editor. +Create a new directory for your project and navigate into it: + +Trigger.dev works with Fastify applications. + +Step 5 (Optional): TypeScript setup + +Install `typescript` and `ts-node` packages + +```bash +npm install typescript ts-node +``` + +Inside the `package.json` file, add the following scripts: + +```json +"scripts": { + "start": "node ./dist/server.js", + "dev": "ts-node ./src/server.ts", + "build": "tsc" +} +``` + +Remember to change the paths in the `start` and `dev` script if you have followed a different folder structure + +Now, create a file named `tsconfig.json` at the root of your project and add the following: + +```json +{ + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2019"], + "isolatedModules": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "strict": true, + "allowJs": true, + "module": "commonjs", + "declaration": true, + "target": "ES2019", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": ".", + "strictNullChecks": false, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "noEmit": false + }, + "include": ["./src/**/*.ts"] +} +``` + + + +## Installing Required Packages + +To begin, install the necessary packages in your Fastify project directory: + + + +```bash npm + +npm install @trigger.dev/sdk @trigger-dev/fastify + +``` + +```bash pnpm +pnpm install @trigger.dev/sdk @trigger-dev/fastify + +``` + +```bash yarn +yarn add @trigger.dev/sdk @trigger-dev/fastify + +``` + + + +
+ +Ensure that you execute this command within a Fastify project. + +## Obtaining the Development API Key + +To locate your development API key, login to the [Trigger.dev +dashboard](https://cloud.trigger.dev) and select the Project you want to +connect to. Then click on the Environments & API Keys tab in the left menu. +You can copy your development API Key from the field at the top of this page. +(Your development key will start with `tr_dev_`). + +## Adding Environment Variables + +Create a `.env` file at the root of your project and include your Trigger API key and URL like this: + +```bash + +TRIGGER_API_KEY=ENTER_YOUR_DEVELOPMENT_API_KEY_HERE +TRIGGER_API_URL=https://cloud.trigger.dev + +``` + +Replace `ENTER_YOUR_DEVELOPMENT_API_KEY_HERE` with the actual API key obtained from the previous step. + +## Configuring the Trigger Client + +To set up the Trigger Client for your project, follow these steps: + +1. **Create Configuration File:** + + In your project directory, create a configuration file named `trigger.ts`. + +2. **Add Configuration Code:** + + Open the configuration file you created and add the following code: + + ```typescript + // trigger.ts (for TypeScript) or trigger.js (for JavaScript) + + import { TriggerClient } from "@trigger.dev/sdk"; + + export const client = new TriggerClient({ + id: "my-app", + apiKey: process.env.TRIGGER_API_KEY, + apiUrl: process.env.TRIGGER_API_URL, + }); + ``` + + Replace **"my-app"** with an appropriate identifier for your project. The **apiKey** and **apiUrl** are obtained from the environment variables you set earlier. + +By following these steps, you'll configure the Trigger Client to work with your Fastify project. + +## Creating a Middleware for Trigger.dev + +To establish an API route for interacting with Trigger.dev, follow these steps: + +In `server.(js/ts)` create a middleware for the specific `/api/trigger` route. + +```ts +// In server.(js/ts) +import fastify from "fastify"; +import { createMiddleware } from "@trigger.dev/fastify"; +import { client } from "./trigger"; + +const app = fastify({ + logger: true, +}); + +const middleware = createMiddleware(client); + +app.addHook("preHandler", middleware); + +app.listen({ port: 3000 }, () => { + console.log("Listening on port 3000"); +}); +``` + +Make sure to update the path in the `import { client } from './trigger';` statement to match the location of your Trigger Client configuration file. + +## Creating the Example Job + +1. Create a folder named `Jobs` alongside your Fastify project files. +2. Inside the `Jobs` folder, add two files named `example.js` and `index.js`. + + + +```typescript example.(js/ts) +const { eventTrigger } = require("@trigger.dev/sdk"); +const { client } = require("./trigger"); // Update the path as per your project structure + +// Your first job +client.defineJob({ + id: "example-job", + name: "Example Job", + version: "0.0.1", + trigger: eventTrigger({ + name: "example.event", + }), + run: async (payload, io, ctx) => { + await io.logger.info("Hello world!", { payload }); + + return { + message: "Hello world!", + }; + }, +}); +``` + +```typescript index.ts/index.(ts/js) +// import all your job files here + +module.exports = require("./example"); +``` + + + +## Adding Configuration to `package.json` + +Inside the `package.json` file, add the following configuration under the root object: + +```json +"trigger.dev": { + "endpointId": "my-app" +} +``` + +Your `package.json` file might look something like this: + +```json +{ + "name": "my-app", + "version": "1.0.0", + "dependencies": { + // ... other dependencies + }, + "trigger.dev": { + "endpointId": "my-app" + } +} +``` + +Replace **"my-app"** with the appropriate identifier you used during the step for creating the Trigger Client. + +## Next Steps + +Start your Fastify project, and your Trigger.dev integration should work seamlessly + +In your project directory, run + + + +```bash npm + +npm run dev + +``` + +```bash pnpm +pnpm run dev + +``` + +```bash yarn +yarn run dev + +``` + + + +This command starts your Fastify server and enables the Trigger.dev integration + +![Your first Job](/images/cli-dev.gif) + + + Ensure your Fastify server is running locally before continuing. You must also leave this server + running while you develop. + + +In a **new terminal window or tab**, you can run Trigger.dev locally: + + + +```bash npm +npx @trigger.dev/cli@latest dev +``` + +```bash pnpm +pnpm dlx @trigger.dev/cli@latest dev +``` + +```bash yarn +yarn dlx @trigger.dev/cli@latest dev +``` + + +
+ + You can optionally pass the port if you're not running on port 3000 by adding + `--port 3001` to the end. + + + You can optionally pass the hostname if you're not running on localhost by adding + `--hostname `. Example, in case your Fastify server is running on 0.0.0.0: `--hostname 0.0.0.0`. + + + + If your existing Fastify project utilizes middleware and you encounter any issues, such as + potential conflicts with Trigger.dev, it's recommended to refer to the troubleshooting guide at + [Middleware](/documentation/guides/platforms/Fastify#middleware) for assistance. This guide can + help you address any concerns related to middleware conflicts and ensure the smooth functioning of + your project with Trigger.dev. + From 0896624883f23e9ff56469c8b081c63163ac2499 Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 19:35:35 +0530 Subject: [PATCH 16/95] add pnpm-lock --- pnpm-lock.yaml | 366 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 337 insertions(+), 29 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d601be2a7a..a616b5a91b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -379,6 +379,27 @@ importers: devDependencies: '@trigger.dev/cli': link:../../packages/cli + examples/fastify-example: + specifiers: + '@trigger.dev/cli': workspace:* + '@trigger.dev/fastify': workspace:* + '@trigger.dev/sdk': workspace:* + '@types/node': ^20.6.0 + dotenv: ^16.3.1 + fastify: ^4.23.0 + ts-node: ^10.9.1 + typescript: ^5.2.2 + dependencies: + '@trigger.dev/fastify': link:../../packages/fastify + '@trigger.dev/sdk': link:../../packages/trigger-sdk + dotenv: 16.3.1 + fastify: 4.23.1 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + '@types/node': 20.6.0 + ts-node: 10.9.1_kpuv3buz4xyqturyqxj2gejvma + typescript: 5.2.2 + examples/job-catalog: specifiers: '@trigger.dev/airtable': workspace:* @@ -689,8 +710,8 @@ importers: integrations/airtable: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x airtable: ^0.12.1 @@ -717,8 +738,8 @@ importers: '@octokit/types': ^9.2.3 '@octokit/webhooks': ^10.4.0 '@octokit/webhooks-types': ^6.10.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' octokit: ^2.0.14 @@ -743,8 +764,8 @@ importers: integrations/openai: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' openai: ^4.2.0 @@ -763,8 +784,8 @@ importers: integrations/plain: specifiers: '@team-plain/typescript-sdk': ^2.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -781,8 +802,8 @@ importers: integrations/resend: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' resend: ^1.0.0 @@ -801,8 +822,8 @@ importers: integrations/sendgrid: specifiers: '@sendgrid/mail': ^7.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x rimraf: ^3.0.2 @@ -822,7 +843,7 @@ importers: integrations/slack: specifiers: '@slack/web-api': ^6.8.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -840,8 +861,8 @@ importers: integrations/stripe: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@types/node': 16.x rimraf: ^3.0.2 stripe: ^12.14.0 @@ -864,8 +885,8 @@ importers: integrations/supabase: specifiers: '@supabase/supabase-js': ^2.26.0 - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/node': 18.x rimraf: ^3.0.2 @@ -888,8 +909,8 @@ importers: integrations/typeform: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.1 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/integration-kit': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.2 '@typeform/api-client': ^1.8.0 '@types/node': 16.x rimraf: ^3.0.2 @@ -1116,7 +1137,7 @@ importers: packages/express: specifiers: '@remix-run/web-fetch': ^4.3.5 - '@trigger.dev/sdk': workspace:^2.1.1 + '@trigger.dev/sdk': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/express': ^4.17.13 @@ -1138,6 +1159,21 @@ importers: tsup: 6.6.3 tsx: 3.12.2 + packages/fastify: + specifiers: + '@remix-run/web-fetch': ^4.3.6 + '@trigger.dev/tsconfig': workspace:* + fastify: ^4.22.2 + rimraf: ^3.0.2 + tsup: ^7.2.0 + dependencies: + '@remix-run/web-fetch': 4.3.6 + fastify: 4.23.1 + devDependencies: + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + rimraf: 3.0.2 + tsup: 7.2.0 + packages/integration-kit: specifiers: '@trigger.dev/tsconfig': workspace:* @@ -1189,7 +1225,7 @@ importers: packages/react: specifiers: '@tanstack/react-query': 5.0.0-beta.2 - '@trigger.dev/core': workspace:^2.1.1 + '@trigger.dev/core': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/react': 18.2.17 @@ -1265,7 +1301,7 @@ importers: packages/trigger-sdk: specifiers: - '@trigger.dev/core': workspace:^2.1.1 + '@trigger.dev/core': workspace:^2.1.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/node': '18' @@ -5947,6 +5983,28 @@ packages: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true + /@fastify/ajv-compiler/3.5.0: + resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1 + fast-uri: 2.2.0 + dev: false + + /@fastify/deepmerge/1.3.0: + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + dev: false + + /@fastify/error/3.3.0: + resolution: {integrity: sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w==} + dev: false + + /@fastify/fast-json-stringify-compiler/4.3.0: + resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + dependencies: + fast-json-stringify: 5.8.0 + dev: false + /@figspec/components/1.0.1: resolution: {integrity: sha512-UvnEamPEAMh9HExViqpobWmX25g1+soA9kcJu+It3VerMa7CeVyaIbQydNf1Gys5v/rxJVdTDRgQ7OXW2zAAig==} dependencies: @@ -9915,7 +9973,7 @@ packages: /@remix-run/web-blob/3.0.4: resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==} dependencies: - '@remix-run/web-stream': 1.0.3 + '@remix-run/web-stream': 1.0.4 web-encoding: 1.1.5 dev: false @@ -13345,6 +13403,10 @@ packages: resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} dev: false + /abstract-logging/2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + dev: false + /accepts/1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -13481,7 +13543,6 @@ packages: optional: true dependencies: ajv: 8.12.0 - dev: true /ajv-keywords/3.5.2_ajv@6.12.6: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} @@ -13515,7 +13576,6 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - dev: true /align-text/0.1.4: resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==} @@ -13628,6 +13688,10 @@ packages: /aproba/2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + /archy/1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: false + /are-we-there-yet/2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -13930,6 +13994,11 @@ packages: hasBin: true dev: false + /atomic-sleep/1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: false + /autoprefixer/10.4.13_postcss@8.4.21: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} @@ -13982,6 +14051,16 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + /avvio/8.2.1: + resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} + dependencies: + archy: 1.0.0 + debug: 4.3.4 + fastq: 1.15.0 + transitivePeerDependencies: + - supports-color + dev: false + /axe-core/4.6.2: resolution: {integrity: sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==} engines: {node: '>=4'} @@ -18175,7 +18254,6 @@ packages: /events/3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: true /evt/2.4.13: resolution: {integrity: sha512-haTVOsmjzk+28zpzvVwan9Zw2rLQF2izgi7BKjAPRzZAfcv+8scL0TpM8MzvGNKFYHiy+Bq3r6FYIIUPl9kt3A==} @@ -18401,6 +18479,14 @@ packages: - supports-color dev: false + /fast-content-type-parse/1.0.0: + resolution: {integrity: sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==} + dev: false + + /fast-decode-uri-component/1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + dev: false + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -18468,6 +18554,17 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + /fast-json-stringify/5.8.0: + resolution: {integrity: sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ==} + dependencies: + '@fastify/deepmerge': 1.3.0 + ajv: 8.12.0 + ajv-formats: 2.1.1 + fast-deep-equal: 3.1.3 + fast-uri: 2.2.0 + rfdc: 1.3.0 + dev: false + /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -18479,6 +18576,12 @@ packages: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} dev: false + /fast-querystring/1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + dependencies: + fast-decode-uri-component: 1.0.1 + dev: false + /fast-redact/3.1.2: resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} engines: {node: '>=6'} @@ -18488,10 +18591,37 @@ packages: resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} dev: false + /fast-uri/2.2.0: + resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} + dev: false + /fastest-stable-stringify/2.0.2: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} dev: false + /fastify/4.23.1: + resolution: {integrity: sha512-JhZWyz2PgjzkDTrTX/PQ6+03s+/r2hC3RiOoF9WQUUHbPGiDJtQch1mg5IyJjUjwhug+/z1XHt5yweZNW4kbMg==} + dependencies: + '@fastify/ajv-compiler': 3.5.0 + '@fastify/error': 3.3.0 + '@fastify/fast-json-stringify-compiler': 4.3.0 + abstract-logging: 2.0.1 + avvio: 8.2.1 + fast-content-type-parse: 1.0.0 + fast-json-stringify: 5.8.0 + find-my-way: 7.6.2 + light-my-request: 5.11.0 + pino: 8.15.1 + process-warning: 2.2.0 + proxy-addr: 2.0.7 + rfdc: 1.3.0 + secure-json-parse: 2.7.0 + semver: 7.5.4 + toad-cache: 3.2.0 + transitivePeerDependencies: + - supports-color + dev: false + /fastq/1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -18617,6 +18747,15 @@ packages: pkg-dir: 4.2.0 dev: true + /find-my-way/7.6.2: + resolution: {integrity: sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==} + engines: {node: '>=14'} + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 2.0.0 + dev: false + /find-up/3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -21267,7 +21406,6 @@ packages: /json-schema-traverse/1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -21477,6 +21615,14 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 + /light-my-request/5.11.0: + resolution: {integrity: sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==} + dependencies: + cookie: 0.5.0 + process-warning: 2.2.0 + set-cookie-parser: 2.5.1 + dev: false + /lilconfig/2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} @@ -23658,6 +23804,10 @@ packages: - encoding dev: false + /on-exit-leak-free/2.1.0: + resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} + dev: false + /on-finished/2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -24310,6 +24460,34 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + /pino-abstract-transport/1.1.0: + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + dependencies: + readable-stream: 4.4.2 + split2: 4.2.0 + dev: false + + /pino-std-serializers/6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + dev: false + + /pino/8.15.1: + resolution: {integrity: sha512-Cp4QzUQrvWCRJaQ8Lzv0mJzXVk4z2jlq8JNKMGaixC2Pz5L4l2p95TkuRvYbrEbe85NQsDKrAd4zalf7Ml6WiA==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.1.2 + on-exit-leak-free: 2.1.0 + pino-abstract-transport: 1.1.0 + pino-std-serializers: 6.2.2 + process-warning: 2.2.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 3.3.0 + thread-stream: 2.4.0 + dev: false + /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -24998,6 +25176,10 @@ packages: /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + /process-warning/2.2.0: + resolution: {integrity: sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==} + dev: false + /process/0.10.1: resolution: {integrity: sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==} engines: {node: '>= 0.6.0'} @@ -25006,7 +25188,6 @@ packages: /process/0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - dev: true /progress/2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} @@ -25181,6 +25362,10 @@ packages: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} optional: true + /quick-format-unescaped/4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: false + /quick-lru/4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -25577,12 +25762,28 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 + /readable-stream/4.4.2: + resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + dev: false + /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + /real-require/0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + dev: false + /recast/0.21.5: resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} engines: {node: '>= 4'} @@ -26137,6 +26338,11 @@ packages: engines: {node: '>=0.12'} dev: false + /ret/0.2.2: + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} + engines: {node: '>=4'} + dev: false + /retext-latin/3.1.0: resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} dependencies: @@ -26182,6 +26388,10 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: false + /right-align/0.1.3: resolution: {integrity: sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==} engines: {node: '>=0.10.0'} @@ -26295,6 +26505,17 @@ packages: ret: 0.1.15 dev: false + /safe-regex2/2.0.0: + resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} + dependencies: + ret: 0.2.2 + dev: false + + /safe-stable-stringify/2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -26365,6 +26586,10 @@ packages: extend-shallow: 2.0.1 kind-of: 6.0.3 + /secure-json-parse/2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + dev: false + /selderee/0.10.0: resolution: {integrity: sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A==} dependencies: @@ -26772,6 +26997,12 @@ packages: ip: 2.0.0 smart-buffer: 4.2.0 + /sonic-boom/3.3.0: + resolution: {integrity: sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==} + dependencies: + atomic-sleep: 1.0.0 + dev: false + /sort-object-keys/1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} dev: true @@ -27672,6 +27903,12 @@ packages: dependencies: any-promise: 1.3.0 + /thread-stream/2.4.0: + resolution: {integrity: sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw==} + dependencies: + real-require: 0.2.0 + dev: false + /thriftrw/3.11.4: resolution: {integrity: sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==} engines: {node: '>= 0.10.x'} @@ -27793,6 +28030,11 @@ packages: safe-regex: 1.1.0 dev: false + /toad-cache/3.2.0: + resolution: {integrity: sha512-Hj5zSqBS6OHbZoQk9IU8VqIr+0JUpwzunnwSlFJhG8aJSInYUMEuzItl3kJsGteTPd1qtflafdRHlRtUazYeqg==} + engines: {node: '>=12'} + dev: false + /toggle-selection/1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} dev: false @@ -27971,6 +28213,37 @@ packages: yn: 3.1.1 dev: true + /ts-node/10.9.1_kpuv3buz4xyqturyqxj2gejvma: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 20.6.0 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /ts-node/10.9.1_xj5cs2fmhcigm4w5bhhtewqeja: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -28245,6 +28518,41 @@ packages: - ts-node dev: true + /tsup/7.2.0: + resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1_esbuild@0.18.11 + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.18.11 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1 + resolve-from: 5.0.0 + rollup: 3.29.1 + source-map: 0.8.0-beta.0 + sucrase: 3.32.0 + tree-kill: 1.2.2 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsup/7.2.0_typescript@5.2.2: resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} engines: {node: '>=16.14'} @@ -28271,7 +28579,7 @@ packages: joycon: 3.1.1 postcss-load-config: 4.0.1 resolve-from: 5.0.0 - rollup: 3.10.0 + rollup: 3.29.1 source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 From 58e719af9a4ec37a65a38aee1f4f35bde3dce38a Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 19:35:50 +0530 Subject: [PATCH 17/95] update readme --- packages/fastify/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fastify/README.md b/packages/fastify/README.md index c8c74574b87..dc3be4f37c3 100644 --- a/packages/fastify/README.md +++ b/packages/fastify/README.md @@ -2,7 +2,7 @@ Trigger.dev has full support for the Fastify framework. -For information about the using Trigger.dev in your Fastify app, check out these useful docs links: +For information about using the Trigger.dev in your Fastify app, check out these useful docs links: - [Quick start guide for getting setup with Trigger.dev in a Fastify project](https://trigger.dev/docs/documentation/quickstarts/fastify) - [Manually setup Fastify with Trigger.dev](https://trigger.dev/docs/documentation/guides/manual/fastify) From e5ffc3a3f3782be07304c96b6146bd4922f74c3e Mon Sep 17 00:00:00 2001 From: James Ritchie Date: Fri, 15 Sep 2023 15:11:40 +0100 Subject: [PATCH 18/95] Added a link to the homepage from the side menu (#479) * Added 2 new named icons * New side menu link to the homepage * Updated lock file * Removed un-used import --- .../components/navigation/ProjectSideMenu.tsx | 17 +- .../app/components/primitives/Buttons.tsx | 8 +- .../app/components/primitives/NamedIcon.tsx | 5 + pnpm-lock.yaml | 153 ++++++++++++++---- 4 files changed, 148 insertions(+), 35 deletions(-) diff --git a/apps/webapp/app/components/navigation/ProjectSideMenu.tsx b/apps/webapp/app/components/navigation/ProjectSideMenu.tsx index 34d1751db81..25eaf8ba040 100644 --- a/apps/webapp/app/components/navigation/ProjectSideMenu.tsx +++ b/apps/webapp/app/components/navigation/ProjectSideMenu.tsx @@ -11,8 +11,8 @@ import { organizationTeamPath, projectEnvironmentsPath, projectIntegrationsPath, - projectSetupPath, projectPath, + projectSetupPath, projectTriggersPath, } from "~/utils/pathBuilder"; import { UserProfilePhoto } from "../UserProfilePhoto"; @@ -96,7 +96,7 @@ export function ProjectSideMenu() { data-action="environments & api keys" /> -
+
+ ; name: string; @@ -153,6 +162,7 @@ function SideMenuItem({ isCollapsed: boolean; hasWarning?: boolean; forceActive?: boolean; + target?: string; }) { return ( { if (forceActive !== undefined) { isActive = forceActive; } return cn( "relative", - isActive + isActive || isPending ? "bg-slate-800 text-bright group-hover:bg-slate-800" : "text-dimmed group-hover:bg-slate-850 group-hover:text-bright" ); diff --git a/apps/webapp/app/components/primitives/Buttons.tsx b/apps/webapp/app/components/primitives/Buttons.tsx index 1dcc1574548..532d3683679 100644 --- a/apps/webapp/app/components/primitives/Buttons.tsx +++ b/apps/webapp/app/components/primitives/Buttons.tsx @@ -286,9 +286,13 @@ type NavLinkPropsType = Pick & Omit, "className"> & { className?: (props: { isActive: boolean; isPending: boolean }) => string | undefined; }; -export const NavLinkButton = ({ to, className, ...props }: NavLinkPropsType) => { +export const NavLinkButton = ({ to, className, target, ...props }: NavLinkPropsType) => { return ( - + {({ isActive, isPending }) => ( )} diff --git a/apps/webapp/app/components/primitives/NamedIcon.tsx b/apps/webapp/app/components/primitives/NamedIcon.tsx index 6cbe7d8c46d..e5bd5bf2f85 100644 --- a/apps/webapp/app/components/primitives/NamedIcon.tsx +++ b/apps/webapp/app/components/primitives/NamedIcon.tsx @@ -35,6 +35,7 @@ import { GlobeAltIcon, HandRaisedIcon, HeartIcon, + HomeIcon, KeyIcon, LightBulbIcon, ListBulletIcon, @@ -50,6 +51,7 @@ import { UserGroupIcon, UserIcon, UserPlusIcon, + WindowIcon, WrenchScrewdriverIcon, XCircleIcon, XMarkIcon, @@ -75,6 +77,8 @@ const icons = { background: (className: string) => , beaker: (className: string) => , billing: (className: string) => , + + browser: (className: string) => , calendar: (className: string) => ( ), @@ -111,6 +115,7 @@ const icons = { ), heart: (className: string) => , + house: (className: string) => , id: (className: string) => , inactive: (className: string) => , info: (className: string) => , diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e32ccda19e..ea54663c99e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -689,8 +689,8 @@ importers: integrations/airtable: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x airtable: ^0.12.1 @@ -717,8 +717,8 @@ importers: '@octokit/types': ^9.2.3 '@octokit/webhooks': ^10.4.0 '@octokit/webhooks-types': ^6.10.0 - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' octokit: ^2.0.14 @@ -743,8 +743,8 @@ importers: integrations/openai: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' openai: ^4.2.0 @@ -763,8 +763,8 @@ importers: integrations/plain: specifiers: '@team-plain/typescript-sdk': ^2.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -781,8 +781,8 @@ importers: integrations/resend: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' resend: ^1.0.0 @@ -801,8 +801,8 @@ importers: integrations/sendgrid: specifiers: '@sendgrid/mail': ^7.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x rimraf: ^3.0.2 @@ -822,7 +822,7 @@ importers: integrations/slack: specifiers: '@slack/web-api': ^6.8.1 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' rimraf: ^3.0.2 @@ -840,8 +840,8 @@ importers: integrations/stripe: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@types/node': 16.x rimraf: ^3.0.2 stripe: ^12.14.0 @@ -864,8 +864,8 @@ importers: integrations/supabase: specifiers: '@supabase/supabase-js': ^2.26.0 - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/node': 18.x rimraf: ^3.0.2 @@ -888,8 +888,8 @@ importers: integrations/typeform: specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.2 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@typeform/api-client': ^1.8.0 '@types/node': 16.x rimraf: ^3.0.2 @@ -948,7 +948,6 @@ importers: execa: ^7.0.0 gradient-string: ^2.0.2 inquirer: ^9.1.4 - jest: ^29.6.2 localtunnel: ^2.0.2 nanoid: ^4.0.2 ngrok: 5.0.0-beta.2 @@ -968,6 +967,7 @@ importers: type-fest: ^3.6.0 typescript: ^4.9.5 url: ^0.11.1 + vitest: ^0.34.4 zod: 3.21.4 dependencies: '@types/degit': 2.8.3 @@ -1002,12 +1002,12 @@ importers: '@types/jest': 29.5.3 '@types/node': 16.18.11 '@types/node-fetch': 2.6.2 - jest: 29.6.2_@types+node@16.18.11 rimraf: 3.0.2 - ts-jest: 29.1.1_xlkreayjyan5lfqjb5gzdqf3my + ts-jest: 29.1.1_typescript@4.9.5 tsup: 6.6.3_typescript@4.9.5 type-fest: 3.6.0 typescript: 4.9.5 + vitest: 0.34.4 packages/core: specifiers: @@ -1116,7 +1116,7 @@ importers: packages/express: specifiers: '@remix-run/web-fetch': ^4.3.5 - '@trigger.dev/sdk': workspace:^2.1.2 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/express': ^4.17.13 @@ -1189,7 +1189,7 @@ importers: packages/react: specifiers: '@tanstack/react-query': 5.0.0-beta.2 - '@trigger.dev/core': workspace:^2.1.2 + '@trigger.dev/core': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/react': 18.2.17 @@ -1265,7 +1265,7 @@ importers: packages/trigger-sdk: specifiers: - '@trigger.dev/core': workspace:^2.1.2 + '@trigger.dev/core': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 '@types/node': '18' @@ -4733,6 +4733,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm/0.16.4: @@ -4784,6 +4785,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm64/0.16.4: @@ -4835,6 +4837,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-x64/0.16.4: @@ -4886,6 +4889,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-arm64/0.16.4: @@ -4937,6 +4941,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64/0.16.4: @@ -4988,6 +4993,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64/0.16.4: @@ -5039,6 +5045,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64/0.16.4: @@ -5090,6 +5097,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm/0.16.4: @@ -5141,6 +5149,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64/0.16.4: @@ -5192,6 +5201,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32/0.16.4: @@ -5252,6 +5262,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64/0.16.4: @@ -5303,6 +5314,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el/0.16.4: @@ -5354,6 +5366,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64/0.16.4: @@ -5405,6 +5418,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64/0.16.4: @@ -5456,6 +5470,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x/0.16.4: @@ -5507,6 +5522,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-x64/0.16.4: @@ -5558,6 +5574,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64/0.16.4: @@ -5609,6 +5626,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64/0.16.4: @@ -5660,6 +5678,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64/0.16.4: @@ -5711,6 +5730,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64/0.16.4: @@ -5762,6 +5782,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32/0.16.4: @@ -5813,6 +5834,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-x64/0.16.4: @@ -16630,6 +16652,7 @@ packages: '@esbuild/win32-arm64': 0.16.17 '@esbuild/win32-ia32': 0.16.17 '@esbuild/win32-x64': 0.16.17 + dev: true /esbuild/0.16.4: resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==} @@ -26222,6 +26245,7 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 + dev: true /rollup/3.29.1: resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} @@ -27862,6 +27886,38 @@ packages: /ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + /ts-jest/29.1.1_typescript@4.9.5: + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest-util: 29.6.2 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.4 + typescript: 4.9.5 + yargs-parser: 21.1.1 + dev: true + /ts-jest/29.1.1_xlkreayjyan5lfqjb5gzdqf3my: resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -29189,7 +29245,7 @@ packages: - terser dev: true - /vite-node/0.34.4_@types+node@20.5.2: + /vite-node/0.34.4_@types+node@20.6.0: resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -29199,7 +29255,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9_@types+node@20.5.2 + vite: 4.4.9_@types+node@20.6.0 transitivePeerDependencies: - '@types/node' - less @@ -29354,6 +29410,7 @@ packages: rollup: 3.10.0 optionalDependencies: fsevents: 2.3.2 + dev: true /vite/4.4.9: resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} @@ -29459,6 +29516,42 @@ packages: rollup: 3.29.1 optionalDependencies: fsevents: 2.3.2 + dev: true + + /vite/4.4.9_@types+node@20.6.0: + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.6.0 + esbuild: 0.18.11 + postcss: 8.4.29 + rollup: 3.29.1 + optionalDependencies: + fsevents: 2.3.2 /vitefu/0.2.4_vite@4.4.9: resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} @@ -29559,7 +29652,7 @@ packages: dependencies: '@types/chai': 4.3.6 '@types/chai-subset': 1.3.3 - '@types/node': 20.5.2 + '@types/node': 20.6.0 '@vitest/expect': 0.34.4 '@vitest/runner': 0.34.4 '@vitest/snapshot': 0.34.4 @@ -29578,8 +29671,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.1.4_@types+node@20.5.2 - vite-node: 0.34.4_@types+node@20.5.2 + vite: 4.4.9_@types+node@20.6.0 + vite-node: 0.34.4_@types+node@20.6.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 0545bf958236fe05c47ac25fa4430de883640c06 Mon Sep 17 00:00:00 2001 From: Manmeet Date: Fri, 15 Sep 2023 20:38:08 +0530 Subject: [PATCH 19/95] update client-adaptors for fastify --- docs/documentation/concepts/client-adaptors.mdx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/documentation/concepts/client-adaptors.mdx b/docs/documentation/concepts/client-adaptors.mdx index 98fc4dc56e8..43c64466057 100644 --- a/docs/documentation/concepts/client-adaptors.mdx +++ b/docs/documentation/concepts/client-adaptors.mdx @@ -24,10 +24,11 @@ Adaptors allows Clients to receive data from the Trigger API. They do this by cr Each platform has one or more adaptors, see the guides below: -| Platform | Adaptor | -| ------------------------------------------------- | -------------------- | -| [Next.js](/documentation/guides/platforms/nextjs) | `createPagesRoute()` | -| [Next.js](/documentation/guides/platforms/nextjs) | `createAppRoute()` | -| [Astro](/documentation/guides/platforms/astro) | `createAstroRoute()` | -| [Remix](/documentation/guides/platforms/remix) | `createRemixRoute()` | -| Express | Coming soon | +| Platform | Adaptor | +| -------------------------------------------------- | -------------------- | +| [Next.js](/documentation/guides/platforms/nextjs) | `createPagesRoute()` | +| [Next.js](/documentation/guides/platforms/nextjs) | `createAppRoute()` | +| [Astro](/documentation/guides/platforms/astro) | `createAstroRoute()` | +| [Remix](/documentation/guides/platforms/remix) | `createRemixRoute()` | +| [Fastify](/documentation/guides/platforms/fastify) | `createMiddleware()` | +| Express | Coming soon | From 486ed20ae7f98db6ac4b24637f5b268b14c9603d Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 16:08:58 +0100 Subject: [PATCH 20/95] Renamed the examples dir to references (true examples are in another repo and this was confusing) --- .changeset/calm-hornets-laugh.md | 6 + .dockerignore | 17 +- .github/workflows/publish.yml | 4 +- CONTRIBUTING.md | 30 +- docs/integrations/create-publishing.mdx | 2 +- docs/integrations/create-testing.mdx | 12 +- examples/jobs-starter/README.md | 34 - .../jobs-starter/app/api/trigger/route.ts | 7 - examples/jobs-starter/app/layout.tsx | 18 - examples/jobs-starter/app/page.tsx | 113 - examples/jobs-starter/jobs/starter.ts | 90 - examples/jobs-starter/next.config.js | 4 - examples/jobs-starter/package.json | 36 - examples/jobs-starter/trigger.ts | 7 - examples/jobs-starter/tsconfig.json | 32 - examples/nextjs-12/.gitignore | 36 - examples/nextjs-12/README.md | 34 - examples/nextjs-12/jsconfig.json | 3 - examples/nextjs-12/next.config.js | 7 - examples/nextjs-12/package.json | 26 - examples/nextjs-12/pages/_app.js | 7 - examples/nextjs-12/pages/api/hello.js | 5 - examples/nextjs-12/pages/api/trigger.js | 16 - examples/nextjs-12/pages/index.js | 63 - examples/nextjs-12/public/vercel.svg | 4 - examples/nextjs-12/styles/Home.module.css | 138 - examples/nextjs-12/styles/globals.css | 36 - examples/nextjs-test/.eslintrc.json | 3 - examples/nextjs-test/src/app/favicon.ico | Bin 25931 -> 0 bytes examples/package-tester/.eslintrc.json | 3 - examples/package-tester/.gitignore | 35 - examples/package-tester/app/favicon.ico | Bin 25931 -> 0 bytes examples/package-tester/app/globals.css | 23 - examples/package-tester/postcss.config.js | 6 - examples/package-tester/public/next.svg | 1 - examples/package-tester/public/vercel.svg | 1 - examples/package-tester/tailwind.config.js | 17 - packages/cli/CONTRIBUTING.md | 19 - .../cli/src/commands/createIntegration.ts | 4 +- packages/testing/README.md | 72 +- playwright.config.ts | 2 +- pnpm-lock.yaml | 2849 +++++++++-------- pnpm-workspace.yaml | 2 +- .../astro-referece}/.env.example | 0 .../astro-referece}/.gitignore | 0 .../astro-referece}/.vscode/extensions.json | 0 .../astro-referece}/.vscode/launch.json | 0 .../astro-referece}/README.md | 0 .../astro-referece}/astro.config.mjs | 0 .../astro-referece}/package.json | 0 .../astro-referece}/public/favicon.svg | 0 .../astro-referece}/src/components/Card.astro | 0 .../astro-referece}/src/env.d.ts | 0 .../astro-referece}/src/jobs/example.ts | 0 .../astro-referece}/src/layouts/Layout.astro | 0 .../astro-referece}/src/pages/api/trigger.ts | 0 .../astro-referece}/src/pages/index.astro | 0 .../astro-referece}/src/trigger.ts | 0 .../astro-referece}/tsconfig.json | 0 .../job-catalog/.env.example | 0 .../job-catalog/README.md | 4 +- .../job-catalog/package.json | 4 +- .../job-catalog/src/airtable.ts | 0 .../job-catalog/src/background-fetch.ts | 0 .../job-catalog/src/delays.ts | 0 .../job-catalog/src/dynamic-schedule.ts | 0 .../job-catalog/src/dynamic-triggers.ts | 0 .../job-catalog/src/events.ts | 0 .../job-catalog/src/github.ts | 0 .../job-catalog/src/openai.ts | 0 .../job-catalog/src/plain.ts | 0 .../job-catalog/src/resend.ts | 0 .../job-catalog/src/schedules.ts | 0 .../job-catalog/src/sendgrid.ts | 0 .../job-catalog/src/slack.ts | 0 .../job-catalog/src/stressTest.ts | 0 .../job-catalog/src/stripe.ts | 0 .../job-catalog/src/supabase-types.ts | 0 .../job-catalog/src/supabase.ts | 0 .../job-catalog/src/typeform.ts | 0 .../job-catalog/tsconfig.json | 0 .../nextjs-reference}/.eslintrc.json | 0 .../nextjs-reference}/.gitignore | 0 .../nextjs-reference}/.vscode/launch.json | 0 .../nextjs-reference}/.vscode/settings.json | 0 .../nextjs-reference}/README.md | 0 .../nextjs-reference}/next.config.js | 0 .../nextjs-reference}/package.json | 4 +- .../nextjs-reference/public}/favicon.ico | Bin .../nextjs-reference}/public/next.svg | 0 .../nextjs-reference}/public/vercel.svg | 0 .../src/app/api/send-test-event/route.ts | 0 .../src/app/api/trigger/route.ts | 0 .../src/app/events/[eventId]/page.tsx | 0 .../nextjs-reference}/src/app/layout.tsx | 0 .../nextjs-reference}/src/app/page.tsx | 0 .../src/components/ReactQuery.tsx | 0 .../src/components/RunDetails.tsx | 0 .../src/components/SendTestEvent.tsx | 0 .../nextjs-reference}/src/jobs/edgeCases.ts | 0 .../nextjs-reference}/src/jobs/events.ts | 0 .../nextjs-reference}/src/jobs/general.ts | 0 .../nextjs-reference}/src/jobs/github.ts | 0 .../nextjs-reference}/src/jobs/hooks.ts | 0 .../nextjs-reference}/src/jobs/logging.ts | 0 .../nextjs-reference}/src/jobs/openai.ts | 0 .../nextjs-reference}/src/jobs/plain.ts | 0 .../nextjs-reference}/src/jobs/schedules.ts | 0 .../nextjs-reference}/src/jobs/slack.ts | 0 .../nextjs-reference}/src/jobs/stripe.ts | 0 .../nextjs-reference}/src/jobs/supabase.ts | 0 .../nextjs-reference}/src/jobs/typeform.ts | 0 .../nextjs-reference}/src/mocks/handlers.ts | 0 .../src/styles/Home.module.css | 0 .../nextjs-reference}/src/styles/globals.css | 0 .../nextjs-reference}/src/supabase.types.ts | 0 .../nextjs-reference}/src/trigger.ts | 1 - .../nextjs-reference}/tsconfig.json | 0 .../nextjs-test/.env.example | 0 .../nextjs-test}/.eslintrc.json | 0 .../nextjs-test}/.gitignore | 0 .../nextjs-test/README.md | 0 .../nextjs-test/jsconfig.json | 0 .../nextjs-test/next.config.js | 0 .../nextjs-test/package.json | 4 +- .../nextjs-test}/public/next.svg | 0 .../nextjs-test}/public/vercel.svg | 0 .../nextjs-test/src/app/api/trigger/route.js | 0 .../nextjs-test/src/app}/favicon.ico | Bin .../nextjs-test/src/app/globals.css | 0 .../nextjs-test/src/app/layout.js | 0 .../nextjs-test/src/app/page.js | 0 .../nextjs-test/src/app/page.module.css | 0 .../nextjs-test/src/jobs/examples.js | 0 .../nextjs-test/src/trigger.js | 0 .../package-tester/.env.local.example | 0 .../package-tester}/.eslintrc.json | 0 .../package-tester}/.gitignore | 0 .../package-tester/README.md | 4 +- .../package-tester/app/_actions.tsx | 0 .../package-tester/app/api/trigger/route.ts | 0 .../app/components/ReactHooks.tsx | 0 .../app/components/SendReactHookEventForm.tsx | 0 .../app/events/[eventId]/page.tsx | 0 .../package-tester/app}/favicon.ico | Bin .../package-tester}/app/globals.css | 0 .../package-tester/app/jobs/react-hook.ts | 0 .../package-tester/app/layout.tsx | 0 .../package-tester/app/page.tsx | 0 .../package-tester/app/trigger.ts | 0 .../package-tester/next.config.js | 0 .../package-tester/package.json | 4 +- .../package-tester}/postcss.config.js | 0 .../package-tester}/public/next.svg | 0 .../package-tester}/public/vercel.svg | 0 .../package-tester}/tailwind.config.js | 0 .../package-tester/tsconfig.json | 0 .../remix-reference}/.eslintrc.js | 0 .../remix-reference}/.gitignore | 0 .../remix-reference}/README.md | 0 .../remix-reference}/app/entry.client.tsx | 0 .../remix-reference}/app/entry.server.tsx | 0 .../app/jobs/example.server.ts | 0 .../remix-reference}/app/root.tsx | 0 .../remix-reference}/app/routes/_index.tsx | 0 .../app/routes/api.trigger.ts | 0 .../remix-reference}/app/trigger.ts | 0 .../remix-reference}/package.json | 4 +- .../remix-reference}/public/favicon.ico | Bin .../remix-reference}/remix.config.js | 0 .../remix-reference}/remix.env.d.ts | 0 .../remix-reference}/tsconfig.json | 0 .../unit-testing/.gitignore | 0 .../unit-testing/dummy-integration/index.ts | 0 .../unit-testing/package.json | 4 +- .../unit-testing/tests/example.test.ts | 0 .../unit-testing/tsconfig.json | 0 tests/global.setup.ts | 6 +- 178 files changed, 1573 insertions(+), 2290 deletions(-) create mode 100644 .changeset/calm-hornets-laugh.md delete mode 100644 examples/jobs-starter/README.md delete mode 100644 examples/jobs-starter/app/api/trigger/route.ts delete mode 100644 examples/jobs-starter/app/layout.tsx delete mode 100644 examples/jobs-starter/app/page.tsx delete mode 100644 examples/jobs-starter/jobs/starter.ts delete mode 100644 examples/jobs-starter/next.config.js delete mode 100644 examples/jobs-starter/package.json delete mode 100644 examples/jobs-starter/trigger.ts delete mode 100644 examples/jobs-starter/tsconfig.json delete mode 100644 examples/nextjs-12/.gitignore delete mode 100644 examples/nextjs-12/README.md delete mode 100644 examples/nextjs-12/jsconfig.json delete mode 100644 examples/nextjs-12/next.config.js delete mode 100644 examples/nextjs-12/package.json delete mode 100644 examples/nextjs-12/pages/_app.js delete mode 100644 examples/nextjs-12/pages/api/hello.js delete mode 100644 examples/nextjs-12/pages/api/trigger.js delete mode 100644 examples/nextjs-12/pages/index.js delete mode 100644 examples/nextjs-12/public/vercel.svg delete mode 100644 examples/nextjs-12/styles/Home.module.css delete mode 100644 examples/nextjs-12/styles/globals.css delete mode 100644 examples/nextjs-test/.eslintrc.json delete mode 100644 examples/nextjs-test/src/app/favicon.ico delete mode 100644 examples/package-tester/.eslintrc.json delete mode 100644 examples/package-tester/.gitignore delete mode 100644 examples/package-tester/app/favicon.ico delete mode 100644 examples/package-tester/app/globals.css delete mode 100644 examples/package-tester/postcss.config.js delete mode 100644 examples/package-tester/public/next.svg delete mode 100644 examples/package-tester/public/vercel.svg delete mode 100644 examples/package-tester/tailwind.config.js delete mode 100644 packages/cli/CONTRIBUTING.md rename {examples/astro-example => references/astro-referece}/.env.example (100%) rename {examples/astro-example => references/astro-referece}/.gitignore (100%) rename {examples/astro-example => references/astro-referece}/.vscode/extensions.json (100%) rename {examples/astro-example => references/astro-referece}/.vscode/launch.json (100%) rename {examples/astro-example => references/astro-referece}/README.md (100%) rename {examples/astro-example => references/astro-referece}/astro.config.mjs (100%) rename {examples/astro-example => references/astro-referece}/package.json (100%) rename {examples/astro-example => references/astro-referece}/public/favicon.svg (100%) rename {examples/astro-example => references/astro-referece}/src/components/Card.astro (100%) rename {examples/astro-example => references/astro-referece}/src/env.d.ts (100%) rename {examples/astro-example => references/astro-referece}/src/jobs/example.ts (100%) rename {examples/astro-example => references/astro-referece}/src/layouts/Layout.astro (100%) rename {examples/astro-example => references/astro-referece}/src/pages/api/trigger.ts (100%) rename {examples/astro-example => references/astro-referece}/src/pages/index.astro (100%) rename {examples/astro-example => references/astro-referece}/src/trigger.ts (100%) rename {examples/astro-example => references/astro-referece}/tsconfig.json (100%) rename {examples => references}/job-catalog/.env.example (100%) rename {examples => references}/job-catalog/README.md (96%) rename {examples => references}/job-catalog/package.json (98%) rename {examples => references}/job-catalog/src/airtable.ts (100%) rename {examples => references}/job-catalog/src/background-fetch.ts (100%) rename {examples => references}/job-catalog/src/delays.ts (100%) rename {examples => references}/job-catalog/src/dynamic-schedule.ts (100%) rename {examples => references}/job-catalog/src/dynamic-triggers.ts (100%) rename {examples => references}/job-catalog/src/events.ts (100%) rename {examples => references}/job-catalog/src/github.ts (100%) rename {examples => references}/job-catalog/src/openai.ts (100%) rename {examples => references}/job-catalog/src/plain.ts (100%) rename {examples => references}/job-catalog/src/resend.ts (100%) rename {examples => references}/job-catalog/src/schedules.ts (100%) rename {examples => references}/job-catalog/src/sendgrid.ts (100%) rename {examples => references}/job-catalog/src/slack.ts (100%) rename {examples => references}/job-catalog/src/stressTest.ts (100%) rename {examples => references}/job-catalog/src/stripe.ts (100%) rename {examples => references}/job-catalog/src/supabase-types.ts (100%) rename {examples => references}/job-catalog/src/supabase.ts (100%) rename {examples => references}/job-catalog/src/typeform.ts (100%) rename {examples => references}/job-catalog/tsconfig.json (100%) rename {examples/nextjs-example => references/nextjs-reference}/.eslintrc.json (100%) rename {examples/jobs-starter => references/nextjs-reference}/.gitignore (100%) rename {examples/nextjs-example => references/nextjs-reference}/.vscode/launch.json (100%) rename {examples/nextjs-example => references/nextjs-reference}/.vscode/settings.json (100%) rename {examples/nextjs-example => references/nextjs-reference}/README.md (100%) rename {examples/nextjs-example => references/nextjs-reference}/next.config.js (100%) rename {examples/nextjs-example => references/nextjs-reference}/package.json (93%) rename {examples/jobs-starter/app => references/nextjs-reference/public}/favicon.ico (100%) rename {examples/jobs-starter => references/nextjs-reference}/public/next.svg (100%) rename {examples/jobs-starter => references/nextjs-reference}/public/vercel.svg (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/app/api/send-test-event/route.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/app/api/trigger/route.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/app/events/[eventId]/page.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/app/layout.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/app/page.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/components/ReactQuery.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/components/RunDetails.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/components/SendTestEvent.tsx (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/edgeCases.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/events.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/general.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/github.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/hooks.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/logging.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/openai.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/plain.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/schedules.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/slack.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/stripe.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/supabase.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/jobs/typeform.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/mocks/handlers.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/styles/Home.module.css (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/styles/globals.css (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/supabase.types.ts (100%) rename {examples/nextjs-example => references/nextjs-reference}/src/trigger.ts (96%) rename {examples/nextjs-example => references/nextjs-reference}/tsconfig.json (100%) rename {examples => references}/nextjs-test/.env.example (100%) rename {examples/jobs-starter => references/nextjs-test}/.eslintrc.json (100%) rename {examples/nextjs-example => references/nextjs-test}/.gitignore (100%) rename {examples => references}/nextjs-test/README.md (100%) rename {examples => references}/nextjs-test/jsconfig.json (100%) rename {examples => references}/nextjs-test/next.config.js (100%) rename {examples => references}/nextjs-test/package.json (95%) rename {examples/nextjs-example => references/nextjs-test}/public/next.svg (100%) rename {examples/nextjs-example => references/nextjs-test}/public/vercel.svg (100%) rename {examples => references}/nextjs-test/src/app/api/trigger/route.js (100%) rename {examples/nextjs-12/public => references/nextjs-test/src/app}/favicon.ico (100%) rename {examples => references}/nextjs-test/src/app/globals.css (100%) rename {examples => references}/nextjs-test/src/app/layout.js (100%) rename {examples => references}/nextjs-test/src/app/page.js (100%) rename {examples => references}/nextjs-test/src/app/page.module.css (100%) rename {examples => references}/nextjs-test/src/jobs/examples.js (100%) rename {examples => references}/nextjs-test/src/trigger.js (100%) rename {examples => references}/package-tester/.env.local.example (100%) rename {examples/nextjs-12 => references/package-tester}/.eslintrc.json (100%) rename {examples/nextjs-test => references/package-tester}/.gitignore (100%) rename {examples => references}/package-tester/README.md (85%) rename {examples => references}/package-tester/app/_actions.tsx (100%) rename {examples => references}/package-tester/app/api/trigger/route.ts (100%) rename {examples => references}/package-tester/app/components/ReactHooks.tsx (100%) rename {examples => references}/package-tester/app/components/SendReactHookEventForm.tsx (100%) rename {examples => references}/package-tester/app/events/[eventId]/page.tsx (100%) rename {examples/nextjs-example/public => references/package-tester/app}/favicon.ico (100%) rename {examples/jobs-starter => references/package-tester}/app/globals.css (100%) rename {examples => references}/package-tester/app/jobs/react-hook.ts (100%) rename {examples => references}/package-tester/app/layout.tsx (100%) rename {examples => references}/package-tester/app/page.tsx (100%) rename {examples => references}/package-tester/app/trigger.ts (100%) rename {examples => references}/package-tester/next.config.js (100%) rename {examples => references}/package-tester/package.json (96%) rename {examples/jobs-starter => references/package-tester}/postcss.config.js (100%) rename {examples/nextjs-test => references/package-tester}/public/next.svg (100%) rename {examples/nextjs-test => references/package-tester}/public/vercel.svg (100%) rename {examples/jobs-starter => references/package-tester}/tailwind.config.js (100%) rename {examples => references}/package-tester/tsconfig.json (100%) rename {examples/remix-example => references/remix-reference}/.eslintrc.js (100%) rename {examples/remix-example => references/remix-reference}/.gitignore (100%) rename {examples/remix-example => references/remix-reference}/README.md (100%) rename {examples/remix-example => references/remix-reference}/app/entry.client.tsx (100%) rename {examples/remix-example => references/remix-reference}/app/entry.server.tsx (100%) rename {examples/remix-example => references/remix-reference}/app/jobs/example.server.ts (100%) rename {examples/remix-example => references/remix-reference}/app/root.tsx (100%) rename {examples/remix-example => references/remix-reference}/app/routes/_index.tsx (100%) rename {examples/remix-example => references/remix-reference}/app/routes/api.trigger.ts (100%) rename {examples/remix-example => references/remix-reference}/app/trigger.ts (100%) rename {examples/remix-example => references/remix-reference}/package.json (96%) rename {examples/remix-example => references/remix-reference}/public/favicon.ico (100%) rename {examples/remix-example => references/remix-reference}/remix.config.js (100%) rename {examples/remix-example => references/remix-reference}/remix.env.d.ts (100%) rename {examples/remix-example => references/remix-reference}/tsconfig.json (100%) rename {examples => references}/unit-testing/.gitignore (100%) rename {examples => references}/unit-testing/dummy-integration/index.ts (100%) rename {examples => references}/unit-testing/package.json (92%) rename {examples => references}/unit-testing/tests/example.test.ts (100%) rename {examples => references}/unit-testing/tsconfig.json (100%) diff --git a/.changeset/calm-hornets-laugh.md b/.changeset/calm-hornets-laugh.md new file mode 100644 index 00000000000..e38e7b1a2b9 --- /dev/null +++ b/.changeset/calm-hornets-laugh.md @@ -0,0 +1,6 @@ +--- +"@trigger.dev/testing": patch +"@trigger.dev/cli": patch +--- + +Moved examples to references in the monorepo diff --git a/.dockerignore b/.dockerignore index 53f29c1c742..2b8f2382bc4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,35 +1,43 @@ -*.log +\*.log .git .github + # editor + .idea .vscode + # dependencies + node_modules .pnp .pnp.js # testing + coverage # next.js + .next/ build # packages + build dist -packages/**/dist +packages/\*\*/dist # misc + .DS_Store -*.pem +\*.pem .turbo .vercel .cache .output -apps/**/public/build +apps/\*\*/public/build cypress/screenshots cypress/videos @@ -38,6 +46,7 @@ apps/**/styles/tailwind.css packages/**/styles/tailwind.css .changeset +references examples CHANGESETS.md CONTRIBUTING.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5a1dd2a0a67..74282ef693f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -129,10 +129,10 @@ jobs: run: | # Setup environment variables cp ./.env.example ./.env - cp ./examples/nextjs-test/.env.example ./examples/nextjs-test/.env.local + cp ./references/nextjs-test/.env.example ./references/nextjs-test/.env.local # Build packages - pnpm run build --filter @examples/nextjs-test^... + pnpm run build --filter @references/nextjs-test^... pnpm --filter @trigger.dev/database generate # Move trigger-cli bin to correct place diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0cd4a35599..471123fd38d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -133,10 +133,10 @@ pnpm run dev 2. Open a new Terminal window and run the webapp locally and then create a new project in the dashboard. Copy out the dev API key. -3. Create a new temporary Next.js app in examples directory +3. Create a new temporary Next.js app in references directory ```sh -cd ./examples +cd ./references pnpm create next-app@latest test-cli --ts --no-eslint --tailwind --app --src-dir --import-alias "@/*" ``` @@ -149,7 +149,7 @@ pnpm create next-app@latest test-cli --ts --no-eslint --tailwind --app --src-dir } ``` -5. Back in the terminal, navigate into the example, and initialize the CLI. When prompted, select `self-hosted` and enter `localhost:3030` if you are testing against the local instance of Trigger.dev, or you can just use the Trigger.dev cloud. When asked for an API key, use the key you copied earlier. +5. Back in the terminal, navigate into the reference, and initialize the CLI. When prompted, select `self-hosted` and enter `localhost:3030` if you are testing against the local instance of Trigger.dev, or you can just use the Trigger.dev cloud. When asked for an API key, use the key you copied earlier. ```sh cd ./test-cli @@ -179,14 +179,14 @@ To run the end-to-end tests, follow the steps below: ```sh cp ./.env.example ./.env -cp ./examples/nextjs-test/.env.example ./examples/nextjs-test/.env.local +cp ./references/nextjs-test/.env.example ./references/nextjs-test/.env.local ``` 2. Set up dependencies ```sh # Build packages -pnpm run build --filter @examples/nextjs-test^... +pnpm run build --filter @references/nextjs-test^... pnpm --filter @trigger.dev/database generate # Move trigger-cli bin to correct place @@ -221,11 +221,11 @@ pnpm run db:studio ## Add sample jobs -The [examples/jobs-starter](./examples/jobs-starter/) project defines simple jobs you can get started with. +The [references/job-catalog](./references/job-catalog/) project defines simple jobs you can get started with. -1. `cd` into `examples/jobs-starter` -2. Create a `.env.local` file with the following content, - replacing `[TRIGGER_DEV_API_KEY]` with an actual key: +1. `cd` into `references/job-catalog` +2. Create a `.env` file with the following content, + replacing `` with an actual key: ```env TRIGGER_API_KEY=[TRIGGER_DEV_API_KEY] @@ -235,12 +235,20 @@ TRIGGER_API_URL=http://localhost:3030 `TRIGGER_API_URL` is used to configure the URL for your Trigger.dev instance, where the jobs will be registered. -3. Run the `jobs-starter` app: +3. Run one of the the `job-catalog` files: ```sh -pnpm dev +pnpm run events ``` +This will open up a local server using `express` on port 8080. Then in a new terminal window you can run the trigger-cli dev command: + +```sh +pnpm run dev:trigger +``` + +See the [Job Catalog](./references/job-catalog/README.md) file for more. + 4. Navigate to your trigger.dev instance ([http://localhost:3030](http://localhost:3030/)), to see the jobs. You can use the test feature to trigger them. diff --git a/docs/integrations/create-publishing.mdx b/docs/integrations/create-publishing.mdx index 062b57f173b..a70c9d7bb15 100644 --- a/docs/integrations/create-publishing.mdx +++ b/docs/integrations/create-publishing.mdx @@ -8,7 +8,7 @@ description: "Publishing an official integration package to the public registry. Ensure that you have done the following: - [ ] Create the integrations in the `integrations` folder. -- [ ] Created a file in the `examples/job-catalog` folder with some example jobs. +- [ ] Created a file in the `references/job-catalog` folder with some example jobs. - [ ] Have exported types. - [ ] Avoid using `any` types and `@ts-ignore` comments. If there are any, please explain them in the PR. diff --git a/docs/integrations/create-testing.mdx b/docs/integrations/create-testing.mdx index cd5e5a81b58..b7cded77209 100644 --- a/docs/integrations/create-testing.mdx +++ b/docs/integrations/create-testing.mdx @@ -3,17 +3,17 @@ title: Testing description: "To test your integration you should create some example Jobs where you test all the functionality." --- -# examples/job-catalog +# references/job-catalog -When building an official integration (in the Trigger.dev monorepo) you should use the job-catalog to test your integration. This collection of examples is useful for creating docs as well as testing. +When building an official integration (in the Trigger.dev monorepo) you should use the job-catalog to test your integration. This collection of reference jobs is useful for creating docs as well as testing. ## 1. Getting setup -You can follow [the README](https://github.com/triggerdotdev/trigger.dev/tree/main/examples/job-catalog) to get setup. It explains how to add a new Job as well. +You can follow [the README](https://github.com/triggerdotdev/trigger.dev/tree/main/references/job-catalog) to get setup. It explains how to add a new Job as well. ## 2. Adding your package -You'll need to add your integration to [the package.json file](https://github.com/triggerdotdev/trigger.dev/blob/main/examples/job-catalog/package.json): +You'll need to add your integration to [the package.json file](https://github.com/triggerdotdev/trigger.dev/blob/main/references/job-catalog/package.json): ```json { @@ -25,7 +25,7 @@ You'll need to add your integration to [the package.json file](https://github.co } ``` -And to [the tsconfig.json file](https://github.com/triggerdotdev/trigger.dev/blob/main/examples/job-catalog/tsconfig.json): +And to [the tsconfig.json file](https://github.com/triggerdotdev/trigger.dev/blob/main/references/job-catalog/tsconfig.json): ```json { @@ -47,4 +47,4 @@ And to [the tsconfig.json file](https://github.com/triggerdotdev/trigger.dev/blo ## 3. Adding your Jobs -Create a new file in `src` that uses all the features of your integration. [The Typeform one](https://github.com/triggerdotdev/trigger.dev/blob/main/examples/job-catalog/src/typeform.ts) is a useful reference that has Tasks and Triggers. +Create a new file in `src` that uses all the features of your integration. [The Typeform one](https://github.com/triggerdotdev/trigger.dev/blob/main/references/job-catalog/src/typeform.ts) is a useful reference that has Tasks and Triggers. diff --git a/examples/jobs-starter/README.md b/examples/jobs-starter/README.md deleted file mode 100644 index f4da3c4c1cf..00000000000 --- a/examples/jobs-starter/README.md +++ /dev/null @@ -1,34 +0,0 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/jobs-starter/app/api/trigger/route.ts b/examples/jobs-starter/app/api/trigger/route.ts deleted file mode 100644 index f66dc0fbeb0..00000000000 --- a/examples/jobs-starter/app/api/trigger/route.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createAppRoute } from "@trigger.dev/nextjs"; -import { client } from "@/trigger"; - -import "@/jobs/starter"; - -//this route is used to send and receive data with Trigger.dev -export const { POST, dynamic } = createAppRoute(client); diff --git a/examples/jobs-starter/app/layout.tsx b/examples/jobs-starter/app/layout.tsx deleted file mode 100644 index cce852fd750..00000000000 --- a/examples/jobs-starter/app/layout.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import "./globals.css"; -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", -}; - -export default function RootLayout({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ); -} diff --git a/examples/jobs-starter/app/page.tsx b/examples/jobs-starter/app/page.tsx deleted file mode 100644 index 75ceab209f3..00000000000 --- a/examples/jobs-starter/app/page.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import Image from "next/image"; - -export default function Home() { - return ( -
-
-

- Get started by editing  - app/page.tsx -

- -
- -
- Next.js Logo -
- - -
- ); -} diff --git a/examples/jobs-starter/jobs/starter.ts b/examples/jobs-starter/jobs/starter.ts deleted file mode 100644 index c92d592a4b7..00000000000 --- a/examples/jobs-starter/jobs/starter.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { eventTrigger, intervalTrigger } from "@trigger.dev/sdk"; -import { client } from "@/trigger"; - -const QUOTES = [ - "Any fool can write code that a computer can understand. Good programmers write code that humans can understand. – Martin Fowler", - "First, solve the problem. Then, write the code. – John Johnson", - "Experience is the name everyone gives to their mistakes. – Oscar Wilde", - "In order to be irreplaceable, one must always be different – Coco Chanel", - "Knowledge is power. – Francis Bacon", - "Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday’s code. – Dan Salomon", - "Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away. – Antoine de Saint-Exupery", - "Rust is the most loved programming language. – Stack Overflow", - "Code is like humor. When you have to explain it, it’s bad. – Cory House", - "Fix the cause, not the symptom. – Steve Maguire", -]; - -client.defineJob({ - id: "hello-world", - name: "Hello World", - version: "0.0.1", - trigger: eventTrigger({ - name: "starter.hello-world", - }), - run: async (_payload, io, _ctx) => { - await io.logger.info("Hello world!"); - - return { - message: "Hello world!", - }; - }, -}); - -client.defineJob({ - id: "quote", - name: "Random Quote", - version: "0.0.1", - trigger: eventTrigger({ - name: "starter.quote", - }), - run: async (_payload, _io, _ctx) => { - return { - quote: QUOTES[Math.floor(Math.random() * QUOTES.length)], - }; - }, -}); - -client.defineJob({ - id: "usd-eur-change-rate", - name: "USD-EUR Change Rate", - version: "0.0.1", - trigger: intervalTrigger({ - seconds: 60, - }), - run: async (_payload, io, _ctx) => { - // This is just a dummy example, we can actually use an API to pull the actual rate - await io.logger.info("Fetching USD-EUR rate..."); - - return { - rate: 0.85, - }; - }, -}); - -client.defineJob({ - id: "stars-count", - name: "Number of stars for Trigger.dev repo", - version: "0.0.1", - trigger: intervalTrigger({ - seconds: 60 * 60, - }), - run: async (_payload, io, _ctx) => { - return await io.runTask( - "get-stars-count", - - async () => { - try { - const response = await fetch("https://api.github.com/repos/triggerdotdev/trigger.dev"); - const { stargazers_count } = await response.json(); - - return { success: true, stargazers_count }; - } catch (error) { - await io.logger.error("Failed to fetch stars count", { error }); - - return { success: false }; - } - }, - { name: "Get Trigger.dev stars count" } - ); - }, -}); diff --git a/examples/jobs-starter/next.config.js b/examples/jobs-starter/next.config.js deleted file mode 100644 index 658404ac690..00000000000 --- a/examples/jobs-starter/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = {}; - -module.exports = nextConfig; diff --git a/examples/jobs-starter/package.json b/examples/jobs-starter/package.json deleted file mode 100644 index 8732b020432..00000000000 --- a/examples/jobs-starter/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@examples/jobs-starter", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "concurrently --kill-others npm:dev:*", - "dev:next": "next dev", - "dev:trigger": "npx @trigger.dev/cli dev", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@trigger.dev/nextjs": "workspace:*", - "@trigger.dev/sdk": "workspace:*", - "@types/node": "20.4.2", - "@types/react": "18.2.17", - "@types/react-dom": "18.2.7", - "autoprefixer": "10.4.14", - "eslint": "8.45.0", - "eslint-config-next": "13.4.10", - "next": "13.4.10", - "postcss": "8.4.26", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "tailwindcss": "3.3.3", - "typescript": "5.1.6" - }, - "trigger.dev": { - "endpointId": "jobs-starter" - }, - "devDependencies": { - "concurrently": "^8.2.0", - "@trigger.dev/cli": "workspace:*" - } -} diff --git a/examples/jobs-starter/trigger.ts b/examples/jobs-starter/trigger.ts deleted file mode 100644 index 4d031c8a3d8..00000000000 --- a/examples/jobs-starter/trigger.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { TriggerClient } from "@trigger.dev/sdk"; - -export const client = new TriggerClient({ - id: "jobs-starter", - apiKey: process.env.TRIGGER_API_KEY, - apiUrl: process.env.TRIGGER_API_URL, -}); diff --git a/examples/jobs-starter/tsconfig.json b/examples/jobs-starter/tsconfig.json deleted file mode 100644 index 52c2f4f2848..00000000000 --- a/examples/jobs-starter/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2015", - "lib": ["dom", "dom.iterable", "ES2015"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "paths": { - "@/*": ["./*"], - "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], - "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], - "@trigger.dev/nextjs": ["../../packages/nextjs/src/index"], - "@trigger.dev/nextjs/*": ["../../packages/nextjs/src/*"] - }, - "plugins": [ - { - "name": "next" - } - ] - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/examples/nextjs-12/.gitignore b/examples/nextjs-12/.gitignore deleted file mode 100644 index c87c9b392c0..00000000000 --- a/examples/nextjs-12/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/nextjs-12/README.md b/examples/nextjs-12/README.md deleted file mode 100644 index b12f3e33e7d..00000000000 --- a/examples/nextjs-12/README.md +++ /dev/null @@ -1,34 +0,0 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. - -[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. - -The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/nextjs-12/jsconfig.json b/examples/nextjs-12/jsconfig.json deleted file mode 100644 index 875cb600126..00000000000 --- a/examples/nextjs-12/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "compilerOptions": {} -} diff --git a/examples/nextjs-12/next.config.js b/examples/nextjs-12/next.config.js deleted file mode 100644 index 3d3bc9990d8..00000000000 --- a/examples/nextjs-12/next.config.js +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - reactStrictMode: true, - swcMinify: true, -}; - -module.exports = nextConfig; diff --git a/examples/nextjs-12/package.json b/examples/nextjs-12/package.json deleted file mode 100644 index b82e8c2bd08..00000000000 --- a/examples/nextjs-12/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "nextjs-12", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "next": "12.3.4", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "@trigger.dev/nextjs": "workspace:*", - "@trigger.dev/sdk": "workspace:*" - }, - "devDependencies": { - "eslint": "8.44.0", - "eslint-config-next": "12.3.4", - "@trigger.dev/cli": "workspace:*" - }, - "trigger.dev": { - "endpointId": "nextjs-12" - } -} diff --git a/examples/nextjs-12/pages/_app.js b/examples/nextjs-12/pages/_app.js deleted file mode 100644 index 2fc3e070091..00000000000 --- a/examples/nextjs-12/pages/_app.js +++ /dev/null @@ -1,7 +0,0 @@ -import "../styles/globals.css"; - -function MyApp({ Component, pageProps }) { - return ; -} - -export default MyApp; diff --git a/examples/nextjs-12/pages/api/hello.js b/examples/nextjs-12/pages/api/hello.js deleted file mode 100644 index aee21e9afab..00000000000 --- a/examples/nextjs-12/pages/api/hello.js +++ /dev/null @@ -1,5 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction - -export default function handler(req, res) { - res.status(200).json({ name: "John Doe" }); -} diff --git a/examples/nextjs-12/pages/api/trigger.js b/examples/nextjs-12/pages/api/trigger.js deleted file mode 100644 index b5539162a64..00000000000 --- a/examples/nextjs-12/pages/api/trigger.js +++ /dev/null @@ -1,16 +0,0 @@ -import { TriggerClient } from "@trigger.dev/sdk"; -import { createPagesRoute } from "@trigger.dev/nextjs"; - -export const client = new TriggerClient({ - id: "nextjs-12", - apiKey: process.env.TRIGGER_API_KEY, - apiUrl: process.env.TRIGGER_API_URL, - verbose: false, - ioLogLocalEnabled: true, -}); - -const { handler, config } = createPagesRoute(client); - -export { config }; - -export default handler; diff --git a/examples/nextjs-12/pages/index.js b/examples/nextjs-12/pages/index.js deleted file mode 100644 index 32694edba4a..00000000000 --- a/examples/nextjs-12/pages/index.js +++ /dev/null @@ -1,63 +0,0 @@ -import Head from "next/head"; -import Image from "next/image"; -import styles from "../styles/Home.module.css"; - -export default function Home() { - return ( - - ); -} diff --git a/examples/nextjs-12/public/vercel.svg b/examples/nextjs-12/public/vercel.svg deleted file mode 100644 index fbf0e25a651..00000000000 --- a/examples/nextjs-12/public/vercel.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - \ No newline at end of file diff --git a/examples/nextjs-12/styles/Home.module.css b/examples/nextjs-12/styles/Home.module.css deleted file mode 100644 index 90817bd3910..00000000000 --- a/examples/nextjs-12/styles/Home.module.css +++ /dev/null @@ -1,138 +0,0 @@ -.container { - padding: 0 2rem; -} - -.main { - min-height: 100vh; - padding: 4rem 0; - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.footer { - display: flex; - flex: 1; - padding: 2rem 0; - border-top: 1px solid #eaeaea; - justify-content: center; - align-items: center; -} - -.footer a { - display: flex; - justify-content: center; - align-items: center; - flex-grow: 1; -} - -.title a { - color: #0070f3; - text-decoration: none; -} - -.title a:hover, -.title a:focus, -.title a:active { - text-decoration: underline; -} - -.title { - margin: 0; - line-height: 1.15; - font-size: 4rem; -} - -.title, -.description { - text-align: center; -} - -.description { - margin: 4rem 0; - line-height: 1.5; - font-size: 1.5rem; -} - -.code { - background: #fafafa; - border-radius: 5px; - padding: 0.75rem; - font-size: 1.1rem; - font-family: - Menlo, - Monaco, - Lucida Console, - Liberation Mono, - DejaVu Sans Mono, - Bitstream Vera Sans Mono, - Courier New, - monospace; -} - -.grid { - display: flex; - align-items: center; - justify-content: center; - flex-wrap: wrap; - max-width: 800px; -} - -.card { - margin: 1rem; - padding: 1.5rem; - text-align: left; - color: inherit; - text-decoration: none; - border: 1px solid #eaeaea; - border-radius: 10px; - transition: - color 0.15s ease, - border-color 0.15s ease; - max-width: 300px; -} - -.card:hover, -.card:focus, -.card:active { - color: #0070f3; - border-color: #0070f3; -} - -.card h2 { - margin: 0 0 1rem 0; - font-size: 1.5rem; -} - -.card p { - margin: 0; - font-size: 1.25rem; - line-height: 1.5; -} - -.logo { - height: 1em; - margin-left: 0.5rem; -} - -@media (max-width: 600px) { - .grid { - width: 100%; - flex-direction: column; - } -} - -@media (prefers-color-scheme: dark) { - .card, - .footer { - border-color: #222; - } - .code { - background: #111; - } - .logo img { - filter: invert(1); - } -} diff --git a/examples/nextjs-12/styles/globals.css b/examples/nextjs-12/styles/globals.css deleted file mode 100644 index f7efe20c367..00000000000 --- a/examples/nextjs-12/styles/globals.css +++ /dev/null @@ -1,36 +0,0 @@ -html, -body { - padding: 0; - margin: 0; - font-family: - -apple-system, - BlinkMacSystemFont, - Segoe UI, - Roboto, - Oxygen, - Ubuntu, - Cantarell, - Fira Sans, - Droid Sans, - Helvetica Neue, - sans-serif; -} - -a { - color: inherit; - text-decoration: none; -} - -* { - box-sizing: border-box; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } - body { - color: white; - background: black; - } -} diff --git a/examples/nextjs-test/.eslintrc.json b/examples/nextjs-test/.eslintrc.json deleted file mode 100644 index bffb357a712..00000000000 --- a/examples/nextjs-test/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/examples/nextjs-test/src/app/favicon.ico b/examples/nextjs-test/src/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/examples/package-tester/.eslintrc.json b/examples/package-tester/.eslintrc.json deleted file mode 100644 index bffb357a712..00000000000 --- a/examples/package-tester/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/examples/package-tester/.gitignore b/examples/package-tester/.gitignore deleted file mode 100644 index 8f322f0d8f4..00000000000 --- a/examples/package-tester/.gitignore +++ /dev/null @@ -1,35 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/package-tester/app/favicon.ico b/examples/package-tester/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/examples/package-tester/app/globals.css b/examples/package-tester/app/globals.css deleted file mode 100644 index e0936eda7df..00000000000 --- a/examples/package-tester/app/globals.css +++ /dev/null @@ -1,23 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -:root { - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 214, 219, 220; - --background-end-rgb: 255, 255, 255; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - } -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) - rgb(var(--background-start-rgb)); -} diff --git a/examples/package-tester/postcss.config.js b/examples/package-tester/postcss.config.js deleted file mode 100644 index 12a703d900d..00000000000 --- a/examples/package-tester/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/examples/package-tester/public/next.svg b/examples/package-tester/public/next.svg deleted file mode 100644 index 5174b28c565..00000000000 --- a/examples/package-tester/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/examples/package-tester/public/vercel.svg b/examples/package-tester/public/vercel.svg deleted file mode 100644 index d2f84222734..00000000000 --- a/examples/package-tester/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/examples/package-tester/tailwind.config.js b/examples/package-tester/tailwind.config.js deleted file mode 100644 index bb0a4e29fc1..00000000000 --- a/examples/package-tester/tailwind.config.js +++ /dev/null @@ -1,17 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - "./pages/**/*.{js,ts,jsx,tsx,mdx}", - "./components/**/*.{js,ts,jsx,tsx,mdx}", - "./app/**/*.{js,ts,jsx,tsx,mdx}", - ], - theme: { - extend: { - backgroundImage: { - "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", - "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", - }, - }, - }, - plugins: [], -}; diff --git a/packages/cli/CONTRIBUTING.md b/packages/cli/CONTRIBUTING.md deleted file mode 100644 index 77b510a9bcd..00000000000 --- a/packages/cli/CONTRIBUTING.md +++ /dev/null @@ -1,19 +0,0 @@ -# How to run the CLI locally - -First, cd into the cli directory: - -```sh -cd packages/cli -``` - -Then run `pnpm run dev` which will build and re-build on any changes to the CLI package - -Next, head to an example repo (e.g. `examples/nextjs-clerk`) and add the package to `devDependencies` if it's not already: - -```json -"devDependencies": { - "@trigger.dev/cli": "workspace:*" -}, -``` - -After running `pnpm i`, you should be able to cd to the `examples/nextjs-clerk` and then run `pnpm exec cli` to run the `@trigger.dev/cli`. You won't need to keep doing `pnpm i` or anything to pickup changes from `packages/cli`. diff --git a/packages/cli/src/commands/createIntegration.ts b/packages/cli/src/commands/createIntegration.ts index 923226a55e8..f290673f5b1 100644 --- a/packages/cli/src/commands/createIntegration.ts +++ b/packages/cli/src/commands/createIntegration.ts @@ -215,7 +215,7 @@ export default defineConfig([ ); if (triggerMonorepoPath) { - logger.info(` 3. Write some test jobs in the examples/job-catalog`); + logger.info(` 3. Write some test jobs in the references/job-catalog`); } } @@ -499,7 +499,7 @@ async function updateJobCatalogWithNewIntegration( resolvedOptions: ResolvedCLIOptions ) { const packageName = getPackageName(resolvedOptions.packageName); - const jobCatalogPath = pathModule.join(monorepoPath, "examples", "job-catalog"); + const jobCatalogPath = pathModule.join(monorepoPath, "references", "job-catalog"); const jobCatalogSrcFolder = pathModule.join(jobCatalogPath, "src"); const integrationFile = `export {}`; diff --git a/packages/testing/README.md b/packages/testing/README.md index f1b8e8cb7d7..f3b834d6bde 100644 --- a/packages/testing/README.md +++ b/packages/testing/README.md @@ -31,52 +31,52 @@ const testJob = createJobTester(vi); ```js const jobToTest = client.defineJob({ - id: "test-job", - name: "Test Job", - version: "0.1.0", - trigger: eventTrigger({ - name: "test.trigger", - }), - integrations: { - dummy, + id: "test-job", + name: "Test Job", + version: "0.1.0", + trigger: eventTrigger({ + name: "test.trigger", + }), + integrations: { + dummy, + }, + run: async (payload, io, ctx) => { + return await io.dummy.doSomething("test-task", { + foo: payload.foo, + }); + }, +}); + +const testRun = await testJob(jobToTest, { + payload: { + foo: "bar", + }, + tasks: { + "test-task": { + bar: "baz", }, - run: async (payload, io, ctx) => { - return await io.dummy.doSomething("test-task", { - foo: payload.foo, - }); - }, - }); - - const testRun = await testJob(jobToTest, { - payload: { - foo: "bar", - }, - tasks: { - "test-task": { - bar: "baz", - }, - }, - }); + }, +}); - // job run was successful - expect(testRun).toHaveSucceeded(); +// job run was successful +expect(testRun).toHaveSucceeded(); - // task was called exactly once - expect(testRun.tasks["test-task"]).toHaveBeenCalledOnce(); +// task was called exactly once +expect(testRun.tasks["test-task"]).toHaveBeenCalledOnce(); - // task was called with correct params - expect(testRun.tasks["test-task"]).toHaveBeenCalledWith({ foo: "bar" }); +// task was called with correct params +expect(testRun.tasks["test-task"]).toHaveBeenCalledWith({ foo: "bar" }); - // mocked task output was correctly returned - expect(testRun.tasks["test-task"]).toHaveReturnedWith({ bar: "baz" }); +// mocked task output was correctly returned +expect(testRun.tasks["test-task"]).toHaveReturnedWith({ bar: "baz" }); - // job run has expected output - expect(testRun.output).toEqual({ bar: "baz" }); +// job run has expected output +expect(testRun.output).toEqual({ bar: "baz" }); ``` ## More information -See the official [Trigger.dev Unit Testing Example](https://github.com/triggerdotdev/trigger.dev/examples/unit-testing/) for a working setup with Vitest. +See the official [Trigger.dev Unit Testing Reference](https://github.com/triggerdotdev/trigger.dev/references/unit-testing/) for a working setup with Vitest. ## License diff --git a/playwright.config.ts b/playwright.config.ts index ba5d54f6b13..716756236fe 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -57,7 +57,7 @@ export default defineConfig({ reuseExistingServer: !process.env.CI, }, { - command: "pnpm run --filter @examples/nextjs-test dev", + command: "pnpm run --filter @references/nextjs-test dev", url: "http://localhost:3000", reuseExistingServer: !process.env.CI, }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea54663c99e..64fb030a27f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -364,567 +364,244 @@ importers: docs: specifiers: {} - examples/astro-example: + integrations/airtable: specifiers: - '@astrojs/node': ^6.0.0 - '@trigger.dev/astro': workspace:* - '@trigger.dev/cli': workspace:* - '@trigger.dev/sdk': workspace:* - astro: ^3.0.12 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': 16.x + airtable: ^0.12.1 + rimraf: ^3.0.2 + tsup: 7.1.x + typescript: 4.9.4 + zod: 3.21.4 dependencies: - '@astrojs/node': 6.0.0_astro@3.0.13 - '@trigger.dev/astro': link:../../packages/astro + '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - astro: 3.0.13 + airtable: 0.12.1 + zod: 3.21.4 devDependencies: - '@trigger.dev/cli': link:../../packages/cli + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 16.18.11 + rimraf: 3.0.2 + tsup: 7.1.0_typescript@4.9.4 + typescript: 4.9.4 - examples/job-catalog: + integrations/github: specifiers: - '@trigger.dev/airtable': workspace:* - '@trigger.dev/cli': workspace:* - '@trigger.dev/express': workspace:* - '@trigger.dev/github': workspace:* - '@trigger.dev/openai': workspace:* - '@trigger.dev/plain': workspace:* - '@trigger.dev/resend': workspace:* - '@trigger.dev/sdk': workspace:* - '@trigger.dev/sendgrid': workspace:* - '@trigger.dev/slack': workspace:* - '@trigger.dev/stripe': workspace:* - '@trigger.dev/supabase': workspace:* + '@octokit/request': ^6.2.5 + '@octokit/request-error': ^4.0.1 + '@octokit/types': ^9.2.3 + '@octokit/webhooks': ^10.4.0 + '@octokit/webhooks-types': ^6.10.0 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* - '@trigger.dev/typeform': workspace:* - '@types/node': 20.4.2 - concurrently: ^8.2.0 - dotenv: ^16.3.1 - nodemon: ^3.0.1 - ts-node: ^10.9.1 - tsconfig-paths: ^3.14.1 - typescript: 5.1.6 + '@types/node': '18' + octokit: ^2.0.14 + rimraf: ^3.0.2 + tsup: ^6.5.0 zod: 3.21.4 dependencies: - '@trigger.dev/airtable': link:../../integrations/airtable - '@trigger.dev/express': link:../../packages/express - '@trigger.dev/github': link:../../integrations/github - '@trigger.dev/openai': link:../../integrations/openai - '@trigger.dev/plain': link:../../integrations/plain - '@trigger.dev/resend': link:../../integrations/resend + '@octokit/request': 6.2.5 + '@octokit/request-error': 4.0.1 + '@octokit/webhooks': 10.5.1 + '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@trigger.dev/sendgrid': link:../../integrations/sendgrid - '@trigger.dev/slack': link:../../integrations/slack - '@trigger.dev/stripe': link:../../integrations/stripe - '@trigger.dev/supabase': link:../../integrations/supabase - '@trigger.dev/typeform': link:../../integrations/typeform - '@types/node': 20.4.2 - typescript: 5.1.6 + octokit: 2.0.14 zod: 3.21.4 devDependencies: - '@trigger.dev/cli': link:../../packages/cli + '@octokit/types': 9.2.3 + '@octokit/webhooks-types': 6.10.0 '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - concurrently: 8.2.0 - dotenv: 16.3.1 - nodemon: 3.0.1 - ts-node: 10.9.1_xj5cs2fmhcigm4w5bhhtewqeja - tsconfig-paths: 3.14.1 + '@types/node': 18.14.0 + rimraf: 3.0.2 + tsup: 6.6.3 - examples/jobs-starter: + integrations/openai: specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/nextjs': workspace:* - '@trigger.dev/sdk': workspace:* - '@types/node': 20.4.2 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - autoprefixer: 10.4.14 - concurrently: ^8.2.0 - eslint: 8.45.0 - eslint-config-next: 13.4.10 - next: 13.4.10 - postcss: 8.4.26 - react: ^18.2.0 - react-dom: ^18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': '18' + openai: ^4.2.0 + rimraf: ^3.0.2 + tsup: ^6.5.0 dependencies: - '@trigger.dev/nextjs': link:../../packages/nextjs + '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@types/node': 20.4.2 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - autoprefixer: 10.4.14_postcss@8.4.26 - eslint: 8.45.0 - eslint-config-next: 13.4.10_ko3fmmbeyij36muomfgt2u76xu - next: 13.4.10_biqbaboplfbrettd7655fr4n2y - postcss: 8.4.26 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 + openai: 4.2.0 devDependencies: - '@trigger.dev/cli': link:../../packages/cli - concurrently: 8.2.0 + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 18.15.13 + rimraf: 3.0.2 + tsup: 6.6.3 - examples/nextjs-12: + integrations/plain: specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/nextjs': workspace:* - '@trigger.dev/sdk': workspace:* - eslint: 8.44.0 - eslint-config-next: 12.3.4 - next: 12.3.4 - react: ^18.2.0 - react-dom: ^18.2.0 + '@team-plain/typescript-sdk': ^2.7.0 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': '18' + rimraf: ^3.0.2 + tsup: ^6.5.0 dependencies: - '@trigger.dev/nextjs': link:../../packages/nextjs + '@team-plain/typescript-sdk': 2.7.0 + '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - next: 12.3.4_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 devDependencies: - '@trigger.dev/cli': link:../../packages/cli - eslint: 8.44.0 - eslint-config-next: 12.3.4_eslint@8.44.0 + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 18.15.13 + rimraf: 3.0.2 + tsup: 6.6.3 - examples/nextjs-example: + integrations/resend: specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/eslint-plugin': workspace:* - '@trigger.dev/github': workspace:* - '@trigger.dev/nextjs': workspace:* - '@trigger.dev/openai': workspace:* - '@trigger.dev/plain': workspace:* - '@trigger.dev/react': workspace:* - '@trigger.dev/resend': workspace:* - '@trigger.dev/sdk': workspace:* - '@trigger.dev/sendgrid': workspace:* - '@trigger.dev/slack': workspace:* - '@trigger.dev/stripe': workspace:* - '@trigger.dev/supabase': workspace:* - '@trigger.dev/typeform': workspace:* + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': '18' + resend: ^1.0.0 + rimraf: ^3.0.2 + tsup: ^6.5.0 + dependencies: + '@trigger.dev/integration-kit': link:../../packages/integration-kit + '@trigger.dev/sdk': link:../../packages/trigger-sdk + resend: 1.0.0 + devDependencies: + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig '@types/node': 18.15.13 - '@types/node-fetch': 2.6.x - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - eslint: 8.42.0 - eslint-config-next: 13.4.6 - msw: ^0.47.0 - next: 13.3.1 - node-fetch: 2.6.x - react: ^18.2.0 - react-dom: ^18.2.0 - react-query: ^3.39.3 - ts-loader: ^9.4.2 - typescript: 5.0.4 + rimraf: 3.0.2 + tsup: 6.6.3 + + integrations/sendgrid: + specifiers: + '@sendgrid/mail': ^7.7.0 + '@trigger.dev/integration-kit': workspace:^2.1.3 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': 16.x + rimraf: ^3.0.2 + tsup: 7.1.x + typescript: 4.9.4 + dependencies: + '@sendgrid/mail': 7.7.0 + '@trigger.dev/integration-kit': link:../../packages/integration-kit + '@trigger.dev/sdk': link:../../packages/trigger-sdk + devDependencies: + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 16.18.11 + rimraf: 3.0.2 + tsup: 7.1.0_typescript@4.9.4 + typescript: 4.9.4 + + integrations/slack: + specifiers: + '@slack/web-api': ^6.8.1 + '@trigger.dev/sdk': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/node': '18' + rimraf: ^3.0.2 + tsup: ^6.5.0 zod: 3.21.4 dependencies: - '@trigger.dev/eslint-plugin': link:../../packages/eslint-plugin - '@trigger.dev/github': link:../../integrations/github - '@trigger.dev/nextjs': link:../../packages/nextjs - '@trigger.dev/openai': link:../../integrations/openai - '@trigger.dev/plain': link:../../integrations/plain - '@trigger.dev/react': link:../../packages/react - '@trigger.dev/resend': link:../../integrations/resend + '@slack/web-api': 6.8.1 '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@trigger.dev/sendgrid': link:../../integrations/sendgrid - '@trigger.dev/slack': link:../../integrations/slack - '@trigger.dev/stripe': link:../../integrations/stripe - '@trigger.dev/supabase': link:../../integrations/supabase - '@trigger.dev/typeform': link:../../integrations/typeform - '@types/node': 18.15.13 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - next: 13.3.1_biqbaboplfbrettd7655fr4n2y - node-fetch: 2.6.11 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-query: 3.39.3_biqbaboplfbrettd7655fr4n2y - typescript: 5.0.4 zod: 3.21.4 devDependencies: - '@trigger.dev/cli': link:../../packages/cli - '@types/node-fetch': 2.6.2 - eslint: 8.42.0 - eslint-config-next: 13.4.6_binxsscxvozjxebftqdoazsxm4 - msw: 0.47.4_typescript@5.0.4 - ts-loader: 9.4.2_typescript@5.0.4 + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 18.15.13 + rimraf: 3.0.2 + tsup: 6.6.3 - examples/nextjs-test: - specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/nextjs': ^1.0.0-next.8 - '@trigger.dev/sdk': ^2.0.0-next.22 - concurrently: ^8.2.0 - eslint: 8.42.0 - eslint-config-next: 13.4.6 - next: 13.4.12 - react: 18.2.0 - react-dom: 18.2.0 - wait-on: ^7.0.1 - dependencies: - '@trigger.dev/nextjs': 1.0.0_fy3ffmrhk4zoekjz4cwhclpq64 - '@trigger.dev/sdk': 2.0.7 - next: 13.4.12_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - devDependencies: - '@trigger.dev/cli': link:../../packages/cli - concurrently: 8.2.0 - eslint: 8.42.0 - eslint-config-next: 13.4.6_eslint@8.42.0 - wait-on: 7.0.1 - - examples/package-tester: - specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/core': workspace:* - '@trigger.dev/github': workspace:* - '@trigger.dev/nextjs': workspace:* - '@trigger.dev/openai': workspace:* - '@trigger.dev/plain': workspace:* - '@trigger.dev/react': workspace:* - '@trigger.dev/resend': workspace:* - '@trigger.dev/sdk': workspace:* - '@trigger.dev/slack': workspace:* - '@trigger.dev/stripe': workspace:* - '@trigger.dev/supabase': workspace:* - '@trigger.dev/typeform': workspace:* - '@types/node': 20.4.5 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - autoprefixer: 10.4.14 - concurrently: ^8.2.0 - eslint: 8.45.0 - eslint-config-next: 13.4.12 - next: 13.4.12 - postcss: 8.4.27 - react: 18.2.0 - react-dom: 18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 - dependencies: - '@trigger.dev/core': link:../../packages/core - '@trigger.dev/github': link:../../integrations/github - '@trigger.dev/nextjs': link:../../packages/nextjs - '@trigger.dev/openai': link:../../integrations/openai - '@trigger.dev/plain': link:../../integrations/plain - '@trigger.dev/react': link:../../packages/react - '@trigger.dev/resend': link:../../integrations/resend - '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@trigger.dev/slack': link:../../integrations/slack - '@trigger.dev/stripe': link:../../integrations/stripe - '@trigger.dev/supabase': link:../../integrations/supabase - '@trigger.dev/typeform': link:../../integrations/typeform - autoprefixer: 10.4.14_postcss@8.4.27 - eslint: 8.45.0 - eslint-config-next: 13.4.12_ko3fmmbeyij36muomfgt2u76xu - next: 13.4.12_biqbaboplfbrettd7655fr4n2y - postcss: 8.4.27 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 - devDependencies: - '@trigger.dev/cli': link:../../packages/cli - '@types/node': 20.4.5 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - concurrently: 8.2.0 - - examples/remix-example: - specifiers: - '@remix-run/css-bundle': ^1.19.3 - '@remix-run/dev': ^1.19.3 - '@remix-run/eslint-config': ^1.19.3 - '@remix-run/node': ^1.19.3 - '@remix-run/react': ^1.19.3 - '@remix-run/serve': ^1.19.3 - '@trigger.dev/remix': workspace:* - '@trigger.dev/sdk': workspace:* - '@types/react': ^18.0.35 - '@types/react-dom': ^18.0.11 - eslint: ^8.38.0 - isbot: ^3.6.8 - react: ^18.2.0 - react-dom: ^18.2.0 - typescript: ^4.8.4 - dependencies: - '@remix-run/css-bundle': 1.19.3 - '@remix-run/node': 1.19.3 - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y - '@remix-run/serve': 1.19.3 - '@trigger.dev/remix': link:../../packages/remix - '@trigger.dev/sdk': link:../../packages/trigger-sdk - isbot: 3.6.13 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - devDependencies: - '@remix-run/dev': 1.19.3_@remix-run+serve@1.19.3 - '@remix-run/eslint-config': 1.19.3_iyrjzpeh7xaqnslyy6ezqi7i5u - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - eslint: 8.45.0 - typescript: 4.9.5 - - examples/unit-testing: - specifiers: - '@trigger.dev/sdk': workspace:* - '@trigger.dev/stripe': workspace:* - '@trigger.dev/testing': workspace:* - '@trigger.dev/tsconfig': workspace:* - tsconfig-paths: ^3.14.1 - typescript: ^5.2.2 - vitest: ^0.34.3 - zod: 3.21.4 - dependencies: - '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@trigger.dev/stripe': link:../../integrations/stripe - '@trigger.dev/testing': link:../../packages/testing - devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - tsconfig-paths: 3.14.1 - typescript: 5.2.2 - vitest: 0.34.4 - zod: 3.21.4 - - integrations/airtable: + integrations/stripe: specifiers: '@trigger.dev/integration-kit': workspace:^2.1.3 '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* '@types/node': 16.x - airtable: ^0.12.1 rimraf: ^3.0.2 + stripe: ^12.14.0 + stripe-event-types: ^2.4.0 tsup: 7.1.x typescript: 4.9.4 zod: 3.21.4 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - airtable: 0.12.1 + stripe: 12.14.0 zod: 3.21.4 devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig '@types/node': 16.18.11 rimraf: 3.0.2 + stripe-event-types: 2.4.0_stripe@12.14.0 tsup: 7.1.0_typescript@4.9.4 typescript: 4.9.4 - integrations/github: + integrations/supabase: specifiers: - '@octokit/request': ^6.2.5 - '@octokit/request-error': ^4.0.1 - '@octokit/types': ^9.2.3 - '@octokit/webhooks': ^10.4.0 - '@octokit/webhooks-types': ^6.10.0 + '@supabase/supabase-js': ^2.26.0 '@trigger.dev/integration-kit': workspace:^2.1.3 '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* - '@types/node': '18' - octokit: ^2.0.14 + '@types/node': 18.x rimraf: ^3.0.2 - tsup: ^6.5.0 + supabase-management-js: ^0.1.4 + tsup: 7.1.x + typescript: 4.9.4 zod: 3.21.4 dependencies: - '@octokit/request': 6.2.5 - '@octokit/request-error': 4.0.1 - '@octokit/webhooks': 10.5.1 + '@supabase/supabase-js': 2.31.0 '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk - octokit: 2.0.14 + supabase-management-js: 0.1.4 zod: 3.21.4 - devDependencies: - '@octokit/types': 9.2.3 - '@octokit/webhooks-types': 6.10.0 - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/node': 18.14.0 - rimraf: 3.0.2 - tsup: 6.6.3 - - integrations/openai: - specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* - '@types/node': '18' - openai: ^4.2.0 - rimraf: ^3.0.2 - tsup: ^6.5.0 - dependencies: - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - openai: 4.2.0 - devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/node': 18.15.13 - rimraf: 3.0.2 - tsup: 6.6.3 - - integrations/plain: - specifiers: - '@team-plain/typescript-sdk': ^2.7.0 - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* - '@types/node': '18' - rimraf: ^3.0.2 - tsup: ^6.5.0 - dependencies: - '@team-plain/typescript-sdk': 2.7.0 - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/node': 18.15.13 - rimraf: 3.0.2 - tsup: 6.6.3 - - integrations/resend: - specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* - '@types/node': '18' - resend: ^1.0.0 - rimraf: ^3.0.2 - tsup: ^6.5.0 - dependencies: - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - resend: 1.0.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig '@types/node': 18.15.13 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 7.1.0_typescript@4.9.4 + typescript: 4.9.4 - integrations/sendgrid: + integrations/typeform: specifiers: - '@sendgrid/mail': ^7.7.0 '@trigger.dev/integration-kit': workspace:^2.1.3 '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* + '@typeform/api-client': ^1.8.0 '@types/node': 16.x rimraf: ^3.0.2 tsup: 7.1.x typescript: 4.9.4 + zod: 3.21.4 dependencies: - '@sendgrid/mail': 7.7.0 '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk + '@typeform/api-client': 1.8.0 + zod: 3.21.4 devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig '@types/node': 16.18.11 rimraf: 3.0.2 tsup: 7.1.0_typescript@4.9.4 typescript: 4.9.4 - integrations/slack: + packages/astro: specifiers: - '@slack/web-api': ^6.8.1 - '@trigger.dev/sdk': workspace:^2.1.3 '@trigger.dev/tsconfig': workspace:* - '@types/node': '18' + '@types/debug': ^4.1.7 + '@types/ws': ^8.5.3 + astro: ^3.0.12 + debug: ^4.3.4 rimraf: ^3.0.2 tsup: ^6.5.0 - zod: 3.21.4 + tsx: ^3.12.1 + typescript: ^4.8.4 dependencies: - '@slack/web-api': 6.8.1 - '@trigger.dev/sdk': link:../../packages/trigger-sdk - zod: 3.21.4 + debug: 4.3.4 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/node': 18.15.13 - rimraf: 3.0.2 - tsup: 6.6.3 - - integrations/stripe: - specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@types/node': 16.x - rimraf: ^3.0.2 - stripe: ^12.14.0 - stripe-event-types: ^2.4.0 - tsup: 7.1.x - typescript: 4.9.4 - zod: 3.21.4 - dependencies: - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - stripe: 12.14.0 - zod: 3.21.4 - devDependencies: - '@types/node': 16.18.11 - rimraf: 3.0.2 - stripe-event-types: 2.4.0_stripe@12.14.0 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 - - integrations/supabase: - specifiers: - '@supabase/supabase-js': ^2.26.0 - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* - '@types/node': 18.x - rimraf: ^3.0.2 - supabase-management-js: ^0.1.4 - tsup: 7.1.x - typescript: 4.9.4 - zod: 3.21.4 - dependencies: - '@supabase/supabase-js': 2.31.0 - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - supabase-management-js: 0.1.4 - zod: 3.21.4 - devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/node': 18.15.13 - rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 - - integrations/typeform: - specifiers: - '@trigger.dev/integration-kit': workspace:^2.1.3 - '@trigger.dev/sdk': workspace:^2.1.3 - '@typeform/api-client': ^1.8.0 - '@types/node': 16.x - rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 - zod: 3.21.4 - dependencies: - '@trigger.dev/integration-kit': link:../../packages/integration-kit - '@trigger.dev/sdk': link:../../packages/trigger-sdk - '@typeform/api-client': 1.8.0 - zod: 3.21.4 - devDependencies: - '@types/node': 16.18.11 - rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 - - packages/astro: - specifiers: - '@trigger.dev/tsconfig': workspace:* - '@types/debug': ^4.1.7 - '@types/ws': ^8.5.3 - astro: ^3.0.12 - debug: ^4.3.4 - rimraf: ^3.0.2 - tsup: ^6.5.0 - tsx: ^3.12.1 - typescript: ^4.8.4 - dependencies: - debug: 4.3.4 - devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/debug': 4.1.7 - '@types/ws': 8.5.4 - astro: 3.0.13 + '@types/debug': 4.1.7 + '@types/ws': 8.5.4 + astro: 3.0.13 rimraf: 3.0.2 tsup: 6.6.3_typescript@4.9.5 tsx: 3.12.2 @@ -1208,168 +885,429 @@ importers: debug: 4.3.4 zod: 3.21.4 devDependencies: - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/debug': 4.1.7 + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/debug': 4.1.7 + '@types/react': 18.2.17 + '@types/ws': 8.5.4 + esbuild-plugin-file-path-extensions: 1.0.0 + react: 18.2.0 + rimraf: 3.0.2 + tsup: 7.1.0_typescript@4.9.5 + tsx: 3.12.2 + typescript: 4.9.5 + + packages/remix: + specifiers: + '@remix-run/node': ^1.19.3 + '@trigger.dev/tsconfig': workspace:* + '@types/debug': ^4.1.7 + '@types/ws': ^8.5.3 + debug: ^4.3.4 + rimraf: ^3.0.2 + tsup: ^6.5.0 + tsx: ^3.12.1 + typescript: ^4.8.4 + dependencies: + debug: 4.3.4 + devDependencies: + '@remix-run/node': 1.19.3 + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/debug': 4.1.7 + '@types/ws': 8.5.4 + rimraf: 3.0.2 + tsup: 6.6.3_typescript@4.9.5 + tsx: 3.12.2 + typescript: 4.9.5 + + packages/testing: + specifiers: + '@trigger.dev/core': workspace:* + '@trigger.dev/sdk': workspace:* + '@trigger.dev/stripe': workspace:* + '@trigger.dev/tsconfig': workspace:* + tsup: ^7.2.0 + typescript: ^5.2.2 + vitest: ^0.34.3 + zod: 3.21.4 + dependencies: + '@trigger.dev/core': link:../core + '@trigger.dev/sdk': link:../trigger-sdk + vitest: 0.34.4 + zod: 3.21.4 + devDependencies: + '@trigger.dev/stripe': link:../../integrations/stripe + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + tsup: 7.2.0_typescript@5.2.2 + typescript: 5.2.2 + + packages/trigger-sdk: + specifiers: + '@trigger.dev/core': workspace:^2.1.3 + '@trigger.dev/tsconfig': workspace:* + '@types/debug': ^4.1.7 + '@types/node': '18' + '@types/node-fetch': 2.6.x + '@types/slug': ^5.0.3 + '@types/uuid': ^9.0.0 + '@types/ws': ^8.5.3 + chalk: ^5.2.0 + cronstrue: ^2.21.0 + debug: ^4.3.4 + encoding: ^0.1.13 + evt: ^2.4.13 + get-caller-file: ^2.0.5 + git-remote-origin-url: ^4.0.0 + git-repo-info: ^2.1.1 + node-fetch: 2.6.x + rimraf: ^3.0.2 + slug: ^6.0.0 + terminal-link: ^3.0.0 + tsup: ^6.5.0 + tsx: ^3.12.1 + typescript: ^4.8.4 + ulid: ^2.3.0 + uuid: ^9.0.0 + ws: ^8.11.0 + zod: 3.21.4 + zod-error: 1.5.0 + dependencies: + '@trigger.dev/core': link:../core + chalk: 5.2.0 + cronstrue: 2.21.0 + debug: 4.3.4 + evt: 2.4.13 + get-caller-file: 2.0.5 + git-remote-origin-url: 4.0.0 + git-repo-info: 2.1.1 + node-fetch: 2.6.12_encoding@0.1.13 + slug: 6.1.0 + terminal-link: 3.0.0 + ulid: 2.3.0 + uuid: 9.0.0 + ws: 8.12.0 + zod: 3.21.4 + zod-error: 1.5.0 + devDependencies: + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/debug': 4.1.7 + '@types/node': 18.14.0 + '@types/node-fetch': 2.6.4 + '@types/slug': 5.0.3 + '@types/uuid': 9.0.0 + '@types/ws': 8.5.4 + encoding: 0.1.13 + rimraf: 3.0.2 + tsup: 6.5.0_typescript@4.9.5 + tsx: 3.12.2 + typescript: 4.9.5 + + perf: + specifiers: + '@trigger.dev/cli': workspace:* + '@trigger.dev/express': workspace:* + '@trigger.dev/github': workspace:* + '@trigger.dev/openai': workspace:* + '@trigger.dev/plain': workspace:* + '@trigger.dev/resend': workspace:* + '@trigger.dev/sdk': workspace:* + '@trigger.dev/sendgrid': workspace:* + '@trigger.dev/slack': workspace:* + '@trigger.dev/stripe': workspace:* + '@trigger.dev/supabase': workspace:* + '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/typeform': workspace:* + '@types/node': ^20.5.0 + concurrently: ^8.2.0 + dotenv: ^16.3.1 + nodemon: ^3.0.1 + ts-node: ^10.9.1 + tsconfig-paths: ^3.14.1 + typescript: ^5.1.6 + zod: 3.21.4 + dependencies: + '@trigger.dev/express': link:../packages/express + '@trigger.dev/github': link:../integrations/github + '@trigger.dev/openai': link:../integrations/openai + '@trigger.dev/plain': link:../integrations/plain + '@trigger.dev/resend': link:../integrations/resend + '@trigger.dev/sdk': link:../packages/trigger-sdk + '@trigger.dev/sendgrid': link:../integrations/sendgrid + '@trigger.dev/slack': link:../integrations/slack + '@trigger.dev/stripe': link:../integrations/stripe + '@trigger.dev/supabase': link:../integrations/supabase + '@trigger.dev/typeform': link:../integrations/typeform + zod: 3.21.4 + devDependencies: + '@trigger.dev/cli': link:../packages/cli + '@trigger.dev/tsconfig': link:../config-packages/tsconfig + '@types/node': 20.5.0 + concurrently: 8.2.0 + dotenv: 16.3.1 + nodemon: 3.0.1 + ts-node: 10.9.1_jch25vbq34sbabk3unb5q5rkqi + tsconfig-paths: 3.14.1 + typescript: 5.1.6 + + references/astro-referece: + specifiers: + '@astrojs/node': ^6.0.0 + '@trigger.dev/astro': workspace:* + '@trigger.dev/cli': workspace:* + '@trigger.dev/sdk': workspace:* + astro: ^3.0.12 + dependencies: + '@astrojs/node': 6.0.0_astro@3.0.13 + '@trigger.dev/astro': link:../../packages/astro + '@trigger.dev/sdk': link:../../packages/trigger-sdk + astro: 3.0.13 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + + references/job-catalog: + specifiers: + '@trigger.dev/airtable': workspace:* + '@trigger.dev/cli': workspace:* + '@trigger.dev/express': workspace:* + '@trigger.dev/github': workspace:* + '@trigger.dev/openai': workspace:* + '@trigger.dev/plain': workspace:* + '@trigger.dev/resend': workspace:* + '@trigger.dev/sdk': workspace:* + '@trigger.dev/sendgrid': workspace:* + '@trigger.dev/slack': workspace:* + '@trigger.dev/stripe': workspace:* + '@trigger.dev/supabase': workspace:* + '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/typeform': workspace:* + '@types/node': 20.4.2 + concurrently: ^8.2.0 + dotenv: ^16.3.1 + nodemon: ^3.0.1 + ts-node: ^10.9.1 + tsconfig-paths: ^3.14.1 + typescript: 5.1.6 + zod: 3.21.4 + dependencies: + '@trigger.dev/airtable': link:../../integrations/airtable + '@trigger.dev/express': link:../../packages/express + '@trigger.dev/github': link:../../integrations/github + '@trigger.dev/openai': link:../../integrations/openai + '@trigger.dev/plain': link:../../integrations/plain + '@trigger.dev/resend': link:../../integrations/resend + '@trigger.dev/sdk': link:../../packages/trigger-sdk + '@trigger.dev/sendgrid': link:../../integrations/sendgrid + '@trigger.dev/slack': link:../../integrations/slack + '@trigger.dev/stripe': link:../../integrations/stripe + '@trigger.dev/supabase': link:../../integrations/supabase + '@trigger.dev/typeform': link:../../integrations/typeform + '@types/node': 20.4.2 + typescript: 5.1.6 + zod: 3.21.4 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + concurrently: 8.2.0 + dotenv: 16.3.1 + nodemon: 3.0.1 + ts-node: 10.9.1_xj5cs2fmhcigm4w5bhhtewqeja + tsconfig-paths: 3.14.1 + + references/nextjs-reference: + specifiers: + '@trigger.dev/cli': workspace:* + '@trigger.dev/eslint-plugin': workspace:* + '@trigger.dev/github': workspace:* + '@trigger.dev/nextjs': workspace:* + '@trigger.dev/openai': workspace:* + '@trigger.dev/plain': workspace:* + '@trigger.dev/react': workspace:* + '@trigger.dev/resend': workspace:* + '@trigger.dev/sdk': workspace:* + '@trigger.dev/sendgrid': workspace:* + '@trigger.dev/slack': workspace:* + '@trigger.dev/stripe': workspace:* + '@trigger.dev/supabase': workspace:* + '@trigger.dev/typeform': workspace:* + '@types/node': 18.15.13 + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + eslint: 8.42.0 + eslint-config-next: 13.4.6 + msw: ^0.47.0 + next: 13.3.1 + react: ^18.2.0 + react-dom: ^18.2.0 + react-query: ^3.39.3 + ts-loader: ^9.4.2 + typescript: 5.0.4 + zod: 3.21.4 + dependencies: + '@trigger.dev/eslint-plugin': link:../../packages/eslint-plugin + '@trigger.dev/github': link:../../integrations/github + '@trigger.dev/nextjs': link:../../packages/nextjs + '@trigger.dev/openai': link:../../integrations/openai + '@trigger.dev/plain': link:../../integrations/plain + '@trigger.dev/react': link:../../packages/react + '@trigger.dev/resend': link:../../integrations/resend + '@trigger.dev/sdk': link:../../packages/trigger-sdk + '@trigger.dev/sendgrid': link:../../integrations/sendgrid + '@trigger.dev/slack': link:../../integrations/slack + '@trigger.dev/stripe': link:../../integrations/stripe + '@trigger.dev/supabase': link:../../integrations/supabase + '@trigger.dev/typeform': link:../../integrations/typeform + '@types/node': 18.15.13 + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + next: 13.3.1_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-query: 3.39.3_biqbaboplfbrettd7655fr4n2y + typescript: 5.0.4 + zod: 3.21.4 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + eslint: 8.42.0 + eslint-config-next: 13.4.6_binxsscxvozjxebftqdoazsxm4 + msw: 0.47.4_typescript@5.0.4 + ts-loader: 9.4.2_typescript@5.0.4 + + references/nextjs-test: + specifiers: + '@trigger.dev/cli': workspace:* + '@trigger.dev/nextjs': ^1.0.0-next.8 + '@trigger.dev/sdk': ^2.0.0-next.22 + concurrently: ^8.2.0 + eslint: 8.42.0 + eslint-config-next: 13.4.6 + next: 13.4.12 + react: 18.2.0 + react-dom: 18.2.0 + wait-on: ^7.0.1 + dependencies: + '@trigger.dev/nextjs': 1.0.0_fy3ffmrhk4zoekjz4cwhclpq64 + '@trigger.dev/sdk': 2.0.7 + next: 13.4.12_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + concurrently: 8.2.0 + eslint: 8.42.0 + eslint-config-next: 13.4.6_eslint@8.42.0 + wait-on: 7.0.1 + + references/package-tester: + specifiers: + '@trigger.dev/cli': workspace:* + '@trigger.dev/core': workspace:* + '@trigger.dev/github': workspace:* + '@trigger.dev/nextjs': workspace:* + '@trigger.dev/openai': workspace:* + '@trigger.dev/plain': workspace:* + '@trigger.dev/react': workspace:* + '@trigger.dev/resend': workspace:* + '@trigger.dev/sdk': workspace:* + '@trigger.dev/slack': workspace:* + '@trigger.dev/stripe': workspace:* + '@trigger.dev/supabase': workspace:* + '@trigger.dev/typeform': workspace:* + '@types/node': 20.4.5 + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + autoprefixer: 10.4.14 + concurrently: ^8.2.0 + eslint: 8.45.0 + eslint-config-next: 13.4.12 + next: 13.4.12 + postcss: 8.4.27 + react: 18.2.0 + react-dom: 18.2.0 + tailwindcss: 3.3.3 + typescript: 5.1.6 + dependencies: + '@trigger.dev/core': link:../../packages/core + '@trigger.dev/github': link:../../integrations/github + '@trigger.dev/nextjs': link:../../packages/nextjs + '@trigger.dev/openai': link:../../integrations/openai + '@trigger.dev/plain': link:../../integrations/plain + '@trigger.dev/react': link:../../packages/react + '@trigger.dev/resend': link:../../integrations/resend + '@trigger.dev/sdk': link:../../packages/trigger-sdk + '@trigger.dev/slack': link:../../integrations/slack + '@trigger.dev/stripe': link:../../integrations/stripe + '@trigger.dev/supabase': link:../../integrations/supabase + '@trigger.dev/typeform': link:../../integrations/typeform + autoprefixer: 10.4.14_postcss@8.4.27 + eslint: 8.45.0 + eslint-config-next: 13.4.12_ko3fmmbeyij36muomfgt2u76xu + next: 13.4.12_biqbaboplfbrettd7655fr4n2y + postcss: 8.4.27 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + tailwindcss: 3.3.3 + typescript: 5.1.6 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + '@types/node': 20.4.5 '@types/react': 18.2.17 - '@types/ws': 8.5.4 - esbuild-plugin-file-path-extensions: 1.0.0 - react: 18.2.0 - rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.5 - tsx: 3.12.2 - typescript: 4.9.5 + '@types/react-dom': 18.2.7 + concurrently: 8.2.0 - packages/remix: + references/remix-reference: specifiers: + '@remix-run/css-bundle': ^1.19.3 + '@remix-run/dev': ^1.19.3 + '@remix-run/eslint-config': ^1.19.3 '@remix-run/node': ^1.19.3 - '@trigger.dev/tsconfig': workspace:* - '@types/debug': ^4.1.7 - '@types/ws': ^8.5.3 - debug: ^4.3.4 - rimraf: ^3.0.2 - tsup: ^6.5.0 - tsx: ^3.12.1 + '@remix-run/react': ^1.19.3 + '@remix-run/serve': ^1.19.3 + '@trigger.dev/remix': workspace:* + '@trigger.dev/sdk': workspace:* + '@types/react': ^18.0.35 + '@types/react-dom': ^18.0.11 + eslint: ^8.38.0 + isbot: ^3.6.8 + react: ^18.2.0 + react-dom: ^18.2.0 typescript: ^4.8.4 dependencies: - debug: 4.3.4 - devDependencies: + '@remix-run/css-bundle': 1.19.3 '@remix-run/node': 1.19.3 - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/debug': 4.1.7 - '@types/ws': 8.5.4 - rimraf: 3.0.2 - tsup: 6.6.3_typescript@4.9.5 - tsx: 3.12.2 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/serve': 1.19.3 + '@trigger.dev/remix': link:../../packages/remix + '@trigger.dev/sdk': link:../../packages/trigger-sdk + isbot: 3.6.13 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + devDependencies: + '@remix-run/dev': 1.19.3_@remix-run+serve@1.19.3 + '@remix-run/eslint-config': 1.19.3_iyrjzpeh7xaqnslyy6ezqi7i5u + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + eslint: 8.45.0 typescript: 4.9.5 - packages/testing: + references/unit-testing: specifiers: - '@trigger.dev/core': workspace:* '@trigger.dev/sdk': workspace:* '@trigger.dev/stripe': workspace:* + '@trigger.dev/testing': workspace:* '@trigger.dev/tsconfig': workspace:* - tsup: ^7.2.0 + tsconfig-paths: ^3.14.1 typescript: ^5.2.2 vitest: ^0.34.3 zod: 3.21.4 dependencies: - '@trigger.dev/core': link:../core - '@trigger.dev/sdk': link:../trigger-sdk - vitest: 0.34.4 - zod: 3.21.4 - devDependencies: + '@trigger.dev/sdk': link:../../packages/trigger-sdk '@trigger.dev/stripe': link:../../integrations/stripe - '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - tsup: 7.2.0_typescript@5.2.2 - typescript: 5.2.2 - - packages/trigger-sdk: - specifiers: - '@trigger.dev/core': workspace:^2.1.3 - '@trigger.dev/tsconfig': workspace:* - '@types/debug': ^4.1.7 - '@types/node': '18' - '@types/node-fetch': 2.6.x - '@types/slug': ^5.0.3 - '@types/uuid': ^9.0.0 - '@types/ws': ^8.5.3 - chalk: ^5.2.0 - cronstrue: ^2.21.0 - debug: ^4.3.4 - encoding: ^0.1.13 - evt: ^2.4.13 - get-caller-file: ^2.0.5 - git-remote-origin-url: ^4.0.0 - git-repo-info: ^2.1.1 - node-fetch: 2.6.x - rimraf: ^3.0.2 - slug: ^6.0.0 - terminal-link: ^3.0.0 - tsup: ^6.5.0 - tsx: ^3.12.1 - typescript: ^4.8.4 - ulid: ^2.3.0 - uuid: ^9.0.0 - ws: ^8.11.0 - zod: 3.21.4 - zod-error: 1.5.0 - dependencies: - '@trigger.dev/core': link:../core - chalk: 5.2.0 - cronstrue: 2.21.0 - debug: 4.3.4 - evt: 2.4.13 - get-caller-file: 2.0.5 - git-remote-origin-url: 4.0.0 - git-repo-info: 2.1.1 - node-fetch: 2.6.7_encoding@0.1.13 - slug: 6.1.0 - terminal-link: 3.0.0 - ulid: 2.3.0 - uuid: 9.0.0 - ws: 8.12.0 - zod: 3.21.4 - zod-error: 1.5.0 + '@trigger.dev/testing': link:../../packages/testing devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig - '@types/debug': 4.1.7 - '@types/node': 18.14.0 - '@types/node-fetch': 2.6.2 - '@types/slug': 5.0.3 - '@types/uuid': 9.0.0 - '@types/ws': 8.5.4 - encoding: 0.1.13 - rimraf: 3.0.2 - tsup: 6.5.0_typescript@4.9.5 - tsx: 3.12.2 - typescript: 4.9.5 - - perf: - specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/express': workspace:* - '@trigger.dev/github': workspace:* - '@trigger.dev/openai': workspace:* - '@trigger.dev/plain': workspace:* - '@trigger.dev/resend': workspace:* - '@trigger.dev/sdk': workspace:* - '@trigger.dev/sendgrid': workspace:* - '@trigger.dev/slack': workspace:* - '@trigger.dev/stripe': workspace:* - '@trigger.dev/supabase': workspace:* - '@trigger.dev/tsconfig': workspace:* - '@trigger.dev/typeform': workspace:* - '@types/node': ^20.5.0 - concurrently: ^8.2.0 - dotenv: ^16.3.1 - nodemon: ^3.0.1 - ts-node: ^10.9.1 - tsconfig-paths: ^3.14.1 - typescript: ^5.1.6 - zod: 3.21.4 - dependencies: - '@trigger.dev/express': link:../packages/express - '@trigger.dev/github': link:../integrations/github - '@trigger.dev/openai': link:../integrations/openai - '@trigger.dev/plain': link:../integrations/plain - '@trigger.dev/resend': link:../integrations/resend - '@trigger.dev/sdk': link:../packages/trigger-sdk - '@trigger.dev/sendgrid': link:../integrations/sendgrid - '@trigger.dev/slack': link:../integrations/slack - '@trigger.dev/stripe': link:../integrations/stripe - '@trigger.dev/supabase': link:../integrations/supabase - '@trigger.dev/typeform': link:../integrations/typeform - zod: 3.21.4 - devDependencies: - '@trigger.dev/cli': link:../packages/cli - '@trigger.dev/tsconfig': link:../config-packages/tsconfig - '@types/node': 20.5.0 - concurrently: 8.2.0 - dotenv: 16.3.1 - nodemon: 3.0.1 - ts-node: 10.9.1_jch25vbq34sbabk3unb5q5rkqi tsconfig-paths: 3.14.1 - typescript: 5.1.6 + typescript: 5.2.2 + vitest: 0.34.4 + zod: 3.21.4 packages: @@ -1554,14 +1492,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser/7.21.8_4kcy3ceav4hwu45tr763dq6rau: + /@babel/eslint-parser/7.21.8_26dsxalng3b37usmqamlicq2qm: resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.45.0 eslint-visitor-keys: 2.1.0 @@ -1650,6 +1588,20 @@ packages: semver: 6.3.1 dev: true + /@babel/helper-compilation-targets/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.17 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets/7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -1742,6 +1694,17 @@ packages: regexpu-core: 5.2.2 dev: true + /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.22.17: + resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.2.2 + dev: true + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12: resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: @@ -1774,6 +1737,22 @@ packages: - supports-color dev: true + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.22.17: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.4 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.21.5: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} @@ -1946,6 +1925,21 @@ packages: - supports-color dev: true + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-replace-supers/7.21.5: resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} engines: {node: '>=6.9.0'} @@ -2089,6 +2083,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} @@ -2101,16 +2105,28 @@ packages: '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.20.12 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.8: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.8: + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.8 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.8 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.17 dev: true /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: @@ -2143,6 +2159,21 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -2210,6 +2241,20 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.22.17: + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} @@ -2232,6 +2277,17 @@ packages: '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} @@ -2254,6 +2310,17 @@ packages: '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} @@ -2276,6 +2343,17 @@ packages: '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} @@ -2298,6 +2376,17 @@ packages: '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} @@ -2353,6 +2442,17 @@ packages: '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} @@ -2381,6 +2481,20 @@ packages: '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.17 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} @@ -2403,6 +2517,17 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.8 dev: true + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.17 + dev: true + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} @@ -2465,6 +2590,19 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} @@ -2495,6 +2633,21 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.22.17: + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} @@ -2517,6 +2670,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -2600,6 +2764,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.22.17: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -2618,6 +2792,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.22.17: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -2636,6 +2819,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.22.17: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-flow/7.18.6: resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} engines: {node: '>=6.9.0'} @@ -2675,6 +2867,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.22.17: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -2758,6 +2960,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.21.8: resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} engines: {node: '>=6.9.0'} @@ -2988,6 +3200,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.22.17: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -3058,6 +3280,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-arrow-functions/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} @@ -3086,6 +3318,20 @@ packages: - supports-color dev: true + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} @@ -3106,6 +3352,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} engines: {node: '>=6.9.0'} @@ -3126,6 +3382,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.22.17: + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} engines: {node: '>=6.9.0'} @@ -3166,24 +3432,55 @@ packages: - supports-color dev: true + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.22.17: + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-computed-properties/7.21.5_@babel+core@7.20.12: resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-computed-properties/7.21.5_@babel+core@7.21.8: + resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-computed-properties/7.21.5_@babel+core@7.21.8: + /@babel/plugin-transform-computed-properties/7.21.5_@babel+core@7.22.17: resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true @@ -3208,6 +3505,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-destructuring/7.21.3_@babel+core@7.22.17: + resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} @@ -3230,6 +3537,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} @@ -3250,6 +3568,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} @@ -3272,6 +3600,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-flow-strip-types/7.19.0: resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==} engines: {node: '>=6.9.0'} @@ -3313,6 +3652,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-for-of/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} @@ -3337,6 +3686,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} @@ -3357,6 +3718,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} @@ -3377,6 +3748,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12: resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} @@ -3399,6 +3780,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.22.17: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-module-transforms': 7.22.17_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-modules-commonjs/7.21.5_@babel+core@7.20.12: resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} engines: {node: '>=6.9.0'} @@ -3461,6 +3853,19 @@ packages: '@babel/helper-validator-identifier': 7.22.15 dev: true + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.22.17: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.22.17_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 + dev: true + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} @@ -3483,6 +3888,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-module-transforms': 7.22.17_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12: resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} @@ -3505,6 +3921,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.22.17: + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} @@ -3525,6 +3952,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} @@ -3551,6 +3988,19 @@ packages: - supports-color dev: true + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-parameters/7.21.3_@babel+core@7.20.12: resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} engines: {node: '>=6.9.0'} @@ -3571,6 +4021,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-parameters/7.21.3_@babel+core@7.22.17: + resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} @@ -3591,6 +4051,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-react-display-name/7.18.6: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} engines: {node: '>=6.9.0'} @@ -3610,6 +4080,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-react-jsx-development/7.18.6: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} @@ -3629,6 +4109,16 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.21.8 dev: true + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 + dev: true + /@babel/plugin-transform-react-jsx/7.20.7: resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} engines: {node: '>=6.9.0'} @@ -3670,6 +4160,20 @@ packages: '@babel/types': 7.20.7 dev: true + /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.22.17 + '@babel/types': 7.20.7 + dev: true + /@babel/plugin-transform-react-jsx/7.22.15: resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -3731,6 +4235,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-regenerator/7.21.5_@babel+core@7.20.12: resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} engines: {node: '>=6.9.0'} @@ -3753,6 +4268,17 @@ packages: regenerator-transform: 0.15.1 dev: true + /@babel/plugin-transform-regenerator/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.1 + dev: true + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} @@ -3773,6 +4299,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} @@ -3793,6 +4329,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} @@ -3815,6 +4361,17 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} @@ -3835,23 +4392,43 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.21.8 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.8: + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.22.17: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -3875,6 +4452,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.22.17: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.21.8: resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} engines: {node: '>=6.9.0'} @@ -3925,6 +4512,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-unicode-escapes/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} @@ -3947,6 +4544,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/preset-env/7.21.5_@babel+core@7.20.12: resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} engines: {node: '>=6.9.0'} @@ -4121,6 +4729,93 @@ packages: - supports-color dev: true + /@babel/preset-env/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.22.17 + '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.22.17 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.17 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.22.17 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.17 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.17 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.17 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.22.17 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.17 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.17 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.17 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.17 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.17 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.17 + '@babel/plugin-transform-arrow-functions': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.22.17 + '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.22.17 + '@babel/plugin-transform-computed-properties': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-destructuring': 7.21.3_@babel+core@7.22.17 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-for-of': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.22.17 + '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.22.17 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.22.17 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.22.17 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-regenerator': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.22.17 + '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.22.17 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.22.17 + '@babel/preset-modules': 0.1.5_@babel+core@7.22.17 + '@babel/types': 7.21.5 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.22.17 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.22.17 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.22.17 + core-js-compat: 3.27.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/preset-flow/7.18.6: resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} engines: {node: '>=6.9.0'} @@ -4170,6 +4865,19 @@ packages: esutils: 2.0.3 dev: true + /@babel/preset-modules/0.1.5_@babel+core@7.22.17: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.22.17 + '@babel/types': 7.22.17 + esutils: 2.0.3 + dev: true + /@babel/preset-react/7.18.6: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} @@ -4199,6 +4907,21 @@ packages: '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.21.8 dev: true + /@babel/preset-react/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.22.17 + '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.22.17 + dev: true + /@babel/preset-typescript/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} engines: {node: '>=6.9.0'} @@ -5900,16 +6623,6 @@ packages: eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.44.0: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.44.0 - eslint-visitor-keys: 3.4.2 - dev: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.45.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6273,14 +6986,14 @@ packages: '@jest/test-result': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.5.2 + '@types/node': 20.6.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.6.2_@types+node@20.5.2 + jest-config: 29.6.2_@types+node@20.6.0 jest-haste-map: 29.6.2 jest-message-util: 29.6.2 jest-regex-util: 29.4.3 @@ -6489,7 +7202,7 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.5.2 + '@types/node': 20.6.0 '@types/yargs': 17.0.19 chalk: 4.1.2 dev: true @@ -6702,33 +7415,13 @@ packages: tar-fs: 2.1.1 dev: true - /@next/env/12.3.4: - resolution: {integrity: sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A==} - dev: false - /@next/env/13.3.1: resolution: {integrity: sha512-EDtCoedIZC7JlUQ3uaQpSc4aVmyhbLHmQVALg7pFfQgOTjgSnn7mKtA0DiCMkYvvsx6aFb5octGMtWrOtGXW9A==} - /@next/env/13.4.10: - resolution: {integrity: sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==} - dev: false - /@next/env/13.4.12: resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/eslint-plugin-next/12.3.4: - resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} - dependencies: - glob: 7.1.7 - dev: true - - /@next/eslint-plugin-next/13.4.10: - resolution: {integrity: sha512-YJqyq6vk39JQfvaNtN83t/p5Jy45+bazRL+V4QI8FPd3FBqFYMEsULiwRLgSJMgFqkk4t4JbeZurz+gILEAFpA==} - dependencies: - glob: 7.1.7 - dev: false - /@next/eslint-plugin-next/13.4.12: resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} dependencies: @@ -6741,33 +7434,6 @@ packages: glob: 7.1.7 dev: true - /@next/swc-android-arm-eabi/12.3.4: - resolution: {integrity: sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64/12.3.4: - resolution: {integrity: sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64/12.3.4: - resolution: {integrity: sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-arm64/13.3.1: resolution: {integrity: sha512-UXPtriEc/pBP8luSLSCZBcbzPeVv+SSjs9cH/KygTbhmACye8/OOXRZO13Z2Wq1G0gLmEAIHQAOuF+vafPd2lw==} engines: {node: '>= 10'} @@ -6776,15 +7442,6 @@ packages: requiresBuild: true optional: true - /@next/swc-darwin-arm64/13.4.10: - resolution: {integrity: sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-arm64/13.4.12: resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} @@ -6794,15 +7451,6 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/12.3.4: - resolution: {integrity: sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-x64/13.3.1: resolution: {integrity: sha512-lT36yYxosCfLtplFzJWgo0hrPu6/do8+msgM7oQkPeohDNdhjtjFUgOOwdSnPublLR6Mo2Ym4P/wl5OANuD2bw==} engines: {node: '>= 10'} @@ -6811,15 +7459,6 @@ packages: requiresBuild: true optional: true - /@next/swc-darwin-x64/13.4.10: - resolution: {integrity: sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-x64/13.4.12: resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} engines: {node: '>= 10'} @@ -6829,33 +7468,6 @@ packages: dev: false optional: true - /@next/swc-freebsd-x64/12.3.4: - resolution: {integrity: sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm-gnueabihf/12.3.4: - resolution: {integrity: sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu/12.3.4: - resolution: {integrity: sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-gnu/13.3.1: resolution: {integrity: sha512-wRb76nLWJhonH8s3kxC/1tFguEkeOPayIwe9mkaz1G/yeS3OrjeyKMJsb4+Kdg0zbTo53bNCOl59NNtDM7yyyw==} engines: {node: '>= 10'} @@ -6864,15 +7476,6 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-arm64-gnu/13.4.10: - resolution: {integrity: sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-gnu/13.4.12: resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} engines: {node: '>= 10'} @@ -6882,15 +7485,6 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/12.3.4: - resolution: {integrity: sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-musl/13.3.1: resolution: {integrity: sha512-qz3BzjJRZ16Iq/jrp+pjiYOc0jTjHlfmxQmZk9x/+5uhRP6/eWQSTAPVJ33BMo6oK5O5N4644OgTAbzXzorecg==} engines: {node: '>= 10'} @@ -6899,15 +7493,6 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-arm64-musl/13.4.10: - resolution: {integrity: sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-musl/13.4.12: resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} engines: {node: '>= 10'} @@ -6917,15 +7502,6 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/12.3.4: - resolution: {integrity: sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-gnu/13.3.1: resolution: {integrity: sha512-6mgkLmwlyWlomQmpl21I3hxgqE5INoW4owTlcLpNsd1V4wP+J46BlI/5zV5KWWbzjfncIqzXoeGs5Eg+1GHODA==} engines: {node: '>= 10'} @@ -6934,15 +7510,6 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-gnu/13.4.10: - resolution: {integrity: sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-gnu/13.4.12: resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} engines: {node: '>= 10'} @@ -6952,15 +7519,6 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/12.3.4: - resolution: {integrity: sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-musl/13.3.1: resolution: {integrity: sha512-uqm5sielhQmKJM+qayIhgZv1KlS5pqTdQ99b+Z7hMWryXS96qE0DftTmMZowBcUL6x7s2vSXyH5wPtO1ON7LBg==} engines: {node: '>= 10'} @@ -6969,15 +7527,6 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-musl/13.4.10: - resolution: {integrity: sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-musl/13.4.12: resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} engines: {node: '>= 10'} @@ -6987,15 +7536,6 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/12.3.4: - resolution: {integrity: sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-arm64-msvc/13.3.1: resolution: {integrity: sha512-WomIiTj/v3LevltlibNQKmvrOymNRYL+a0dp5R73IwPWN5FvXWwSELN/kiNALig/+T3luc4qHNTyvMCp9L6U5Q==} engines: {node: '>= 10'} @@ -7004,15 +7544,6 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-arm64-msvc/13.4.10: - resolution: {integrity: sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-arm64-msvc/13.4.12: resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} engines: {node: '>= 10'} @@ -7022,15 +7553,6 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/12.3.4: - resolution: {integrity: sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-ia32-msvc/13.3.1: resolution: {integrity: sha512-M+PoH+0+q658wRUbs285RIaSTYnGBSTdweH/0CdzDgA6Q4rBM0sQs4DHmO3BPP0ltCO/vViIoyG7ks66XmCA5g==} engines: {node: '>= 10'} @@ -7039,28 +7561,10 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-ia32-msvc/13.4.10: - resolution: {integrity: sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-ia32-msvc/13.4.12: - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc/12.3.4: - resolution: {integrity: sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==} + resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} engines: {node: '>= 10'} - cpu: [x64] + cpu: [ia32] os: [win32] requiresBuild: true dev: false @@ -7074,15 +7578,6 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-x64-msvc/13.4.10: - resolution: {integrity: sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-x64-msvc/13.4.12: resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} engines: {node: '>= 10'} @@ -8414,7 +8909,7 @@ packages: engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 playwright-core: 1.37.0 optionalDependencies: fsevents: 2.3.2 @@ -9652,15 +10147,15 @@ packages: '@remix-run/serve': optional: true dependencies: - '@babel/core': 7.21.8 - '@babel/generator': 7.21.5 - '@babel/parser': 7.21.8 - '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 - '@babel/preset-env': 7.21.5_@babel+core@7.21.8 - '@babel/preset-typescript': 7.21.5_@babel+core@7.21.8 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/core': 7.22.17 + '@babel/generator': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.17 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 + '@babel/preset-env': 7.21.5_@babel+core@7.22.17 + '@babel/preset-typescript': 7.21.5_@babel+core@7.22.17 + '@babel/traverse': 7.22.17 + '@babel/types': 7.22.17 '@npmcli/package-json': 2.0.0 '@remix-run/serve': 1.19.3 '@remix-run/server-runtime': 1.19.3 @@ -9770,9 +10265,9 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8_4kcy3ceav4hwu45tr763dq6rau - '@babel/preset-react': 7.18.6_@babel+core@7.21.8 + '@babel/core': 7.22.17 + '@babel/eslint-parser': 7.21.8_26dsxalng3b37usmqamlicq2qm + '@babel/preset-react': 7.18.6_@babel+core@7.22.17 '@rushstack/eslint-patch': 1.2.0 '@typescript-eslint/eslint-plugin': 5.59.6_dkwsiqroe3j3ca5rsnvbsfspsy '@typescript-eslint/parser': 5.59.6_mhvizudgavq6jzvqzwcqcv4nnm @@ -10121,7 +10616,7 @@ packages: resolution: {integrity: sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 dev: false /@slack/types/2.8.0: @@ -11642,12 +12137,6 @@ packages: '@swc/core-win32-ia32-msvc': 1.3.26 '@swc/core-win32-x64-msvc': 1.3.26 - /@swc/helpers/0.4.11: - resolution: {integrity: sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==} - dependencies: - tslib: 2.5.0 - dev: false - /@swc/helpers/0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: @@ -11844,7 +12333,7 @@ packages: engines: {node: '>=16.8.0'} dependencies: '@trigger.dev/core': 2.0.7 - chalk: 5.2.0 + chalk: 5.3.0 cronstrue: 2.21.0 debug: 4.3.4 evt: 2.4.13 @@ -12219,7 +12708,7 @@ packages: /@types/is-stream/1.1.0: resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==} dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 dev: false /@types/istanbul-lib-coverage/2.0.4: @@ -12396,7 +12885,7 @@ packages: /@types/node-fetch/2.6.4: resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 form-data: 3.0.1 /@types/node/12.20.55: @@ -12433,9 +12922,6 @@ packages: resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} dev: true - /@types/node/20.5.2: - resolution: {integrity: sha512-5j/lXt7unfPOUlrKC34HIaedONleyLtwkKggiD/0uuMfT8gg2EOpg0dz4lCD15Ga7muC+1WzJZAjIB9simWd6Q==} - /@types/node/20.6.0: resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} @@ -12469,7 +12955,7 @@ packages: /@types/pg/8.6.6: resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==} dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -12577,7 +13063,7 @@ packages: /@types/through/0.0.30: resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 dev: true /@types/tinycolor2/1.4.3: @@ -12725,25 +13211,6 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.59.6_eslint@8.44.0: - resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.6 - '@typescript-eslint/types': 5.59.6 - '@typescript-eslint/typescript-estree': 5.59.6 - debug: 4.3.4 - eslint: 8.44.0 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser/5.59.6_iukboom6ndih5an6iafl45j2fe: resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -13968,22 +14435,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autoprefixer/10.4.14_postcss@8.4.26: - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001504 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.26 - postcss-value-parser: 4.2.0 - dev: false - /autoprefixer/10.4.14_postcss@8.4.27: resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} @@ -13991,8 +14442,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001504 + browserslist: 4.21.10 + caniuse-lite: 1.0.30001532 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -14155,6 +14606,19 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.22.17: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.17 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.22.17 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: @@ -14179,6 +14643,18 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.22.17: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.22.17 + core-js-compat: 3.27.1 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: @@ -14201,6 +14677,17 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.22.17: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.22.17 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-react-docgen/4.2.1: resolution: {integrity: sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==} dependencies: @@ -14494,17 +14981,6 @@ packages: update-browserslist-db: 1.0.11_browserslist@4.21.4 dev: true - /browserslist/4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001504 - electron-to-chromium: 1.4.433 - node-releases: 2.0.12 - update-browserslist-db: 1.0.11_browserslist@4.21.9 - dev: false - /bs-logger/0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -14809,9 +15285,11 @@ packages: /caniuse-lite/1.0.30001443: resolution: {integrity: sha512-jUo8svymO8+Mkj3qbUbVjR8zv8LUGpGkUM/jKvc9SO2BvjCI980dp9fQbf/dyLs6RascPzgR4nhAKFA4OHeSaA==} + dev: true /caniuse-lite/1.0.30001504: resolution: {integrity: sha512-5uo7eoOp2mKbWyfMXnGO9rJWOGU8duvzEiYITW+wivukL7yHH4gX9yuRaobu6El4jPxo6jKZfG+N6fB621GD/Q==} + dev: true /caniuse-lite/1.0.30001532: resolution: {integrity: sha512-FbDFnNat3nMnrROzqrsg314zhqN5LGQ1kyyMk2opcrwGbVGpHRhgCWtAgD5YJUqNAiQ+dklreil/c3Qf1dfCTw==} @@ -15494,12 +15972,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 - postcss-modules-scope: 3.0.0_postcss@8.4.27 - postcss-modules-values: 4.0.0_postcss@8.4.27 + icss-utils: 5.1.0_postcss@8.4.29 + postcss: 8.4.29 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.29 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.29 + postcss-modules-scope: 3.0.0_postcss@8.4.29 + postcss-modules-values: 4.0.0_postcss@8.4.29 postcss-value-parser: 4.2.0 semver: 7.5.4 dev: true @@ -15510,12 +15988,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 - postcss-modules-scope: 3.0.0_postcss@8.4.27 - postcss-modules-values: 4.0.0_postcss@8.4.27 + icss-utils: 5.1.0_postcss@8.4.29 + postcss: 8.4.29 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.29 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.29 + postcss-modules-scope: 3.0.0_postcss@8.4.29 + postcss-modules-values: 4.0.0_postcss@8.4.29 postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.80.0_uhpfu7q6noim4yjdo6qt2aajgu @@ -16164,6 +16642,7 @@ packages: /electron-to-chromium/1.4.433: resolution: {integrity: sha512-MGO1k0w1RgrfdbLVwmXcDhHHuxCn2qRgR7dYsJvWFKDttvYPx6FNzCGG0c/fBBvzK2LDh3UV7Tt9awnHnvAAUQ==} + dev: true /electron-to-chromium/1.4.513: resolution: {integrity: sha512-cOB0xcInjm+E5qIssHeXJ29BaUyWpMyFKT5RB3bsLENDheCja0wMkHJyiPl0NBE/VzDI7JDuNEQWhe6RitEUcw==} @@ -16210,14 +16689,6 @@ packages: objectorarray: 1.0.5 dev: true - /enhanced-resolve/5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.10 - tapable: 2.2.1 - dev: true - /enhanced-resolve/5.13.0: resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} engines: {node: '>=10.13.0'} @@ -16855,55 +17326,6 @@ packages: optionalDependencies: source-map: 0.6.1 - /eslint-config-next/12.3.4_eslint@8.44.0: - resolution: {integrity: sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 12.3.4 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.6_eslint@8.44.0 - eslint: 8.44.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 2.7.1_5aj2mp7az734ikavo3m5caonza - eslint-plugin-import: 2.27.5_titmrsdujnhsc3m2skivuhiz64 - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.44.0 - eslint-plugin-react: 7.32.2_eslint@8.44.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.44.0 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-config-next/13.4.10_ko3fmmbeyij36muomfgt2u76xu: - resolution: {integrity: sha512-+JjcM6lQmFR5Mw0ORm9o1CR29+z/uajgSfYAPEGIBxOhTHBgCMs7ysuwi72o7LkMmA8E3N7/h09pSGZxs0s85g==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 13.4.10 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.6_ko3fmmbeyij36muomfgt2u76xu - eslint: 8.45.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_p5geytdocx6mbqwwlptzjkv4li - eslint-plugin-import: 2.27.5_xpt3ce3kmhzhmuk3dcuwe6u2pe - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.45.0 - eslint-plugin-react: 7.32.2_eslint@8.45.0 - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705_eslint@8.45.0 - typescript: 5.1.6 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-config-next/13.4.12_ko3fmmbeyij36muomfgt2u76xu: resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==} peerDependencies: @@ -17030,24 +17452,6 @@ packages: transitivePeerDependencies: - supports-color - /eslint-import-resolver-typescript/2.7.1_5aj2mp7az734ikavo3m5caonza: - resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - eslint: 8.44.0 - eslint-plugin-import: 2.27.5_titmrsdujnhsc3m2skivuhiz64 - glob: 7.2.3 - is-glob: 4.0.3 - resolve: 1.22.4 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-import-resolver-typescript/3.5.5_bsgoee2ktd7nzirwexa3gasa7m: resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -17119,36 +17523,6 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_a6bibqgukfazq44vzod5qi7kby: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.6_eslint@8.44.0 - debug: 3.2.7 - eslint: 8.44.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 2.7.1_5aj2mp7az734ikavo3m5caonza - transitivePeerDependencies: - - supports-color - dev: true - /eslint-module-utils/2.7.4_hhwxwo5vg2mzr5fq3eei7kqaye: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} @@ -17271,40 +17645,7 @@ packages: estraverse: 5.3.0 dev: true - /eslint-plugin-import/2.27.5_4nmwrqeucdooykidvg7oplsu44: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_hhwxwo5vg2mzr5fq3eei7kqaye - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.2 - semver: 6.3.0 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-import/2.27.5_dclhgbuu3rymxzhsuuyv72p2ym: + /eslint-plugin-import/2.27.5_4nmwrqeucdooykidvg7oplsu44: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -17314,15 +17655,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.6_binxsscxvozjxebftqdoazsxm4 + '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.42.0 + eslint: 8.31.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_pxhjym6joapyaysotvqp5q6kau + eslint-module-utils: 2.7.4_hhwxwo5vg2mzr5fq3eei7kqaye has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -17337,7 +17678,7 @@ packages: - supports-color dev: true - /eslint-plugin-import/2.27.5_titmrsdujnhsc3m2skivuhiz64: + /eslint-plugin-import/2.27.5_dclhgbuu3rymxzhsuuyv72p2ym: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -17347,15 +17688,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.6_eslint@8.44.0 + '@typescript-eslint/parser': 5.59.6_binxsscxvozjxebftqdoazsxm4 array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.44.0 + eslint: 8.42.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_a6bibqgukfazq44vzod5qi7kby + eslint-module-utils: 2.7.4_pxhjym6joapyaysotvqp5q6kau has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -17518,31 +17859,6 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-jsx-a11y/6.7.1_eslint@8.44.0: - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.22.5 - aria-query: 5.1.3 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.6.2 - axobject-query: 3.1.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.44.0 - has: 1.0.3 - jsx-ast-utils: 3.3.3 - language-tags: 1.0.5 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.0 - dev: true - /eslint-plugin-jsx-a11y/6.7.1_eslint@8.45.0: resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} @@ -17615,15 +17931,6 @@ packages: eslint: 8.42.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.44.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.44.0 - dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.45.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -17713,30 +18020,6 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-react/7.32.2_eslint@8.44.0: - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.44.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 - dev: true - /eslint-plugin-react/7.32.2_eslint@8.45.0: resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} @@ -17860,11 +18143,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys/3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint-visitor-keys/3.4.2: resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -17965,54 +18243,6 @@ packages: - supports-color dev: true - /eslint/8.44.0: - resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.44.0 - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 - '@humanwhocodes/config-array': 0.11.10 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.19.0 - graphemer: 1.4.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint/8.45.0: resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -18286,7 +18516,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.6.2 - '@types/node': 20.5.2 + '@types/node': 20.6.0 jest-get-type: 29.4.3 jest-matcher-utils: 29.6.2 jest-message-util: 29.6.2 @@ -20769,7 +20999,7 @@ packages: - supports-color dev: true - /jest-config/29.6.2_@types+node@20.5.2: + /jest-config/29.6.2_@types+node@20.6.0: resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -20784,7 +21014,7 @@ packages: '@babel/core': 7.22.17 '@jest/test-sequencer': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.5.2 + '@types/node': 20.6.0 babel-jest: 29.6.2_@babel+core@7.22.17 chalk: 4.1.2 ci-info: 3.8.0 @@ -20930,7 +21160,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.5.2 + '@types/node': 20.6.0 dev: true /jest-mock/29.6.2: @@ -21076,7 +21306,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.5.2 + '@types/node': 20.6.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.10 @@ -22820,14 +23050,14 @@ packages: inquirer: 8.2.5 is-node-process: 1.0.1 js-levenshtein: 1.1.6 - node-fetch: 2.6.7 + node-fetch: 2.6.12 outvariant: 1.3.0 path-to-regexp: 6.2.1 statuses: 2.0.1 strict-event-emitter: 0.2.8 type-fest: 2.19.0 typescript: 5.0.4 - yargs: 17.6.2 + yargs: 17.7.2 transitivePeerDependencies: - encoding - supports-color @@ -22939,51 +23169,6 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false - /next/12.3.4_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ==} - engines: {node: '>=12.22.0'} - hasBin: true - peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 - sass: ^1.3.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - '@next/env': 12.3.4 - '@swc/helpers': 0.4.11 - caniuse-lite: 1.0.30001504 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.0.7_react@18.2.0 - use-sync-external-store: 1.2.0_react@18.2.0 - optionalDependencies: - '@next/swc-android-arm-eabi': 12.3.4 - '@next/swc-android-arm64': 12.3.4 - '@next/swc-darwin-arm64': 12.3.4 - '@next/swc-darwin-x64': 12.3.4 - '@next/swc-freebsd-x64': 12.3.4 - '@next/swc-linux-arm-gnueabihf': 12.3.4 - '@next/swc-linux-arm64-gnu': 12.3.4 - '@next/swc-linux-arm64-musl': 12.3.4 - '@next/swc-linux-x64-gnu': 12.3.4 - '@next/swc-linux-x64-musl': 12.3.4 - '@next/swc-win32-arm64-msvc': 12.3.4 - '@next/swc-win32-ia32-msvc': 12.3.4 - '@next/swc-win32-x64-msvc': 12.3.4 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /next/13.3.1: resolution: {integrity: sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==} engines: {node: '>=14.18.0'} @@ -23008,7 +23193,7 @@ packages: '@next/env': 13.3.1 '@swc/helpers': 0.5.0 busboy: 1.6.0 - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001532 postcss: 8.4.14 styled-jsx: 5.1.1 optionalDependencies: @@ -23050,7 +23235,7 @@ packages: '@next/env': 13.3.1 '@swc/helpers': 0.5.0 busboy: 1.6.0 - caniuse-lite: 1.0.30001443 + caniuse-lite: 1.0.30001532 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -23070,49 +23255,6 @@ packages: - babel-plugin-macros dev: false - /next/13.4.10_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==} - engines: {node: '>=16.8.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - fibers: - optional: true - sass: - optional: true - dependencies: - '@next/env': 13.4.10 - '@swc/helpers': 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001504 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.1.1_react@18.2.0 - watchpack: 2.4.0 - zod: 3.21.4 - optionalDependencies: - '@next/swc-darwin-arm64': 13.4.10 - '@next/swc-darwin-x64': 13.4.10 - '@next/swc-linux-arm64-gnu': 13.4.10 - '@next/swc-linux-arm64-musl': 13.4.10 - '@next/swc-linux-x64-gnu': 13.4.10 - '@next/swc-linux-x64-musl': 13.4.10 - '@next/swc-win32-arm64-msvc': 13.4.10 - '@next/swc-win32-ia32-msvc': 13.4.10 - '@next/swc-win32-x64-msvc': 13.4.10 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /next/13.4.12_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} engines: {node: '>=16.8.0'} @@ -23134,7 +23276,7 @@ packages: '@next/env': 13.4.12 '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001504 + caniuse-lite: 1.0.30001532 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -23247,8 +23389,8 @@ packages: dependencies: whatwg-url: 5.0.0 - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + /node-fetch/2.6.12_encoding@0.1.13: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -23256,9 +23398,11 @@ packages: encoding: optional: true dependencies: + encoding: 0.1.13 whatwg-url: 5.0.0 + dev: false - /node-fetch/2.6.7_encoding@0.1.13: + /node-fetch/2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} peerDependencies: @@ -23267,7 +23411,6 @@ packages: encoding: optional: true dependencies: - encoding: 0.1.13 whatwg-url: 5.0.0 dev: false @@ -23310,6 +23453,7 @@ packages: /node-releases/2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} + dev: true /node-releases/2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -24762,15 +24906,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /postcss/8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - /postcss/8.4.27: resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} @@ -26077,7 +26212,7 @@ packages: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.27 + postcss: 8.4.29 source-map: 0.6.1 dev: true @@ -27297,22 +27432,6 @@ packages: inline-style-parser: 0.1.1 dev: true - /styled-jsx/5.0.7_react@18.2.0: - resolution: {integrity: sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - dependencies: - react: 18.2.0 - dev: false - /styled-jsx/5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -27524,7 +27643,7 @@ packages: chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.12 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.18.2 @@ -27539,7 +27658,7 @@ packages: postcss-load-config: 4.0.1_postcss@8.4.29 postcss-nested: 6.0.1_postcss@8.4.29 postcss-selector-parser: 6.0.11 - resolve: 1.22.2 + resolve: 1.22.4 sucrase: 3.32.0 transitivePeerDependencies: - ts-node @@ -27959,9 +28078,9 @@ packages: webpack: ^5.0.0 dependencies: chalk: 4.1.2 - enhanced-resolve: 5.12.0 + enhanced-resolve: 5.13.0 micromatch: 4.0.5 - semver: 7.5.0 + semver: 7.5.4 typescript: 5.0.4 dev: true @@ -28907,17 +29026,6 @@ packages: picocolors: 1.0.0 dev: true - /update-browserslist-db/1.0.11_browserslist@4.21.9: - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.9 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: false - /update-notifier/6.0.2: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} @@ -29017,14 +29125,6 @@ packages: tslib: 2.5.0 dev: false - /use-sync-external-store/1.2.0_react@18.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - /use/3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -29221,7 +29321,7 @@ packages: - terser dev: true - /vite-node/0.28.5_@types+node@20.5.2: + /vite-node/0.28.5_@types+node@20.6.0: resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -29233,7 +29333,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.4.9_@types+node@20.5.2 + vite: 4.4.9_@types+node@20.6.0 transitivePeerDependencies: - '@types/node' - less @@ -29303,7 +29403,7 @@ packages: optional: true dependencies: esbuild: 0.16.17 - postcss: 8.4.27 + postcss: 8.4.29 resolve: 1.22.1 rollup: 3.10.0 optionalDependencies: @@ -29337,7 +29437,7 @@ packages: dependencies: '@types/node': 18.11.18 esbuild: 0.16.17 - postcss: 8.4.27 + postcss: 8.4.29 resolve: 1.22.1 rollup: 3.10.0 optionalDependencies: @@ -29371,14 +29471,14 @@ packages: dependencies: '@types/node': 18.17.1 esbuild: 0.16.17 - postcss: 8.4.27 + postcss: 8.4.29 resolve: 1.22.1 rollup: 3.10.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.1.4_@types+node@20.5.2: + /vite/4.1.4_@types+node@20.6.0: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -29403,9 +29503,9 @@ packages: terser: optional: true dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 esbuild: 0.16.17 - postcss: 8.4.27 + postcss: 8.4.29 resolve: 1.22.1 rollup: 3.10.0 optionalDependencies: @@ -29482,7 +29582,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.4.9_@types+node@20.5.2: + /vite/4.4.9_@types+node@20.6.0: resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -29510,7 +29610,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.5.2 + '@types/node': 20.6.0 esbuild: 0.18.11 postcss: 8.4.29 rollup: 3.29.1 @@ -29587,7 +29687,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 20.5.2 + '@types/node': 20.6.0 '@vitest/expect': 0.28.5 '@vitest/runner': 0.28.5 '@vitest/spy': 0.28.5 @@ -29606,8 +29706,8 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.1.4_@types+node@20.5.2 - vite-node: 0.28.5_@types+node@20.5.2 + vite: 4.1.4_@types+node@20.6.0 + vite-node: 0.28.5_@types+node@20.6.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -30197,19 +30297,6 @@ packages: yargs-parser: 20.2.9 dev: false - /yargs/17.6.2: - resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true - /yargs/17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5c384a7ff5f..ca598652490 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,6 +3,6 @@ packages: - "packages/*" - "integrations/*" - "apps/**" - - "examples/*" + - "references/*" - "docs" - "perf" diff --git a/examples/astro-example/.env.example b/references/astro-referece/.env.example similarity index 100% rename from examples/astro-example/.env.example rename to references/astro-referece/.env.example diff --git a/examples/astro-example/.gitignore b/references/astro-referece/.gitignore similarity index 100% rename from examples/astro-example/.gitignore rename to references/astro-referece/.gitignore diff --git a/examples/astro-example/.vscode/extensions.json b/references/astro-referece/.vscode/extensions.json similarity index 100% rename from examples/astro-example/.vscode/extensions.json rename to references/astro-referece/.vscode/extensions.json diff --git a/examples/astro-example/.vscode/launch.json b/references/astro-referece/.vscode/launch.json similarity index 100% rename from examples/astro-example/.vscode/launch.json rename to references/astro-referece/.vscode/launch.json diff --git a/examples/astro-example/README.md b/references/astro-referece/README.md similarity index 100% rename from examples/astro-example/README.md rename to references/astro-referece/README.md diff --git a/examples/astro-example/astro.config.mjs b/references/astro-referece/astro.config.mjs similarity index 100% rename from examples/astro-example/astro.config.mjs rename to references/astro-referece/astro.config.mjs diff --git a/examples/astro-example/package.json b/references/astro-referece/package.json similarity index 100% rename from examples/astro-example/package.json rename to references/astro-referece/package.json diff --git a/examples/astro-example/public/favicon.svg b/references/astro-referece/public/favicon.svg similarity index 100% rename from examples/astro-example/public/favicon.svg rename to references/astro-referece/public/favicon.svg diff --git a/examples/astro-example/src/components/Card.astro b/references/astro-referece/src/components/Card.astro similarity index 100% rename from examples/astro-example/src/components/Card.astro rename to references/astro-referece/src/components/Card.astro diff --git a/examples/astro-example/src/env.d.ts b/references/astro-referece/src/env.d.ts similarity index 100% rename from examples/astro-example/src/env.d.ts rename to references/astro-referece/src/env.d.ts diff --git a/examples/astro-example/src/jobs/example.ts b/references/astro-referece/src/jobs/example.ts similarity index 100% rename from examples/astro-example/src/jobs/example.ts rename to references/astro-referece/src/jobs/example.ts diff --git a/examples/astro-example/src/layouts/Layout.astro b/references/astro-referece/src/layouts/Layout.astro similarity index 100% rename from examples/astro-example/src/layouts/Layout.astro rename to references/astro-referece/src/layouts/Layout.astro diff --git a/examples/astro-example/src/pages/api/trigger.ts b/references/astro-referece/src/pages/api/trigger.ts similarity index 100% rename from examples/astro-example/src/pages/api/trigger.ts rename to references/astro-referece/src/pages/api/trigger.ts diff --git a/examples/astro-example/src/pages/index.astro b/references/astro-referece/src/pages/index.astro similarity index 100% rename from examples/astro-example/src/pages/index.astro rename to references/astro-referece/src/pages/index.astro diff --git a/examples/astro-example/src/trigger.ts b/references/astro-referece/src/trigger.ts similarity index 100% rename from examples/astro-example/src/trigger.ts rename to references/astro-referece/src/trigger.ts diff --git a/examples/astro-example/tsconfig.json b/references/astro-referece/tsconfig.json similarity index 100% rename from examples/astro-example/tsconfig.json rename to references/astro-referece/tsconfig.json diff --git a/examples/job-catalog/.env.example b/references/job-catalog/.env.example similarity index 100% rename from examples/job-catalog/.env.example rename to references/job-catalog/.env.example diff --git a/examples/job-catalog/README.md b/references/job-catalog/README.md similarity index 96% rename from examples/job-catalog/README.md rename to references/job-catalog/README.md index df66ed21669..a1893ce1e52 100644 --- a/examples/job-catalog/README.md +++ b/references/job-catalog/README.md @@ -17,14 +17,14 @@ pnpm run build --filter @trigger.dev/cli Each file in `src` is a separate set of jobs that can be run separately. For example, the `src/stripe.ts` file can be run with: ```sh -cd examples/job-catalog +cd references/job-catalog pnpm run stripe ``` This will open up a local server using `express` on port 8080. Then in a new terminal window you can run the trigger-cli dev command: ```sh -cd examples/job-catalog +cd references/job-catalog pnpm run dev:trigger ``` diff --git a/examples/job-catalog/package.json b/references/job-catalog/package.json similarity index 98% rename from examples/job-catalog/package.json rename to references/job-catalog/package.json index b5249bc0412..37e18f34be6 100644 --- a/examples/job-catalog/package.json +++ b/references/job-catalog/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/job-catalog", + "name": "@references/job-catalog", "version": "0.1.0", "private": true, "scripts": { @@ -52,4 +52,4 @@ "ts-node": "^10.9.1", "tsconfig-paths": "^3.14.1" } -} +} \ No newline at end of file diff --git a/examples/job-catalog/src/airtable.ts b/references/job-catalog/src/airtable.ts similarity index 100% rename from examples/job-catalog/src/airtable.ts rename to references/job-catalog/src/airtable.ts diff --git a/examples/job-catalog/src/background-fetch.ts b/references/job-catalog/src/background-fetch.ts similarity index 100% rename from examples/job-catalog/src/background-fetch.ts rename to references/job-catalog/src/background-fetch.ts diff --git a/examples/job-catalog/src/delays.ts b/references/job-catalog/src/delays.ts similarity index 100% rename from examples/job-catalog/src/delays.ts rename to references/job-catalog/src/delays.ts diff --git a/examples/job-catalog/src/dynamic-schedule.ts b/references/job-catalog/src/dynamic-schedule.ts similarity index 100% rename from examples/job-catalog/src/dynamic-schedule.ts rename to references/job-catalog/src/dynamic-schedule.ts diff --git a/examples/job-catalog/src/dynamic-triggers.ts b/references/job-catalog/src/dynamic-triggers.ts similarity index 100% rename from examples/job-catalog/src/dynamic-triggers.ts rename to references/job-catalog/src/dynamic-triggers.ts diff --git a/examples/job-catalog/src/events.ts b/references/job-catalog/src/events.ts similarity index 100% rename from examples/job-catalog/src/events.ts rename to references/job-catalog/src/events.ts diff --git a/examples/job-catalog/src/github.ts b/references/job-catalog/src/github.ts similarity index 100% rename from examples/job-catalog/src/github.ts rename to references/job-catalog/src/github.ts diff --git a/examples/job-catalog/src/openai.ts b/references/job-catalog/src/openai.ts similarity index 100% rename from examples/job-catalog/src/openai.ts rename to references/job-catalog/src/openai.ts diff --git a/examples/job-catalog/src/plain.ts b/references/job-catalog/src/plain.ts similarity index 100% rename from examples/job-catalog/src/plain.ts rename to references/job-catalog/src/plain.ts diff --git a/examples/job-catalog/src/resend.ts b/references/job-catalog/src/resend.ts similarity index 100% rename from examples/job-catalog/src/resend.ts rename to references/job-catalog/src/resend.ts diff --git a/examples/job-catalog/src/schedules.ts b/references/job-catalog/src/schedules.ts similarity index 100% rename from examples/job-catalog/src/schedules.ts rename to references/job-catalog/src/schedules.ts diff --git a/examples/job-catalog/src/sendgrid.ts b/references/job-catalog/src/sendgrid.ts similarity index 100% rename from examples/job-catalog/src/sendgrid.ts rename to references/job-catalog/src/sendgrid.ts diff --git a/examples/job-catalog/src/slack.ts b/references/job-catalog/src/slack.ts similarity index 100% rename from examples/job-catalog/src/slack.ts rename to references/job-catalog/src/slack.ts diff --git a/examples/job-catalog/src/stressTest.ts b/references/job-catalog/src/stressTest.ts similarity index 100% rename from examples/job-catalog/src/stressTest.ts rename to references/job-catalog/src/stressTest.ts diff --git a/examples/job-catalog/src/stripe.ts b/references/job-catalog/src/stripe.ts similarity index 100% rename from examples/job-catalog/src/stripe.ts rename to references/job-catalog/src/stripe.ts diff --git a/examples/job-catalog/src/supabase-types.ts b/references/job-catalog/src/supabase-types.ts similarity index 100% rename from examples/job-catalog/src/supabase-types.ts rename to references/job-catalog/src/supabase-types.ts diff --git a/examples/job-catalog/src/supabase.ts b/references/job-catalog/src/supabase.ts similarity index 100% rename from examples/job-catalog/src/supabase.ts rename to references/job-catalog/src/supabase.ts diff --git a/examples/job-catalog/src/typeform.ts b/references/job-catalog/src/typeform.ts similarity index 100% rename from examples/job-catalog/src/typeform.ts rename to references/job-catalog/src/typeform.ts diff --git a/examples/job-catalog/tsconfig.json b/references/job-catalog/tsconfig.json similarity index 100% rename from examples/job-catalog/tsconfig.json rename to references/job-catalog/tsconfig.json diff --git a/examples/nextjs-example/.eslintrc.json b/references/nextjs-reference/.eslintrc.json similarity index 100% rename from examples/nextjs-example/.eslintrc.json rename to references/nextjs-reference/.eslintrc.json diff --git a/examples/jobs-starter/.gitignore b/references/nextjs-reference/.gitignore similarity index 100% rename from examples/jobs-starter/.gitignore rename to references/nextjs-reference/.gitignore diff --git a/examples/nextjs-example/.vscode/launch.json b/references/nextjs-reference/.vscode/launch.json similarity index 100% rename from examples/nextjs-example/.vscode/launch.json rename to references/nextjs-reference/.vscode/launch.json diff --git a/examples/nextjs-example/.vscode/settings.json b/references/nextjs-reference/.vscode/settings.json similarity index 100% rename from examples/nextjs-example/.vscode/settings.json rename to references/nextjs-reference/.vscode/settings.json diff --git a/examples/nextjs-example/README.md b/references/nextjs-reference/README.md similarity index 100% rename from examples/nextjs-example/README.md rename to references/nextjs-reference/README.md diff --git a/examples/nextjs-example/next.config.js b/references/nextjs-reference/next.config.js similarity index 100% rename from examples/nextjs-example/next.config.js rename to references/nextjs-reference/next.config.js diff --git a/examples/nextjs-example/package.json b/references/nextjs-reference/package.json similarity index 93% rename from examples/nextjs-example/package.json rename to references/nextjs-reference/package.json index d1d6cd7be14..f4ea60bcbce 100644 --- a/examples/nextjs-example/package.json +++ b/references/nextjs-reference/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/nextjs", + "name": "@references/nextjs", "version": "0.1.0", "private": true, "scripts": { @@ -24,7 +24,6 @@ "@types/react": "18.2.17", "@types/react-dom": "18.2.7", "next": "13.3.1", - "node-fetch": "2.6.x", "react": "^18.2.0", "react-dom": "^18.2.0", "react-query": "^3.39.3", @@ -36,7 +35,6 @@ }, "devDependencies": { "@trigger.dev/cli": "workspace:*", - "@types/node-fetch": "2.6.x", "eslint": "8.42.0", "eslint-config-next": "13.4.6", "msw": "^0.47.0", diff --git a/examples/jobs-starter/app/favicon.ico b/references/nextjs-reference/public/favicon.ico similarity index 100% rename from examples/jobs-starter/app/favicon.ico rename to references/nextjs-reference/public/favicon.ico diff --git a/examples/jobs-starter/public/next.svg b/references/nextjs-reference/public/next.svg similarity index 100% rename from examples/jobs-starter/public/next.svg rename to references/nextjs-reference/public/next.svg diff --git a/examples/jobs-starter/public/vercel.svg b/references/nextjs-reference/public/vercel.svg similarity index 100% rename from examples/jobs-starter/public/vercel.svg rename to references/nextjs-reference/public/vercel.svg diff --git a/examples/nextjs-example/src/app/api/send-test-event/route.ts b/references/nextjs-reference/src/app/api/send-test-event/route.ts similarity index 100% rename from examples/nextjs-example/src/app/api/send-test-event/route.ts rename to references/nextjs-reference/src/app/api/send-test-event/route.ts diff --git a/examples/nextjs-example/src/app/api/trigger/route.ts b/references/nextjs-reference/src/app/api/trigger/route.ts similarity index 100% rename from examples/nextjs-example/src/app/api/trigger/route.ts rename to references/nextjs-reference/src/app/api/trigger/route.ts diff --git a/examples/nextjs-example/src/app/events/[eventId]/page.tsx b/references/nextjs-reference/src/app/events/[eventId]/page.tsx similarity index 100% rename from examples/nextjs-example/src/app/events/[eventId]/page.tsx rename to references/nextjs-reference/src/app/events/[eventId]/page.tsx diff --git a/examples/nextjs-example/src/app/layout.tsx b/references/nextjs-reference/src/app/layout.tsx similarity index 100% rename from examples/nextjs-example/src/app/layout.tsx rename to references/nextjs-reference/src/app/layout.tsx diff --git a/examples/nextjs-example/src/app/page.tsx b/references/nextjs-reference/src/app/page.tsx similarity index 100% rename from examples/nextjs-example/src/app/page.tsx rename to references/nextjs-reference/src/app/page.tsx diff --git a/examples/nextjs-example/src/components/ReactQuery.tsx b/references/nextjs-reference/src/components/ReactQuery.tsx similarity index 100% rename from examples/nextjs-example/src/components/ReactQuery.tsx rename to references/nextjs-reference/src/components/ReactQuery.tsx diff --git a/examples/nextjs-example/src/components/RunDetails.tsx b/references/nextjs-reference/src/components/RunDetails.tsx similarity index 100% rename from examples/nextjs-example/src/components/RunDetails.tsx rename to references/nextjs-reference/src/components/RunDetails.tsx diff --git a/examples/nextjs-example/src/components/SendTestEvent.tsx b/references/nextjs-reference/src/components/SendTestEvent.tsx similarity index 100% rename from examples/nextjs-example/src/components/SendTestEvent.tsx rename to references/nextjs-reference/src/components/SendTestEvent.tsx diff --git a/examples/nextjs-example/src/jobs/edgeCases.ts b/references/nextjs-reference/src/jobs/edgeCases.ts similarity index 100% rename from examples/nextjs-example/src/jobs/edgeCases.ts rename to references/nextjs-reference/src/jobs/edgeCases.ts diff --git a/examples/nextjs-example/src/jobs/events.ts b/references/nextjs-reference/src/jobs/events.ts similarity index 100% rename from examples/nextjs-example/src/jobs/events.ts rename to references/nextjs-reference/src/jobs/events.ts diff --git a/examples/nextjs-example/src/jobs/general.ts b/references/nextjs-reference/src/jobs/general.ts similarity index 100% rename from examples/nextjs-example/src/jobs/general.ts rename to references/nextjs-reference/src/jobs/general.ts diff --git a/examples/nextjs-example/src/jobs/github.ts b/references/nextjs-reference/src/jobs/github.ts similarity index 100% rename from examples/nextjs-example/src/jobs/github.ts rename to references/nextjs-reference/src/jobs/github.ts diff --git a/examples/nextjs-example/src/jobs/hooks.ts b/references/nextjs-reference/src/jobs/hooks.ts similarity index 100% rename from examples/nextjs-example/src/jobs/hooks.ts rename to references/nextjs-reference/src/jobs/hooks.ts diff --git a/examples/nextjs-example/src/jobs/logging.ts b/references/nextjs-reference/src/jobs/logging.ts similarity index 100% rename from examples/nextjs-example/src/jobs/logging.ts rename to references/nextjs-reference/src/jobs/logging.ts diff --git a/examples/nextjs-example/src/jobs/openai.ts b/references/nextjs-reference/src/jobs/openai.ts similarity index 100% rename from examples/nextjs-example/src/jobs/openai.ts rename to references/nextjs-reference/src/jobs/openai.ts diff --git a/examples/nextjs-example/src/jobs/plain.ts b/references/nextjs-reference/src/jobs/plain.ts similarity index 100% rename from examples/nextjs-example/src/jobs/plain.ts rename to references/nextjs-reference/src/jobs/plain.ts diff --git a/examples/nextjs-example/src/jobs/schedules.ts b/references/nextjs-reference/src/jobs/schedules.ts similarity index 100% rename from examples/nextjs-example/src/jobs/schedules.ts rename to references/nextjs-reference/src/jobs/schedules.ts diff --git a/examples/nextjs-example/src/jobs/slack.ts b/references/nextjs-reference/src/jobs/slack.ts similarity index 100% rename from examples/nextjs-example/src/jobs/slack.ts rename to references/nextjs-reference/src/jobs/slack.ts diff --git a/examples/nextjs-example/src/jobs/stripe.ts b/references/nextjs-reference/src/jobs/stripe.ts similarity index 100% rename from examples/nextjs-example/src/jobs/stripe.ts rename to references/nextjs-reference/src/jobs/stripe.ts diff --git a/examples/nextjs-example/src/jobs/supabase.ts b/references/nextjs-reference/src/jobs/supabase.ts similarity index 100% rename from examples/nextjs-example/src/jobs/supabase.ts rename to references/nextjs-reference/src/jobs/supabase.ts diff --git a/examples/nextjs-example/src/jobs/typeform.ts b/references/nextjs-reference/src/jobs/typeform.ts similarity index 100% rename from examples/nextjs-example/src/jobs/typeform.ts rename to references/nextjs-reference/src/jobs/typeform.ts diff --git a/examples/nextjs-example/src/mocks/handlers.ts b/references/nextjs-reference/src/mocks/handlers.ts similarity index 100% rename from examples/nextjs-example/src/mocks/handlers.ts rename to references/nextjs-reference/src/mocks/handlers.ts diff --git a/examples/nextjs-example/src/styles/Home.module.css b/references/nextjs-reference/src/styles/Home.module.css similarity index 100% rename from examples/nextjs-example/src/styles/Home.module.css rename to references/nextjs-reference/src/styles/Home.module.css diff --git a/examples/nextjs-example/src/styles/globals.css b/references/nextjs-reference/src/styles/globals.css similarity index 100% rename from examples/nextjs-example/src/styles/globals.css rename to references/nextjs-reference/src/styles/globals.css diff --git a/examples/nextjs-example/src/supabase.types.ts b/references/nextjs-reference/src/supabase.types.ts similarity index 100% rename from examples/nextjs-example/src/supabase.types.ts rename to references/nextjs-reference/src/supabase.types.ts diff --git a/examples/nextjs-example/src/trigger.ts b/references/nextjs-reference/src/trigger.ts similarity index 96% rename from examples/nextjs-example/src/trigger.ts rename to references/nextjs-reference/src/trigger.ts index 262fb998d6a..86184b71e21 100644 --- a/examples/nextjs-example/src/trigger.ts +++ b/references/nextjs-reference/src/trigger.ts @@ -10,7 +10,6 @@ import { Github } from "@trigger.dev/github"; import { OpenAI } from "@trigger.dev/openai"; import { TriggerClient } from "@trigger.dev/sdk"; import { Slack } from "@trigger.dev/slack"; -import fetch from "node-fetch"; export const client = new TriggerClient({ id: "nextjs-example", diff --git a/examples/nextjs-example/tsconfig.json b/references/nextjs-reference/tsconfig.json similarity index 100% rename from examples/nextjs-example/tsconfig.json rename to references/nextjs-reference/tsconfig.json diff --git a/examples/nextjs-test/.env.example b/references/nextjs-test/.env.example similarity index 100% rename from examples/nextjs-test/.env.example rename to references/nextjs-test/.env.example diff --git a/examples/jobs-starter/.eslintrc.json b/references/nextjs-test/.eslintrc.json similarity index 100% rename from examples/jobs-starter/.eslintrc.json rename to references/nextjs-test/.eslintrc.json diff --git a/examples/nextjs-example/.gitignore b/references/nextjs-test/.gitignore similarity index 100% rename from examples/nextjs-example/.gitignore rename to references/nextjs-test/.gitignore diff --git a/examples/nextjs-test/README.md b/references/nextjs-test/README.md similarity index 100% rename from examples/nextjs-test/README.md rename to references/nextjs-test/README.md diff --git a/examples/nextjs-test/jsconfig.json b/references/nextjs-test/jsconfig.json similarity index 100% rename from examples/nextjs-test/jsconfig.json rename to references/nextjs-test/jsconfig.json diff --git a/examples/nextjs-test/next.config.js b/references/nextjs-test/next.config.js similarity index 100% rename from examples/nextjs-test/next.config.js rename to references/nextjs-test/next.config.js diff --git a/examples/nextjs-test/package.json b/references/nextjs-test/package.json similarity index 95% rename from examples/nextjs-test/package.json rename to references/nextjs-test/package.json index d26c67ccc2d..3decae0e71a 100644 --- a/examples/nextjs-test/package.json +++ b/references/nextjs-test/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/nextjs-test", + "name": "@references/nextjs-test", "version": "0.1.0", "private": true, "scripts": { @@ -27,4 +27,4 @@ "eslint-config-next": "13.4.6", "wait-on": "^7.0.1" } -} +} \ No newline at end of file diff --git a/examples/nextjs-example/public/next.svg b/references/nextjs-test/public/next.svg similarity index 100% rename from examples/nextjs-example/public/next.svg rename to references/nextjs-test/public/next.svg diff --git a/examples/nextjs-example/public/vercel.svg b/references/nextjs-test/public/vercel.svg similarity index 100% rename from examples/nextjs-example/public/vercel.svg rename to references/nextjs-test/public/vercel.svg diff --git a/examples/nextjs-test/src/app/api/trigger/route.js b/references/nextjs-test/src/app/api/trigger/route.js similarity index 100% rename from examples/nextjs-test/src/app/api/trigger/route.js rename to references/nextjs-test/src/app/api/trigger/route.js diff --git a/examples/nextjs-12/public/favicon.ico b/references/nextjs-test/src/app/favicon.ico similarity index 100% rename from examples/nextjs-12/public/favicon.ico rename to references/nextjs-test/src/app/favicon.ico diff --git a/examples/nextjs-test/src/app/globals.css b/references/nextjs-test/src/app/globals.css similarity index 100% rename from examples/nextjs-test/src/app/globals.css rename to references/nextjs-test/src/app/globals.css diff --git a/examples/nextjs-test/src/app/layout.js b/references/nextjs-test/src/app/layout.js similarity index 100% rename from examples/nextjs-test/src/app/layout.js rename to references/nextjs-test/src/app/layout.js diff --git a/examples/nextjs-test/src/app/page.js b/references/nextjs-test/src/app/page.js similarity index 100% rename from examples/nextjs-test/src/app/page.js rename to references/nextjs-test/src/app/page.js diff --git a/examples/nextjs-test/src/app/page.module.css b/references/nextjs-test/src/app/page.module.css similarity index 100% rename from examples/nextjs-test/src/app/page.module.css rename to references/nextjs-test/src/app/page.module.css diff --git a/examples/nextjs-test/src/jobs/examples.js b/references/nextjs-test/src/jobs/examples.js similarity index 100% rename from examples/nextjs-test/src/jobs/examples.js rename to references/nextjs-test/src/jobs/examples.js diff --git a/examples/nextjs-test/src/trigger.js b/references/nextjs-test/src/trigger.js similarity index 100% rename from examples/nextjs-test/src/trigger.js rename to references/nextjs-test/src/trigger.js diff --git a/examples/package-tester/.env.local.example b/references/package-tester/.env.local.example similarity index 100% rename from examples/package-tester/.env.local.example rename to references/package-tester/.env.local.example diff --git a/examples/nextjs-12/.eslintrc.json b/references/package-tester/.eslintrc.json similarity index 100% rename from examples/nextjs-12/.eslintrc.json rename to references/package-tester/.eslintrc.json diff --git a/examples/nextjs-test/.gitignore b/references/package-tester/.gitignore similarity index 100% rename from examples/nextjs-test/.gitignore rename to references/package-tester/.gitignore diff --git a/examples/package-tester/README.md b/references/package-tester/README.md similarity index 85% rename from examples/package-tester/README.md rename to references/package-tester/README.md index cb7b9f113f8..0676e2926a6 100644 --- a/examples/package-tester/README.md +++ b/references/package-tester/README.md @@ -5,7 +5,7 @@ This example is used to test the package building and bundling. It intentionally Create an `.env.local` file, by copying the `.env.local.example` file: ```bash -cd examples/package-tester +cd references/package-tester cp .env.local.example .env.local ``` @@ -16,5 +16,5 @@ Then fill in your API keys from the running local Trigger.dev webapp service. Run the development server: ```bash -pnpm run dev --filter @examples/package-tester +pnpm run dev --filter @references/package-tester ``` diff --git a/examples/package-tester/app/_actions.tsx b/references/package-tester/app/_actions.tsx similarity index 100% rename from examples/package-tester/app/_actions.tsx rename to references/package-tester/app/_actions.tsx diff --git a/examples/package-tester/app/api/trigger/route.ts b/references/package-tester/app/api/trigger/route.ts similarity index 100% rename from examples/package-tester/app/api/trigger/route.ts rename to references/package-tester/app/api/trigger/route.ts diff --git a/examples/package-tester/app/components/ReactHooks.tsx b/references/package-tester/app/components/ReactHooks.tsx similarity index 100% rename from examples/package-tester/app/components/ReactHooks.tsx rename to references/package-tester/app/components/ReactHooks.tsx diff --git a/examples/package-tester/app/components/SendReactHookEventForm.tsx b/references/package-tester/app/components/SendReactHookEventForm.tsx similarity index 100% rename from examples/package-tester/app/components/SendReactHookEventForm.tsx rename to references/package-tester/app/components/SendReactHookEventForm.tsx diff --git a/examples/package-tester/app/events/[eventId]/page.tsx b/references/package-tester/app/events/[eventId]/page.tsx similarity index 100% rename from examples/package-tester/app/events/[eventId]/page.tsx rename to references/package-tester/app/events/[eventId]/page.tsx diff --git a/examples/nextjs-example/public/favicon.ico b/references/package-tester/app/favicon.ico similarity index 100% rename from examples/nextjs-example/public/favicon.ico rename to references/package-tester/app/favicon.ico diff --git a/examples/jobs-starter/app/globals.css b/references/package-tester/app/globals.css similarity index 100% rename from examples/jobs-starter/app/globals.css rename to references/package-tester/app/globals.css diff --git a/examples/package-tester/app/jobs/react-hook.ts b/references/package-tester/app/jobs/react-hook.ts similarity index 100% rename from examples/package-tester/app/jobs/react-hook.ts rename to references/package-tester/app/jobs/react-hook.ts diff --git a/examples/package-tester/app/layout.tsx b/references/package-tester/app/layout.tsx similarity index 100% rename from examples/package-tester/app/layout.tsx rename to references/package-tester/app/layout.tsx diff --git a/examples/package-tester/app/page.tsx b/references/package-tester/app/page.tsx similarity index 100% rename from examples/package-tester/app/page.tsx rename to references/package-tester/app/page.tsx diff --git a/examples/package-tester/app/trigger.ts b/references/package-tester/app/trigger.ts similarity index 100% rename from examples/package-tester/app/trigger.ts rename to references/package-tester/app/trigger.ts diff --git a/examples/package-tester/next.config.js b/references/package-tester/next.config.js similarity index 100% rename from examples/package-tester/next.config.js rename to references/package-tester/next.config.js diff --git a/examples/package-tester/package.json b/references/package-tester/package.json similarity index 96% rename from examples/package-tester/package.json rename to references/package-tester/package.json index ccb67116c79..1be83dcda77 100644 --- a/examples/package-tester/package.json +++ b/references/package-tester/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/package-tester", + "name": "@references/package-tester", "version": "0.1.0", "private": true, "scripts": { @@ -43,4 +43,4 @@ "trigger.dev": { "endpointId": "package-tester" } -} +} \ No newline at end of file diff --git a/examples/jobs-starter/postcss.config.js b/references/package-tester/postcss.config.js similarity index 100% rename from examples/jobs-starter/postcss.config.js rename to references/package-tester/postcss.config.js diff --git a/examples/nextjs-test/public/next.svg b/references/package-tester/public/next.svg similarity index 100% rename from examples/nextjs-test/public/next.svg rename to references/package-tester/public/next.svg diff --git a/examples/nextjs-test/public/vercel.svg b/references/package-tester/public/vercel.svg similarity index 100% rename from examples/nextjs-test/public/vercel.svg rename to references/package-tester/public/vercel.svg diff --git a/examples/jobs-starter/tailwind.config.js b/references/package-tester/tailwind.config.js similarity index 100% rename from examples/jobs-starter/tailwind.config.js rename to references/package-tester/tailwind.config.js diff --git a/examples/package-tester/tsconfig.json b/references/package-tester/tsconfig.json similarity index 100% rename from examples/package-tester/tsconfig.json rename to references/package-tester/tsconfig.json diff --git a/examples/remix-example/.eslintrc.js b/references/remix-reference/.eslintrc.js similarity index 100% rename from examples/remix-example/.eslintrc.js rename to references/remix-reference/.eslintrc.js diff --git a/examples/remix-example/.gitignore b/references/remix-reference/.gitignore similarity index 100% rename from examples/remix-example/.gitignore rename to references/remix-reference/.gitignore diff --git a/examples/remix-example/README.md b/references/remix-reference/README.md similarity index 100% rename from examples/remix-example/README.md rename to references/remix-reference/README.md diff --git a/examples/remix-example/app/entry.client.tsx b/references/remix-reference/app/entry.client.tsx similarity index 100% rename from examples/remix-example/app/entry.client.tsx rename to references/remix-reference/app/entry.client.tsx diff --git a/examples/remix-example/app/entry.server.tsx b/references/remix-reference/app/entry.server.tsx similarity index 100% rename from examples/remix-example/app/entry.server.tsx rename to references/remix-reference/app/entry.server.tsx diff --git a/examples/remix-example/app/jobs/example.server.ts b/references/remix-reference/app/jobs/example.server.ts similarity index 100% rename from examples/remix-example/app/jobs/example.server.ts rename to references/remix-reference/app/jobs/example.server.ts diff --git a/examples/remix-example/app/root.tsx b/references/remix-reference/app/root.tsx similarity index 100% rename from examples/remix-example/app/root.tsx rename to references/remix-reference/app/root.tsx diff --git a/examples/remix-example/app/routes/_index.tsx b/references/remix-reference/app/routes/_index.tsx similarity index 100% rename from examples/remix-example/app/routes/_index.tsx rename to references/remix-reference/app/routes/_index.tsx diff --git a/examples/remix-example/app/routes/api.trigger.ts b/references/remix-reference/app/routes/api.trigger.ts similarity index 100% rename from examples/remix-example/app/routes/api.trigger.ts rename to references/remix-reference/app/routes/api.trigger.ts diff --git a/examples/remix-example/app/trigger.ts b/references/remix-reference/app/trigger.ts similarity index 100% rename from examples/remix-example/app/trigger.ts rename to references/remix-reference/app/trigger.ts diff --git a/examples/remix-example/package.json b/references/remix-reference/package.json similarity index 96% rename from examples/remix-example/package.json rename to references/remix-reference/package.json index c8090dc260d..51f75897376 100644 --- a/examples/remix-example/package.json +++ b/references/remix-reference/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/remix", + "name": "@references/remix", "private": true, "sideEffects": false, "scripts": { @@ -33,4 +33,4 @@ "engines": { "node": ">=16.8.0" } -} +} \ No newline at end of file diff --git a/examples/remix-example/public/favicon.ico b/references/remix-reference/public/favicon.ico similarity index 100% rename from examples/remix-example/public/favicon.ico rename to references/remix-reference/public/favicon.ico diff --git a/examples/remix-example/remix.config.js b/references/remix-reference/remix.config.js similarity index 100% rename from examples/remix-example/remix.config.js rename to references/remix-reference/remix.config.js diff --git a/examples/remix-example/remix.env.d.ts b/references/remix-reference/remix.env.d.ts similarity index 100% rename from examples/remix-example/remix.env.d.ts rename to references/remix-reference/remix.env.d.ts diff --git a/examples/remix-example/tsconfig.json b/references/remix-reference/tsconfig.json similarity index 100% rename from examples/remix-example/tsconfig.json rename to references/remix-reference/tsconfig.json diff --git a/examples/unit-testing/.gitignore b/references/unit-testing/.gitignore similarity index 100% rename from examples/unit-testing/.gitignore rename to references/unit-testing/.gitignore diff --git a/examples/unit-testing/dummy-integration/index.ts b/references/unit-testing/dummy-integration/index.ts similarity index 100% rename from examples/unit-testing/dummy-integration/index.ts rename to references/unit-testing/dummy-integration/index.ts diff --git a/examples/unit-testing/package.json b/references/unit-testing/package.json similarity index 92% rename from examples/unit-testing/package.json rename to references/unit-testing/package.json index cf48b6a1e7c..a827d24bdce 100644 --- a/examples/unit-testing/package.json +++ b/references/unit-testing/package.json @@ -1,5 +1,5 @@ { - "name": "@examples/unit-testing", + "name": "@references/unit-testing", "version": "1.0.0", "private": true, "description": "Examples for unit testing", @@ -21,4 +21,4 @@ "vitest": "^0.34.3", "zod": "3.21.4" } -} +} \ No newline at end of file diff --git a/examples/unit-testing/tests/example.test.ts b/references/unit-testing/tests/example.test.ts similarity index 100% rename from examples/unit-testing/tests/example.test.ts rename to references/unit-testing/tests/example.test.ts diff --git a/examples/unit-testing/tsconfig.json b/references/unit-testing/tsconfig.json similarity index 100% rename from examples/unit-testing/tsconfig.json rename to references/unit-testing/tsconfig.json diff --git a/tests/global.setup.ts b/tests/global.setup.ts index bc059cd7cbf..fb6b02c3078 100644 --- a/tests/global.setup.ts +++ b/tests/global.setup.ts @@ -8,7 +8,7 @@ const setup = async () => { email: "test-user@test.com", name: "Test User", authenticationMethod: "MAGIC_LINK", - confirmedBasicDetails: true + confirmedBasicDetails: true, }, }); @@ -53,7 +53,7 @@ const setup = async () => { await prisma.runtimeEnvironment.create({ data: { slug: "dev", - // Defined in @examples/nextjs-test + // Defined in @references/nextjs-test apiKey: "tr_dev_test-api-key", pkApiKey: "tr_dev_pk_test-api-key", autoEnableInternalSources: false, @@ -75,7 +75,7 @@ const setup = async () => { await prisma.runtimeEnvironment.create({ data: { slug: "prod", - // Defined in @examples/nextjs-test + // Defined in @references/nextjs-test apiKey: "tr_prod_test-api-key", pkApiKey: "tr_prod_pk_test-api-key", autoEnableInternalSources: false, From 241e40e3e2100327285600f55ce3c478031676c7 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 16:12:50 +0100 Subject: [PATCH 21/95] Add a references README --- references/README.md | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 references/README.md diff --git a/references/README.md b/references/README.md new file mode 100644 index 00000000000..fdb86fcbba5 --- /dev/null +++ b/references/README.md @@ -0,0 +1,47 @@ +## Trigger.dev References + +Contains code that tests or uses the `@trigger.dev/*` packages in some way, either by using them to test out a framework adapter, an integration, or parts of the main SDK. + +All the dependencies to the `@trigger.dev/*` packages will be both referenced in the package.json `dependencies` as `workspace:*`, as well as using a direct path from the tsconfig.json file like so: + +```json +{ + "extends": "@trigger.dev/tsconfig/node18.json", + "include": ["./src/**/*.ts"], + "compilerOptions": { + "baseUrl": ".", + "lib": ["DOM", "DOM.Iterable"], + "paths": { + "@/*": ["./src/*"], + "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], + "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], + "@trigger.dev/express": ["../../packages/express/src/index"], + "@trigger.dev/express/*": ["../../packages/express/src/*"], + "@trigger.dev/core": ["../../packages/core/src/index"], + "@trigger.dev/core/*": ["../../packages/core/src/*"], + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], + "@trigger.dev/github": ["../../integrations/github/src/index"], + "@trigger.dev/github/*": ["../../integrations/github/src/*"], + "@trigger.dev/slack": ["../../integrations/slack/src/index"], + "@trigger.dev/slack/*": ["../../integrations/slack/src/*"], + "@trigger.dev/openai": ["../../integrations/openai/src/index"], + "@trigger.dev/openai/*": ["../../integrations/openai/src/*"], + "@trigger.dev/resend": ["../../integrations/resend/src/index"], + "@trigger.dev/resend/*": ["../../integrations/resend/src/*"], + "@trigger.dev/typeform": ["../../integrations/typeform/src/index"], + "@trigger.dev/typeform/*": ["../../integrations/typeform/src/*"], + "@trigger.dev/plain": ["../../integrations/plain/src/index"], + "@trigger.dev/plain/*": ["../../integrations/plain/src/*"], + "@trigger.dev/supabase": ["../../integrations/supabase/src/index"], + "@trigger.dev/supabase/*": ["../../integrations/supabase/src/*"], + "@trigger.dev/stripe": ["../../integrations/stripe/src/index"], + "@trigger.dev/stripe/*": ["../../integrations/stripe/src/*"], + "@trigger.dev/sendgrid": ["../../integrations/sendgrid/src/index"], + "@trigger.dev/sendgrid/*": ["../../integrations/sendgrid/src/*"], + "@trigger.dev/airtable": ["../../integrations/airtable/src/index"], + "@trigger.dev/airtable/*": ["../../integrations/airtable/src/*"] + } + } +} +``` From cd94d8fee2f7287362f9ddf08eddd8310a9bf07d Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 16:17:53 +0100 Subject: [PATCH 22/95] Fixes broken pnpm lock file --- pnpm-lock.yaml | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64fb030a27f..f6dc357ca8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29582,42 +29582,6 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.4.9_@types+node@20.6.0: - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.6.0 - esbuild: 0.18.11 - postcss: 8.4.29 - rollup: 3.29.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/4.4.9_@types+node@20.6.0: resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} From cd70a299707ccaa3657e1c271e2a593a72908fe8 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Fri, 15 Sep 2023 17:40:36 +0100 Subject: [PATCH 23/95] Improve the Astro manual setup guide --- docs/_snippets/manual-setup-astro.mdx | 154 ++++++++++---------------- 1 file changed, 61 insertions(+), 93 deletions(-) diff --git a/docs/_snippets/manual-setup-astro.mdx b/docs/_snippets/manual-setup-astro.mdx index 160d72a9b12..4eb73a95d98 100644 --- a/docs/_snippets/manual-setup-astro.mdx +++ b/docs/_snippets/manual-setup-astro.mdx @@ -5,15 +5,15 @@ To begin, install the necessary packages in your Astro project directory. You ca ```bash npm -npm i @trigger.dev/sdk @trigger.dev/astro +npm i @trigger.dev/sdk@latest @trigger.dev/astro@latest ``` ```bash pnpm -pnpm install @trigger.dev/sdk @trigger.dev/astro +pnpm install @trigger.dev/sdk@latest @trigger.dev/astro@latest ``` ```bash yarn -yarn add @trigger.dev/sdk @trigger.dev/astro +yarn add @trigger.dev/sdk@latest @trigger.dev/astro@latest ``` @@ -32,67 +32,32 @@ Create a `.env` file at the root of your project and include your Trigger API ke ```bash TRIGGER_API_KEY=ENTER_YOUR_DEVELOPMENT_API_KEY_HERE -TRIGGER_API_URL=https://cloud.trigger.dev +TRIGGER_API_URL=https://api.trigger.dev # this is only necessary if you are self-hosting ``` Replace `ENTER_YOUR_DEVELOPMENT_API_KEY_HERE` with the actual API key obtained from the previous step. ## Configuring the Trigger Client -To set up the Trigger Client for your project, follow these steps: +Create a file at `/trigger.ts` or `/src/trigger.ts`, depending on if your project uses a `src` directory, where `` represents the root directory of your project. -1. **Create Configuration File:** +Next, add the following code to the file which creates and exports a new `TriggerClient`: - In your project directory, create a configuration file named `trigger.ts` or `trigger.js`, depending on whether your project uses TypeScript (`.ts`) or JavaScript (`.js`). +```typescript src/trigger.ts +import { TriggerClient } from "@trigger.dev/sdk"; -2. **Choose Directory:** - - Depending on your project structure, choose the appropriate directory for the configuration file. If your project uses a `src` directory, create the file within it or Otherwise, create it directly in the project root. - -3. **Add Configuration Code:** - - Open the configuration file you created and add the following code: - - ```typescript src/trigger.(ts/js) - // trigger.ts (for TypeScript) or trigger.js (for JavaScript) - - import { TriggerClient } from "@trigger.dev/sdk"; - - export const client = new TriggerClient({ - id: "my-app", - apiKey: import.meta.env.TRIGGER_API_KEY, - apiUrl: import.meta.env.TRIGGER_API_URL, - }); - ``` - - Replace **"my-app"** with an appropriate identifier for your project. The **apiKey** and **apiUrl** are obtained from the environment variables you set earlier. - -4. **File Location:** - - - You can save the file within the **src** directory or in the project rooot. - - **Example Directory Structure with src:** - - ``` - project-root/ - β”œβ”€β”€ src/ - β”œβ”€β”€ trigger.ts - β”œβ”€β”€ other files... - ``` - - **Example Directory Structure without src:** - - ``` - project-root/ - β”œβ”€β”€ trigger.ts - β”œβ”€β”€ other files... - ``` +export const client = new TriggerClient({ + id: "my-astro-app", + apiKey: import.meta.env.TRIGGER_API_KEY, + apiUrl: import.meta.env.TRIGGER_API_URL, +}); +``` -By following these steps, you'll configure the Trigger Client to work with your project, regardless of whether you have a separate **src** directory and whether you're using TypeScript or JavaScript files. +Replace **"my-astro-app"** with an appropriate identifier for your project. -## Update the astro.config file to enable ssr +## Update the astro.config file to enable SSR (Server Side Rendering) -- You need to enable ssr to use API endpoints (which are required by Trigger.dev). +- You need to enable SSR to use API endpoints (which are required by Trigger.dev). ```typescript astro.config.mjs import { defineConfig } from "astro/config"; @@ -103,37 +68,18 @@ export default defineConfig({ }); ``` -[Read the full Astro docs on SSR](https://docs.astro.build/en/guides/server-side-rendering/). +To learn more about SSR, head over to the [Astro docs on SSR](https://docs.astro.build/en/guides/server-side-rendering/). -## Creating the API Route - -To establish an API route for interacting with Trigger.dev, follow these steps based on your project's file type and structure - -1. Create a new file named `trigger.(ts/js)` within the `pages/api/` directory. -2. Add the following code to `trigger.(ts/js)`: - -```typescript src/pages/api/trigger.(ts/js) -import { createAstroRoute } from "@trigger.dev/astro"; -//you may need to update this path to point at your trigger.ts file -import { client } from "../../trigger"; - -//import your jobs, this could be different depending on your project structure -import "../../jobs"; - -export const prerender = false; -export const { POST } = createAstroRoute(client); -``` +## Creating an Example Job -## Creating the Example Job - -1. Create a folder named `Jobs` alongside your `pages` directory -2. Inside the `Jobs` folder, add two files named `example.(ts/js)` and `index.(ts/js)`. +1. Create a folder named `jobs` alongside your `pages` directory +2. Inside the `jobs` folder, add two files named `example.ts` and `index.ts`. -```typescript src/jobs/example.(ts/js) +```typescript src/jobs/example.ts import { eventTrigger } from "@trigger.dev/sdk"; -import { client } from "@/trigger"; +import { client } from "../trigger"; // your first job client.defineJob({ @@ -153,24 +99,30 @@ client.defineJob({ }); ``` -```typescript src/jobs/index.(ts/js) +```typescript src/jobs/index.ts // export all your job files here export * from "./example"; ``` -## Additonal Job Definitions +## Creating the API Route -You can define more job definitions by creating additional files in the `Jobs` folder and exporting them in `index` file. +To establish an API route for interacting with Trigger.dev, follow these steps based on your project's file type and structure -For example, in `index.(ts/js)`, you can export other job files like this: +1. Create a new file named `trigger.ts` within the `pages/api/` directory. +2. Add the following code to `trigger.ts`: -```typescript -// import all your job files here +```typescript src/pages/api/trigger.ts +import { createAstroRoute } from "@trigger.dev/astro"; +//you may need to update this path to point at your trigger.ts file +import { client } from "../../trigger"; -export * from "./examples"; -export * from "./other-job-file"; +//import your jobs, this could be different depending on your project structure +import "../../jobs"; + +export const prerender = false; +export const { POST } = createAstroRoute(client); ``` ## Adding Configuration to `package.json` @@ -179,7 +131,7 @@ Inside the `package.json` file, add the following configuration under the root o ```json "trigger.dev": { - "endpointId": "my-app" + "endpointId": "my-astro-app" } ``` @@ -193,12 +145,25 @@ Your `package.json` file might look something like this: // ... other dependencies }, "trigger.dev": { - "endpointId": "my-app" + "endpointId": "my-astro-app" } } ``` -Replace **"my-app"** with the appropriate identifier you used during the step for creating the Trigger Client. +Replace **"my-astro-app"** with the appropriate identifier you used during the step for creating the `TriggerClient`. + +## Additonal Job Definitions + +You can define more job definitions by creating additional files in the `jobs` folder and exporting them in `index` file. + +For example, in `index.ts`, you can export other job files like this: + +```typescript +// import all your job files here + +export * from "./examples"; +export * from "./other-job-file"; +``` ## Running @@ -229,24 +194,27 @@ In a **_separate terminal window or tab_** run: ```bash npm -npx @trigger.dev/cli@latest dev +npx @trigger.dev/cli@latest dev --port 4321 ``` ```bash pnpm -pnpm dlx @trigger.dev/cli@latest dev +pnpm dlx @trigger.dev/cli@latest dev --port 4321 ``` ```bash yarn -yarn dlx @trigger.dev/cli@latest dev +yarn dlx @trigger.dev/cli@latest dev --port 4321 ```
- You can optionally pass the port if you're not running on 3000 by adding - `--port 4321` to the end + Astro by default runs on port 4321. You can optionally pass the hostname if you're not running on localhost by adding `--hostname `. Example, in case your Astro app is running on 0.0.0.0: `--hostname 0.0.0.0`. + +### Next Steps + +You should now see your example job in the Trigger.dev dashboard. You can now create additional jobs and use the Trigger.dev dashboard to test them. From c2ce707f3d1d453a050dff613b4cd9fc198dd8c5 Mon Sep 17 00:00:00 2001 From: D-K-P Date: Mon, 18 Sep 2023 13:54:53 +0100 Subject: [PATCH 24/95] Fixed cal.com link --- docs/documentation/introduction.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/documentation/introduction.mdx b/docs/documentation/introduction.mdx index 0a962b24782..69527d8ce8f 100644 --- a/docs/documentation/introduction.mdx +++ b/docs/documentation/introduction.mdx @@ -59,7 +59,11 @@ We'd love to hear from you or give you a hand getting started. Here are some way > Follow us on Twitter to get the latest updates and news. - + Arrange a call with one of the founders. We can help answer questions, build API Integrations for you and give 1-on-1 help building your first Job. From 4edc7112abd014c1ea37983127a7982e78695823 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 18 Sep 2023 22:20:41 +0100 Subject: [PATCH 25/95] Upgrade to the latest remix (pre v2) --- apps/webapp/package.json | 16 +- package.json | 8 +- pnpm-lock.yaml | 1034 ++++++++++++-------------------------- 3 files changed, 323 insertions(+), 735 deletions(-) diff --git a/apps/webapp/package.json b/apps/webapp/package.json index 427e378ce21..657d0618131 100644 --- a/apps/webapp/package.json +++ b/apps/webapp/package.json @@ -54,11 +54,11 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.5", - "@remix-run/express": "1.19.2-pre.0", - "@remix-run/node": "1.19.2-pre.0", - "@remix-run/react": "1.19.2-pre.0", - "@remix-run/serve": "1.19.2-pre.0", - "@remix-run/server-runtime": "1.19.2-pre.0", + "@remix-run/express": "1.19.3", + "@remix-run/node": "1.19.3", + "@remix-run/react": "1.19.3", + "@remix-run/serve": "1.19.3", + "@remix-run/server-runtime": "1.19.3", "@team-plain/typescript-sdk": "^2.2.0", "@trigger.dev/companyicons": "^1.5.14", "@trigger.dev/database": "workspace:*", @@ -114,9 +114,9 @@ "zod-error": "1.5.0" }, "devDependencies": { - "@remix-run/dev": "1.19.2-pre.0", - "@remix-run/eslint-config": "1.19.2-pre.0", - "@remix-run/testing": "^1.19.2-pre.0", + "@remix-run/dev": "1.19.3", + "@remix-run/eslint-config": "1.19.3", + "@remix-run/testing": "^1.19.3", "@storybook/addon-backgrounds": "^7.0.7", "@storybook/addon-docs": "^7.0.12", "@storybook/addon-essentials": "^7.0.7", diff --git a/package.json b/package.json index 106934b18c8..663f38133b7 100644 --- a/package.json +++ b/package.json @@ -59,17 +59,15 @@ "turbo": "^1.10.3", "vite": "^4.1.1", "vite-tsconfig-paths": "^4.0.5", - "vitest": "^0.28.4" - }, - "packageManager": "pnpm@7.18.1", - "dependencies": { + "vitest": "^0.28.4", "@changesets/cli": "2.26.2", "@remix-run/changelog-github": "^0.0.5", "node-fetch": "2.6.x" }, + "packageManager": "pnpm@7.18.1", "pnpm": { "patchedDependencies": { "@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch" } } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6dc357ca8f..1991f016eee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,13 +29,11 @@ importers: vite: ^4.1.1 vite-tsconfig-paths: ^4.0.5 vitest: ^0.28.4 - dependencies: - '@changesets/cli': 2.26.2 - '@remix-run/changelog-github': 0.0.5 - node-fetch: 2.6.7 devDependencies: + '@changesets/cli': 2.26.2 '@manypkg/cli': 0.19.2 '@playwright/test': 1.37.0 + '@remix-run/changelog-github': 0.0.5 '@tailwindcss/forms': 0.5.3_tailwindcss@3.1.8 '@tailwindcss/typography': 0.5.9_tailwindcss@3.1.8 '@trigger.dev/cli': link:packages/cli @@ -43,6 +41,7 @@ importers: '@types/node': 18.17.1 autoprefixer: 10.4.13_postcss@8.4.21 eslint-config-custom: link:config-packages/eslint-config-custom + node-fetch: 2.6.7 postcss: 8.4.21 prettier: 3.0.0 tailwindcss: 3.1.8_postcss@8.4.21 @@ -79,14 +78,14 @@ importers: '@radix-ui/react-switch': ^1.0.3 '@radix-ui/react-tabs': ^1.0.3 '@radix-ui/react-tooltip': ^1.0.5 - '@remix-run/dev': 1.19.2-pre.0 - '@remix-run/eslint-config': 1.19.2-pre.0 - '@remix-run/express': 1.19.2-pre.0 - '@remix-run/node': 1.19.2-pre.0 - '@remix-run/react': 1.19.2-pre.0 - '@remix-run/serve': 1.19.2-pre.0 - '@remix-run/server-runtime': 1.19.2-pre.0 - '@remix-run/testing': ^1.19.2-pre.0 + '@remix-run/dev': 1.19.3 + '@remix-run/eslint-config': 1.19.3 + '@remix-run/express': 1.19.3 + '@remix-run/node': 1.19.3 + '@remix-run/react': 1.19.3 + '@remix-run/serve': 1.19.3 + '@remix-run/server-runtime': 1.19.3 + '@remix-run/testing': ^1.19.3 '@storybook/addon-backgrounds': ^7.0.7 '@storybook/addon-docs': ^7.0.12 '@storybook/addon-essentials': ^7.0.7 @@ -222,11 +221,11 @@ importers: '@radix-ui/react-switch': 1.0.3_daadhm4ohxobgnrt365as5bhny '@radix-ui/react-tabs': 1.0.3_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-tooltip': 1.0.5_bwbutfx4xj25dewzmxso6o3wga - '@remix-run/express': 1.19.2-pre.0_express@4.18.2 - '@remix-run/node': 1.19.2-pre.0 - '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y - '@remix-run/serve': 1.19.2-pre.0 - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/express': 1.19.3_express@4.18.2 + '@remix-run/node': 1.19.3 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/serve': 1.19.3 + '@remix-run/server-runtime': 1.19.3 '@team-plain/typescript-sdk': 2.2.0 '@trigger.dev/companyicons': 1.5.14_biqbaboplfbrettd7655fr4n2y '@trigger.dev/core': link:../../packages/core @@ -264,11 +263,11 @@ importers: react-hot-toast: 2.4.0_biqbaboplfbrettd7655fr4n2y react-hotkeys-hook: 3.4.7_biqbaboplfbrettd7655fr4n2y react-use: 17.4.0_biqbaboplfbrettd7655fr4n2y - remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y - remix-auth-email-link: 1.5.2_xmjsiulzsxcc3znmuhq3turs2q - remix-auth-github: 1.3.0_xmjsiulzsxcc3znmuhq3turs2q - remix-typedjson: 0.1.7_bhtgrpeaoe6kbm4hb4gzl6x7c4 - remix-utils: 6.0.0_c5pntwu5f7mrfmmvuwtiprk4cy + remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq + remix-auth-email-link: 1.5.2_ol6qopr3fd43y6cb3yt2sxcwqm + remix-auth-github: 1.3.0_ol6qopr3fd43y6cb3yt2sxcwqm + remix-typedjson: 0.1.7_kxjca5vfcd6kjtdv6u76olr43m + remix-utils: 6.0.0_bw2af4wyg3wd47z5c445wg6duq semver: 7.5.0 simple-oauth2: 5.0.0 simplur: 3.0.1 @@ -281,9 +280,9 @@ importers: zod: 3.21.4 zod-error: 1.5.0 devDependencies: - '@remix-run/dev': 1.19.2-pre.0_36n2i74sizt32vwpdxc4husnkq - '@remix-run/eslint-config': 1.19.2-pre.0_ol4nhuzbuflsbzk2mijpqykzba - '@remix-run/testing': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/dev': 1.19.3_xl5hyxw6pjyufz5gmv27wza56y + '@remix-run/eslint-config': 1.19.3_ol4nhuzbuflsbzk2mijpqykzba + '@remix-run/testing': 1.19.3_biqbaboplfbrettd7655fr4n2y '@storybook/addon-backgrounds': 7.0.9_biqbaboplfbrettd7655fr4n2y '@storybook/addon-docs': 7.0.12_biqbaboplfbrettd7655fr4n2y '@storybook/addon-essentials': 7.0.9_biqbaboplfbrettd7655fr4n2y @@ -351,7 +350,7 @@ importers: devDependencies: eslint: 8.31.0 eslint-config-prettier: 8.6.0_eslint@8.31.0 - eslint-config-turbo: 1.10.13_eslint@8.31.0 + eslint-config-turbo: 1.10.14_eslint@8.31.0 eslint-plugin-react: 7.31.8_eslint@8.31.0 typescript: 4.9.4 @@ -1415,11 +1414,6 @@ packages: '@babel/highlight': 7.22.13 chalk: 2.4.2 - /@babel/compat-data/7.21.7: - resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/compat-data/7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -1503,28 +1497,28 @@ packages: '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.45.0 eslint-visitor-keys: 2.1.0 - semver: 6.3.0 + semver: 6.3.1 dev: true - /@babel/eslint-parser/7.21.8_mxgwiyfjuazeomuuf56n24ufpy: + /@babel/eslint-parser/7.21.8_6ukzja5aifaykyuthozjethhji: resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.31.0 eslint-visitor-keys: 2.1.0 - semver: 6.3.0 + semver: 6.3.1 dev: true /@babel/generator/7.21.5: resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.17 '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 @@ -1560,20 +1554,6 @@ packages: '@babel/types': 7.22.17 dev: true - /@babel/helper-compilation-targets/7.21.5_@babel+core@7.20.12: - resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - /@babel/helper-compilation-targets/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} @@ -1588,20 +1568,6 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-compilation-targets/7.21.5_@babel+core@7.22.17: - resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.17 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - /@babel/helper-compilation-targets/7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -1886,11 +1852,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-plugin-utils/7.21.5: - resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-plugin-utils/7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} @@ -1998,11 +1959,6 @@ packages: resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option/7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -2053,7 +2009,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.17 dev: true /@babel/parser/7.22.16: @@ -2132,6 +2088,7 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2147,6 +2104,7 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2162,6 +2120,7 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2177,6 +2136,7 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2190,6 +2150,7 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2203,6 +2164,7 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2216,6 +2178,7 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2230,6 +2193,7 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2244,6 +2208,7 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2258,6 +2223,7 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2269,6 +2235,7 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2280,6 +2247,7 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2291,6 +2259,7 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2302,6 +2271,7 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2313,6 +2283,7 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.22.17: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2324,6 +2295,7 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2335,6 +2307,7 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2346,6 +2319,7 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2357,6 +2331,7 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2368,6 +2343,7 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2379,6 +2355,7 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2390,6 +2367,7 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2401,6 +2379,7 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2412,6 +2391,7 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2423,6 +2403,7 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2434,6 +2415,7 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2445,6 +2427,7 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2456,6 +2439,7 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2470,6 +2454,7 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2484,6 +2469,7 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2498,6 +2484,7 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2509,6 +2496,7 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2520,6 +2508,7 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2531,6 +2520,7 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2543,6 +2533,7 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2555,6 +2546,7 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2567,6 +2559,7 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2580,6 +2573,7 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2593,6 +2587,7 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2606,6 +2601,7 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2621,6 +2617,7 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2636,6 +2633,7 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2651,6 +2649,7 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2662,6 +2661,7 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2673,6 +2673,7 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2931,15 +2932,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.18.6: - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} @@ -2960,36 +2952,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.22.17: - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.21.8: - resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - dev: true - - /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.22.17: - resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.21.5 - dev: true - /@babel/plugin-syntax-jsx/7.22.5: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} @@ -2999,16 +2961,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.21.8: - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.17: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} @@ -3240,16 +3192,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript/7.21.4_@babel+core@7.21.8: - resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - dev: true - /@babel/plugin-syntax-typescript/7.21.4_@babel+core@7.22.17: resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} engines: {node: '>=6.9.0'} @@ -3257,7 +3199,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-plugin-utils': 7.22.5 dev: true /@babel/plugin-transform-arrow-functions/7.21.5_@babel+core@7.20.12: @@ -4070,16 +4012,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.21.8: - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} engines: {node: '>=6.9.0'} @@ -4099,16 +4031,6 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15 dev: true - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.21.8: - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.21.8 - dev: true - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} @@ -4119,19 +4041,6 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 dev: true - /@babel/plugin-transform-react-jsx/7.20.7: - resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6 - '@babel/types': 7.20.7 - dev: true - /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} engines: {node: '>=6.9.0'} @@ -4160,20 +4069,6 @@ packages: '@babel/types': 7.20.7 dev: true - /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.22.17: - resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.22.17 - '@babel/types': 7.20.7 - dev: true - /@babel/plugin-transform-react-jsx/7.22.15: resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -4187,20 +4082,6 @@ packages: '@babel/types': 7.22.17 dev: true - /@babel/plugin-transform-react-jsx/7.22.15_@babel+core@7.21.8: - resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.21.8 - '@babel/types': 7.22.17 - dev: true - /@babel/plugin-transform-react-jsx/7.22.15_@babel+core@7.22.17: resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -4224,17 +4105,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.21.8: - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} engines: {node: '>=6.9.0'} @@ -4462,21 +4332,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.21.8: - resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.21.8 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.22.17: resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} engines: {node: '>=6.9.0'} @@ -4561,11 +4416,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.7 + '@babel/compat-data': 7.22.9 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 @@ -4632,12 +4487,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.20.12 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 - '@babel/types': 7.21.5 + '@babel/types': 7.22.17 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 core-js-compat: 3.27.1 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -4648,11 +4503,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.7 + '@babel/compat-data': 7.22.9 '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.21.8 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.21.8 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.21.8 @@ -4719,12 +4574,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.21.8 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.21.8 '@babel/preset-modules': 0.1.5_@babel+core@7.21.8 - '@babel/types': 7.21.5 + '@babel/types': 7.22.17 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.8 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.8 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.8 core-js-compat: 3.27.1 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -4735,11 +4590,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.21.7 + '@babel/compat-data': 7.22.9 '@babel/core': 7.22.17 - '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.22.17 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.22.17 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.22.17 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.22.17 @@ -4806,12 +4661,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.22.17 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.22.17 '@babel/preset-modules': 0.1.5_@babel+core@7.22.17 - '@babel/types': 7.21.5 + '@babel/types': 7.22.17 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.22.17 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.22.17 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.22.17 core-js-compat: 3.27.1 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -4884,29 +4739,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-transform-react-display-name': 7.18.6 - '@babel/plugin-transform-react-jsx': 7.20.7 + '@babel/plugin-transform-react-jsx': 7.22.15 '@babel/plugin-transform-react-jsx-development': 7.18.6 '@babel/plugin-transform-react-pure-annotations': 7.18.6 dev: true - /@babel/preset-react/7.18.6_@babel+core@7.21.8: - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.21.8 - '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.21.8 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.21.8 - '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.21.8 - dev: true - /@babel/preset-react/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} @@ -4914,30 +4754,14 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.22.17 - '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.22.17 + '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.22.17 '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.22.17 dev: true - /@babel/preset-typescript/7.21.5_@babel+core@7.21.8: - resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8 - '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.21.8 - '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-typescript/7.21.5_@babel+core@7.22.17: resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} engines: {node: '>=6.9.0'} @@ -4945,9 +4769,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.17 '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.22.17 '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.22.17 transitivePeerDependencies: @@ -5001,14 +4825,14 @@ packages: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.8 - '@babel/types': 7.21.5 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.17 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -5082,7 +4906,7 @@ packages: prettier: 2.8.8 resolve-from: 5.0.0 semver: 7.5.4 - dev: false + dev: true /@changesets/assemble-release-plan/5.2.4_3wuhjtl4hjck4itk3w32z4cd5u: resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} @@ -5093,14 +4917,14 @@ packages: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 semver: 7.5.4 - dev: false + dev: true patched: true /@changesets/changelog-git/0.1.14: resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} dependencies: '@changesets/types': 5.2.1 - dev: false + dev: true /@changesets/cli/2.26.2: resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} @@ -5139,7 +4963,7 @@ packages: spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.1.6 - dev: false + dev: true /@changesets/config/2.3.1: resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} @@ -5151,13 +4975,13 @@ packages: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 - dev: false + dev: true /@changesets/errors/0.1.4: resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} dependencies: extendable-error: 0.1.7 - dev: false + dev: true /@changesets/get-dependents-graph/1.3.6: resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} @@ -5167,7 +4991,7 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.5.4 - dev: false + dev: true /@changesets/get-github-info/0.5.2: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} @@ -5176,7 +5000,7 @@ packages: node-fetch: 2.6.12 transitivePeerDependencies: - encoding - dev: false + dev: true /@changesets/get-release-plan/3.0.17: resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} @@ -5188,11 +5012,11 @@ packages: '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - dev: false + dev: true /@changesets/get-version-range-type/0.3.2: resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} - dev: false + dev: true /@changesets/git/2.0.0: resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} @@ -5204,20 +5028,20 @@ packages: is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 - dev: false + dev: true /@changesets/logger/0.0.5: resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} dependencies: chalk: 2.4.2 - dev: false + dev: true /@changesets/parse/0.3.16: resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} dependencies: '@changesets/types': 5.2.1 js-yaml: 3.14.1 - dev: false + dev: true /@changesets/pre/1.0.14: resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} @@ -5227,7 +5051,7 @@ packages: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - dev: false + dev: true /@changesets/read/0.5.9: resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} @@ -5240,14 +5064,15 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - dev: false + dev: true /@changesets/types/4.1.0: resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: true /@changesets/types/5.2.1: resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} - dev: false + dev: true /@changesets/write/0.2.3: resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} @@ -5257,7 +5082,7 @@ packages: fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 - dev: false + dev: true /@codemirror/autocomplete/6.4.0_czcfkg2f66rxeiodoti7r2gulu: resolution: {integrity: sha512-HLF2PnZAm1s4kGs30EiqKMgD7XsYaQ0XJnMR0rofEWQ5t5D60SfqpDIkIh1ze5tiEbyUWm8+VJ6W1/erVvBMIA==} @@ -7354,6 +7179,7 @@ packages: '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 + dev: true /@manypkg/get-packages/1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} @@ -7364,6 +7190,7 @@ packages: fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 + dev: true /@mdx-js/react/2.3.0_react@18.2.0: resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} @@ -10049,36 +9876,36 @@ packages: dotenv: 8.6.0 transitivePeerDependencies: - encoding - dev: false + dev: true /@remix-run/css-bundle/1.19.3: resolution: {integrity: sha512-XccfuPmTdtXT+Kx7Df62cyk8d2I6DrHIB02uDyIGOTq8lPlMXznErMW14asVcbGOV5ieAOvnch/pUJrsKoWRmw==} engines: {node: '>=14.0.0'} dev: false - /@remix-run/dev/1.19.2-pre.0_36n2i74sizt32vwpdxc4husnkq: - resolution: {integrity: sha512-8s7g8jLueKcIr5Gb7qvZRJVzfHx2KqyApGYW55LrQ63kNwZwuKHglYSMoaQGB4xUhX2cfmzW7pIcunfbh3SNyA==} + /@remix-run/dev/1.19.3_@remix-run+serve@1.19.3: + resolution: {integrity: sha512-Yh733OI0AxR7QbPaJbocujxSF1S5CToDmfZnmv5SlTTIXEw5KfnbCceHy9qhUp0nrkz2YT7pd1zbTEVYIi/Vug==} engines: {node: '>=14.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^1.19.2-pre.0 + '@remix-run/serve': ^1.19.3 peerDependenciesMeta: '@remix-run/serve': optional: true dependencies: - '@babel/core': 7.21.8 - '@babel/generator': 7.21.5 - '@babel/parser': 7.21.8 - '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 - '@babel/preset-env': 7.21.5_@babel+core@7.21.8 - '@babel/preset-typescript': 7.21.5_@babel+core@7.21.8 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/core': 7.22.17 + '@babel/generator': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.17 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 + '@babel/preset-env': 7.21.5_@babel+core@7.22.17 + '@babel/preset-typescript': 7.21.5_@babel+core@7.22.17 + '@babel/traverse': 7.22.17 + '@babel/types': 7.22.17 '@npmcli/package-json': 2.0.0 - '@remix-run/serve': 1.19.2-pre.0 - '@remix-run/server-runtime': 1.19.2-pre.0 - '@vanilla-extract/integration': 6.2.1_@types+node@18.11.18 + '@remix-run/serve': 1.19.3 + '@remix-run/server-runtime': 1.19.3 + '@vanilla-extract/integration': 6.2.1 arg: 5.0.2 cacache: 15.3.0 chalk: 4.1.2 @@ -10098,16 +9925,16 @@ packages: json5: 2.2.3 lodash: 4.17.21 lodash.debounce: 4.0.8 - minimatch: 9.0.0 + minimatch: 9.0.3 node-fetch: 2.6.12 ora: 5.4.1 picocolors: 1.0.0 picomatch: 2.3.1 pidtree: 0.6.0 - postcss: 8.4.27 - postcss-discard-duplicates: 5.1.0_postcss@8.4.27 - postcss-load-config: 4.0.1_xf4uokkt3yp55pilbqb2sbk4eu - postcss-modules: 6.0.0_postcss@8.4.27 + postcss: 8.4.29 + postcss-discard-duplicates: 5.1.0_postcss@8.4.29 + postcss-load-config: 4.0.1_postcss@8.4.29 + postcss-modules: 6.0.0_postcss@8.4.29 prettier: 2.8.8 pretty-ms: 7.0.1 proxy-agent: 6.3.0 @@ -10137,7 +9964,7 @@ packages: - utf-8-validate dev: true - /@remix-run/dev/1.19.3_@remix-run+serve@1.19.3: + /@remix-run/dev/1.19.3_xl5hyxw6pjyufz5gmv27wza56y: resolution: {integrity: sha512-Yh733OI0AxR7QbPaJbocujxSF1S5CToDmfZnmv5SlTTIXEw5KfnbCceHy9qhUp0nrkz2YT7pd1zbTEVYIi/Vug==} engines: {node: '>=14.0.0'} hasBin: true @@ -10159,7 +9986,7 @@ packages: '@npmcli/package-json': 2.0.0 '@remix-run/serve': 1.19.3 '@remix-run/server-runtime': 1.19.3 - '@vanilla-extract/integration': 6.2.1 + '@vanilla-extract/integration': 6.2.1_@types+node@18.11.18 arg: 5.0.2 cacache: 15.3.0 chalk: 4.1.2 @@ -10187,7 +10014,7 @@ packages: pidtree: 0.6.0 postcss: 8.4.29 postcss-discard-duplicates: 5.1.0_postcss@8.4.29 - postcss-load-config: 4.0.1_postcss@8.4.29 + postcss-load-config: 4.0.1_ntcifew6f27c4l7dh5q6i7owpq postcss-modules: 6.0.0_postcss@8.4.29 prettier: 2.8.8 pretty-ms: 7.0.1 @@ -10218,42 +10045,6 @@ packages: - utf-8-validate dev: true - /@remix-run/eslint-config/1.19.2-pre.0_ol4nhuzbuflsbzk2mijpqykzba: - resolution: {integrity: sha512-DnMiKi5B2ZWehcVjm0fY1KnE+/oqphnLb0Pq2ueac16WcBqW1S6HnrX4bv+6ZXuAqRVcv0eooOem5uJTx0DWfw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^8.0.0 - react: ^17.0.0 || ^18.0.0 - typescript: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@babel/core': 7.21.8 - '@babel/eslint-parser': 7.21.8_mxgwiyfjuazeomuuf56n24ufpy - '@babel/preset-react': 7.18.6_@babel+core@7.21.8 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.6_bhjpu5ld5qmewts22wsycix4mi - '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_xfsrrykzxa74jzzdrhgdfm2jz4 - eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 - eslint-plugin-jest: 26.9.0_x6daaykndggqmizjmaubfxsrba - eslint-plugin-jest-dom: 4.0.3_eslint@8.31.0 - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.31.0 - eslint-plugin-node: 11.1.0_eslint@8.31.0 - eslint-plugin-react: 7.32.2_eslint@8.31.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 - eslint-plugin-testing-library: 5.11.0_iukboom6ndih5an6iafl45j2fe - react: 18.2.0 - typescript: 4.9.4 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - jest - - supports-color - dev: true - /@remix-run/eslint-config/1.19.3_iyrjzpeh7xaqnslyy6ezqi7i5u: resolution: {integrity: sha512-8yvPtsJj1hBKp6ypTTDhHmJ2ftoPmBV1xPPOIqhMLDQ1fwmzocwnkz9RHTeMYkdNSzUuqGnpGaMTHgrT3WfckQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10290,14 +10081,41 @@ packages: - supports-color dev: true - /@remix-run/express/1.19.2-pre.0_express@4.18.2: - resolution: {integrity: sha512-TJij9DkC4fnls9q1dz8eJ+IjUKdrwd2edz7TLxTb/To/3YUyxJLz7pom3fOQHZ7L0Ynwi3TuEcmnSlkrkztWjw==} - engines: {node: '>=14.0.0'} + /@remix-run/eslint-config/1.19.3_ol4nhuzbuflsbzk2mijpqykzba: + resolution: {integrity: sha512-8yvPtsJj1hBKp6ypTTDhHmJ2ftoPmBV1xPPOIqhMLDQ1fwmzocwnkz9RHTeMYkdNSzUuqGnpGaMTHgrT3WfckQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - express: ^4.17.1 + eslint: ^8.0.0 + react: ^17.0.0 || ^18.0.0 + typescript: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@remix-run/node': 1.19.2-pre.0 - express: 4.18.2 + '@babel/core': 7.22.17 + '@babel/eslint-parser': 7.21.8_6ukzja5aifaykyuthozjethhji + '@babel/preset-react': 7.18.6_@babel+core@7.22.17 + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/eslint-plugin': 5.59.6_bhjpu5ld5qmewts22wsycix4mi + '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe + eslint: 8.31.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.5_xfsrrykzxa74jzzdrhgdfm2jz4 + eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 + eslint-plugin-jest: 26.9.0_x6daaykndggqmizjmaubfxsrba + eslint-plugin-jest-dom: 4.0.3_eslint@8.31.0 + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.31.0 + eslint-plugin-node: 11.1.0_eslint@8.31.0 + eslint-plugin-react: 7.32.2_eslint@8.31.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 + eslint-plugin-testing-library: 5.11.0_iukboom6ndih5an6iafl45j2fe + react: 18.2.0 + typescript: 4.9.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true /@remix-run/express/1.19.3_express@4.18.2: resolution: {integrity: sha512-jeWZ9xFyaarKSbpN/sQWx53QApGs16IiB8XC7CkOAEVDtLfOhXkJ9jOZNScOFUn6JXPx2oAwBBRRdbwOmryScQ==} @@ -10308,20 +10126,6 @@ packages: '@remix-run/node': 1.19.3 express: 4.18.2 - /@remix-run/node/1.19.2-pre.0: - resolution: {integrity: sha512-/Isbggw/fSbFeTy0hoL8gRwS8FCmrFyi6q3zc8rV8s7UsV70VzB+9QzWQHanCMveZFFT1FtkoON8s/u0vT1Wvw==} - engines: {node: '>=14.0.0'} - dependencies: - '@remix-run/server-runtime': 1.19.2-pre.0 - '@remix-run/web-fetch': 4.3.6 - '@remix-run/web-file': 3.0.3 - '@remix-run/web-stream': 1.0.4 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - cookie-signature: 1.2.0 - source-map-support: 0.5.21 - stream-slice: 0.1.2 - /@remix-run/node/1.19.3: resolution: {integrity: sha512-z5qrVL65xLXIUpU4mkR4MKlMeKARLepgHAk4W5YY3IBXOreRqOGUC70POViYmY7x38c2Ia1NwqL80H+0h7jbMw==} engines: {node: '>=14.0.0'} @@ -10336,18 +10140,6 @@ packages: source-map-support: 0.5.21 stream-slice: 0.1.2 - /@remix-run/react/1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-eO8HnotwHwqfazyXol71W1mMZZ2lE/zVt4xpAst7UjVvOhmXbolTUdK4Hru8Q0SDuaE53feux3KsFgBvug/qpg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@remix-run/router': 1.7.2 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y - /@remix-run/react/1.19.3_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-iP37MZ+oG1n4kv4rX77pKT/knra51lNwKo5tinPPF0SuNJhF3+XjWo5nwEjvisKTXLZ/OHeicinhgX2JHHdDvA==} engines: {node: '>=14.0.0'} @@ -10359,25 +10151,11 @@ packages: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y - dev: false /@remix-run/router/1.7.2: resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} engines: {node: '>=14'} - /@remix-run/serve/1.19.2-pre.0: - resolution: {integrity: sha512-5rVnhsNO5X1lKJCcWPmOYAl30XuNuUpbAFPpUC654YqMwuulFSnY879jAFPUzeIf4Rarmb50LLkEwizcRk8vuw==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@remix-run/express': 1.19.2-pre.0_express@4.18.2 - '@remix-run/node': 1.19.2-pre.0 - compression: 1.7.4 - express: 4.18.2 - morgan: 1.10.0 - transitivePeerDependencies: - - supports-color - /@remix-run/serve/1.19.3: resolution: {integrity: sha512-RUVEy7EBYvHO1hIuyVQJyIYZeFfXecC+Uaw6GvZscLywIGnhcAj+5dpeK6HVayNuV4kKLvBp0F4ZGHbwW1oWaA==} engines: {node: '>=14.0.0'} @@ -10392,17 +10170,6 @@ packages: transitivePeerDependencies: - supports-color - /@remix-run/server-runtime/1.19.2-pre.0: - resolution: {integrity: sha512-e7qZ5z/Yj8jYw7uJy5LqTV33RPGN96HymFYZpDwWuI9rffOmyO9tt5xcfc44g18G5lg36449pDjhQlSLHc1a8A==} - engines: {node: '>=14.0.0'} - dependencies: - '@remix-run/router': 1.7.2 - '@types/cookie': 0.4.1 - '@web3-storage/multipart-parser': 1.0.0 - cookie: 0.4.2 - set-cookie-parser: 2.5.1 - source-map: 0.7.4 - /@remix-run/server-runtime/1.19.3: resolution: {integrity: sha512-KzQ+htUsKqpBgKE2tWo7kIIGy3MyHP58Io/itUPvV+weDjApwr9tQr9PZDPA3yAY6rAzLax7BU0NMSYCXWFY5A==} engines: {node: '>=14.0.0'} @@ -10414,14 +10181,14 @@ packages: set-cookie-parser: 2.5.1 source-map: 0.7.4 - /@remix-run/testing/1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-QK8nZKsgFOXZez0FmbINTgNfsbwKuBFLYQTUt2EtvJ/cNTfReiVyXxjG7U320Ghb98E5/WZS2pMpHbm3U+jcbg==} + /@remix-run/testing/1.19.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-qO485TWDxHUnWuWX8PotBdq4xa5W3WUQ+iYvoWNCyILw6iJG0WeBTgd2qN44GFEOE1Hd80RqDXVuAlTkG33rCA==} engines: {node: '>=14.0.0'} peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@remix-run/node': 1.19.2-pre.0 - '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/node': 1.19.3 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y '@remix-run/router': 1.7.2 react: 18.2.0 react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y @@ -12703,7 +12470,7 @@ packages: resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} dependencies: ci-info: 3.8.0 - dev: false + dev: true /@types/is-stream/1.1.0: resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==} @@ -12853,7 +12620,7 @@ packages: /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: false + dev: true /@types/morgan/1.9.4: resolution: {integrity: sha512-cXoc4k+6+YAllH3ZHmx4hf7La1dzUk6keTR4bF4b4Sc0mZxU/zK4wO7l+ZzezXm/jkYj/qC+uYGZrarZdIVvyQ==} @@ -13018,6 +12785,7 @@ packages: /@types/semver/7.5.1: resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} + dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} @@ -13560,8 +13328,8 @@ packages: /@vanilla-extract/integration/6.2.1: resolution: {integrity: sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==} dependencies: - '@babel/core': 7.21.8 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 + '@babel/core': 7.22.17 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 '@vanilla-extract/babel-plugin-debug-ids': 1.0.2 '@vanilla-extract/css': 1.11.0 esbuild: 0.17.6 @@ -13569,9 +13337,9 @@ packages: find-up: 5.0.0 javascript-stringify: 2.1.0 lodash: 4.17.21 - mlly: 1.1.1 + mlly: 1.4.2 outdent: 0.8.0 - vite: 4.1.4 + vite: 4.4.9 vite-node: 0.28.5 transitivePeerDependencies: - '@types/node' @@ -13587,8 +13355,8 @@ packages: /@vanilla-extract/integration/6.2.1_@types+node@18.11.18: resolution: {integrity: sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==} dependencies: - '@babel/core': 7.21.8 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 + '@babel/core': 7.22.17 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 '@vanilla-extract/babel-plugin-debug-ids': 1.0.2 '@vanilla-extract/css': 1.11.0 esbuild: 0.17.6 @@ -13596,9 +13364,9 @@ packages: find-up: 5.0.0 javascript-stringify: 2.1.0 lodash: 4.17.21 - mlly: 1.1.1 + mlly: 1.4.2 outdent: 0.8.0 - vite: 4.1.4_@types+node@18.11.18 + vite: 4.4.9_@types+node@18.11.18 vite-node: 0.28.5_@types+node@18.11.18 transitivePeerDependencies: - '@types/node' @@ -14032,7 +13800,7 @@ packages: /ansi-colors/4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: false + dev: true /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -14271,7 +14039,7 @@ packages: /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: false + dev: true /arrify/2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} @@ -14781,7 +14549,7 @@ packages: engines: {node: '>=4'} dependencies: is-windows: 1.0.2 - dev: false + dev: true /big-integer/1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} @@ -14931,7 +14699,7 @@ packages: resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} dependencies: wcwidth: 1.0.1 - dev: false + dev: true /broadcast-channel/3.7.0: resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} @@ -15268,11 +15036,12 @@ packages: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: false + dev: true /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: true /camelcase/6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} @@ -15484,6 +15253,7 @@ packages: /cli-spinners/2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} + dev: false /cli-spinners/2.9.1: resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} @@ -15524,7 +15294,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: false + dev: true /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -15921,6 +15691,7 @@ packages: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 + dev: true /cross-spawn/6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} @@ -16037,15 +15808,15 @@ packages: /csv-generate/3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - dev: false + dev: true /csv-parse/4.16.3: resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - dev: false + dev: true /csv-stringify/5.6.5: resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - dev: false + dev: true /csv/5.5.3: resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} @@ -16055,7 +15826,7 @@ packages: csv-parse: 4.16.3 csv-stringify: 5.6.5 stream-transform: 2.1.3 - dev: false + dev: true /cuid/2.1.8: resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} @@ -16086,7 +15857,7 @@ packages: /dataloader/1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - dev: false + dev: true /date-fns/2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} @@ -16179,12 +15950,12 @@ packages: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: false + dev: true /decamelize/1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - dev: false + dev: true /decamelize/4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -16385,6 +16156,7 @@ packages: /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + dev: true /detect-libc/2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} @@ -16585,7 +16357,7 @@ packages: /dotenv/8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - dev: false + dev: true /dset/3.1.2: resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} @@ -16701,7 +16473,7 @@ packages: engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 - dev: false + dev: true /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -17409,13 +17181,13 @@ packages: eslint: 8.31.0 dev: true - /eslint-config-turbo/1.10.13_eslint@8.31.0: - resolution: {integrity: sha512-Ffa0SxkRCPMtfUX/HDanEqsWoLwZTQTAXO9W4IsOtycb2MzJDrVcLmoFW5sMwCrg7gjqbrC4ZJoD+1SPPzIVqg==} + /eslint-config-turbo/1.10.14_eslint@8.31.0: + resolution: {integrity: sha512-ZeB+IcuFXy1OICkLuAplVa0euoYbhK+bMEQd0nH9+Lns18lgZRm33mVz/iSoH9VdUzl/1ZmFmoK+RpZc+8R80A==} peerDependencies: eslint: '>6.6.0' dependencies: eslint: 8.31.0 - eslint-plugin-turbo: 1.10.13_eslint@8.31.0 + eslint-plugin-turbo: 1.10.14_eslint@8.31.0 dev: true /eslint-doc-generator/1.4.3_eslint@8.45.0: @@ -17447,8 +17219,8 @@ packages: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.11.0 - resolve: 1.22.2 + is-core-module: 2.13.0 + resolve: 1.22.4 transitivePeerDependencies: - supports-color @@ -17466,7 +17238,7 @@ packages: eslint-plugin-import: 2.27.5_dclhgbuu3rymxzhsuuyv72p2ym get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17490,7 +17262,7 @@ packages: eslint-plugin-import: 2.27.5_xpt3ce3kmhzhmuk3dcuwe6u2pe get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17513,7 +17285,7 @@ packages: eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17665,12 +17437,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_hhwxwo5vg2mzr5fq3eei7kqaye has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.2 - semver: 6.3.0 + resolve: 1.22.4 + semver: 6.3.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17698,12 +17470,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_pxhjym6joapyaysotvqp5q6kau has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.2 - semver: 6.3.0 + resolve: 1.22.4 + semver: 6.3.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17731,12 +17503,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_mcdyrqs6peaairrn7md524c74a has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.2 - semver: 6.3.0 + resolve: 1.22.4 + semver: 6.3.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17831,7 +17603,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.0 + semver: 6.3.1 dev: true /eslint-plugin-jsx-a11y/6.7.1_eslint@8.42.0: @@ -17856,7 +17628,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.0 + semver: 6.3.1 dev: true /eslint-plugin-jsx-a11y/6.7.1_eslint@8.45.0: @@ -17881,7 +17653,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.0 + semver: 6.3.1 /eslint-plugin-node/11.1.0_eslint@8.31.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} @@ -17992,7 +17764,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.0 + semver: 6.3.1 string.prototype.matchall: 4.0.8 dev: true @@ -18016,7 +17788,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.0 + semver: 6.3.1 string.prototype.matchall: 4.0.8 dev: true @@ -18040,7 +17812,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.0 + semver: 6.3.1 string.prototype.matchall: 4.0.8 /eslint-plugin-testing-library/5.11.0_iukboom6ndih5an6iafl45j2fe: @@ -18069,8 +17841,8 @@ packages: - typescript dev: true - /eslint-plugin-turbo/1.10.13_eslint@8.31.0: - resolution: {integrity: sha512-el4AAmn0zXmvHEyp1h0IQMfse10Vy8g5Vbg4IU3+vD9CSj5sDbX07iFVt8sCKg7og9Q5FAa9mXzlCf7t4vYgzg==} + /eslint-plugin-turbo/1.10.14_eslint@8.31.0: + resolution: {integrity: sha512-sBdBDnYr9AjT1g4lR3PBkZDonTrMnR4TvuGv5W0OiF7z9az1rI68yj2UHJZvjkwwcGu5mazWA1AfB0oaagpmfg==} peerDependencies: eslint: '>6.6.0' dependencies: @@ -18389,10 +18161,6 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /estree-walker/3.0.2: - resolution: {integrity: sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==} - dev: true - /estree-walker/3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -18602,7 +18370,7 @@ packages: /extendable-error/0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: false + dev: true /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -19130,7 +18898,7 @@ packages: graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 - dev: false + dev: true /fs-extra/8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} @@ -19636,6 +19404,7 @@ packages: /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true /graphemer/1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -19699,7 +19468,7 @@ packages: /hard-rejection/2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} - dev: false + dev: true /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -20082,7 +19851,7 @@ packages: /human-id/1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: false + dev: true /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -20123,15 +19892,6 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils/5.1.0_postcss@8.4.27: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.27 - dev: true - /icss-utils/5.1.0_postcss@8.4.29: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -20405,7 +20165,6 @@ packages: hasBin: true dependencies: ci-info: 3.8.0 - dev: false /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} @@ -20626,7 +20385,7 @@ packages: /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - dev: false + dev: true /is-plain-obj/2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} @@ -20697,7 +20456,7 @@ packages: engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 - dev: false + dev: true /is-symbol/1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} @@ -20749,7 +20508,6 @@ packages: /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - dev: false /is-wsl/2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} @@ -21888,7 +21646,7 @@ packages: /lodash.startcase/4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: false + dev: true /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -22084,12 +21842,12 @@ packages: /map-obj/1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - dev: false + dev: true /map-obj/4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} - dev: false + dev: true /map-or-similar/1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} @@ -22383,7 +22141,7 @@ packages: trim-newlines: 3.0.1 type-fest: 0.13.1 yargs-parser: 18.1.3 - dev: false + dev: true /merge-descriptors/1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -22792,6 +22550,7 @@ packages: /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + dev: true /mini-svg-data-uri/1.4.4: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} @@ -22820,13 +22579,6 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimatch/9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch/9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -22840,7 +22592,7 @@ packages: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: false + dev: true /minimist/1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} @@ -22928,7 +22680,7 @@ packages: /mixme/0.5.4: resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} engines: {node: '>= 8.0.0'} - dev: false + dev: true /mkdirp-classic/0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -22944,15 +22696,6 @@ packages: engines: {node: '>=10'} hasBin: true - /mlly/1.1.1: - resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==} - dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.0 - dev: true - /mlly/1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: @@ -23412,7 +23155,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 - dev: false + dev: true /node-fetch/3.3.0: resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} @@ -23961,7 +23704,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -24003,7 +23746,7 @@ packages: /outdent/0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: false + dev: true /outdent/0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -24046,7 +23789,6 @@ packages: engines: {node: '>=8'} dependencies: p-map: 2.1.0 - dev: false /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} @@ -24093,7 +23835,6 @@ packages: /p-map/2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - dev: false /p-map/3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} @@ -24526,15 +24267,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /postcss-discard-duplicates/5.1.0_postcss@8.4.27: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.27 - dev: true - /postcss-discard-duplicates/5.1.0_postcss@8.4.29: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} @@ -24673,7 +24405,7 @@ packages: ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e yaml: 2.3.1 - /postcss-load-config/4.0.1_postcss@8.4.29: + /postcss-load-config/4.0.1_ntcifew6f27c4l7dh5q6i7owpq: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -24687,9 +24419,11 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.29 + ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e yaml: 2.3.1 + dev: true - /postcss-load-config/4.0.1_xf4uokkt3yp55pilbqb2sbk4eu: + /postcss-load-config/4.0.1_postcss@8.4.29: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -24702,10 +24436,8 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.27 - ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e + postcss: 8.4.29 yaml: 2.3.1 - dev: true /postcss-loader/7.3.0_postcss@8.4.21: resolution: {integrity: sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==} @@ -24721,15 +24453,6 @@ packages: semver: 7.5.4 dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.4.27: - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.27 - dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.4.29: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -24739,18 +24462,6 @@ packages: postcss: 8.4.29 dev: true - /postcss-modules-local-by-default/4.0.0_postcss@8.4.27: - resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - dev: true - /postcss-modules-local-by-default/4.0.0_postcss@8.4.29: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} @@ -24763,16 +24474,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope/3.0.0_postcss@8.4.27: - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.27 - postcss-selector-parser: 6.0.11 - dev: true - /postcss-modules-scope/3.0.0_postcss@8.4.29: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} @@ -24783,16 +24484,6 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /postcss-modules-values/4.0.0_postcss@8.4.27: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - dev: true - /postcss-modules-values/4.0.0_postcss@8.4.29: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} @@ -24803,22 +24494,6 @@ packages: postcss: 8.4.29 dev: true - /postcss-modules/6.0.0_postcss@8.4.27: - resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} - peerDependencies: - postcss: ^8.0.0 - dependencies: - generic-names: 4.0.0 - icss-utils: 5.1.0_postcss@8.4.27 - lodash.camelcase: 4.3.0 - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 - postcss-modules-scope: 3.0.0_postcss@8.4.27 - postcss-modules-values: 4.0.0_postcss@8.4.27 - string-hash: 1.1.3 - dev: true - /postcss-modules/6.0.0_postcss@8.4.29: resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} peerDependencies: @@ -24913,6 +24588,7 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: false /postcss/8.4.29: resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} @@ -24987,7 +24663,7 @@ packages: find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - dev: false + dev: true /preferred-pm/3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} @@ -25071,6 +24747,7 @@ packages: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true + dev: true /prettier/3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} @@ -25342,7 +25019,7 @@ packages: /quick-lru/4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} - dev: false + dev: true /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -25689,6 +25366,7 @@ packages: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 + dev: true /read-pkg/3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} @@ -25715,6 +25393,7 @@ packages: js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 + dev: true /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} @@ -25774,7 +25453,7 @@ packages: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: false + dev: true /regenerate-unicode-properties/10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} @@ -25946,16 +25625,6 @@ packages: toml: 3.0.0 dev: true - /remark-parse/10.0.1: - resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-from-markdown: 1.2.0 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /remark-parse/10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: @@ -25998,68 +25667,68 @@ packages: retext-smartypants: 5.2.0 unist-util-visit: 4.1.2 - /remix-auth-email-link/1.5.2_xmjsiulzsxcc3znmuhq3turs2q: + /remix-auth-email-link/1.5.2_ol6qopr3fd43y6cb3yt2sxcwqm: resolution: {integrity: sha512-LCbaYkhsENbRK70O36Ul/jBtvNcNdBabjOIXYhrTNwx4qYA/fFkX8Sr3GMuDhoMzHnXQy7zHtsqbg/DTHocX6g==} peerDependencies: '@remix-run/server-runtime': ^1.1.1 remix-auth: ^3.2.1 dependencies: - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/server-runtime': 1.19.3 crypto-js: 4.1.1 - remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y + remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq dev: false - /remix-auth-github/1.3.0_xmjsiulzsxcc3znmuhq3turs2q: + /remix-auth-github/1.3.0_ol6qopr3fd43y6cb3yt2sxcwqm: resolution: {integrity: sha512-dqveIbXc1yXQXiB8UVjKSR3qgHFUZ0VJOu2/GTT5uMKZY0//FSnp1w8gK0btGlbc1HW97gig16uS84et6FBMiA==} peerDependencies: '@remix-run/server-runtime': ^1.0.0 remix-auth: ^3.4.0 dependencies: - '@remix-run/server-runtime': 1.19.2-pre.0 - remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y - remix-auth-oauth2: 1.5.0_xmjsiulzsxcc3znmuhq3turs2q + '@remix-run/server-runtime': 1.19.3 + remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq + remix-auth-oauth2: 1.5.0_ol6qopr3fd43y6cb3yt2sxcwqm transitivePeerDependencies: - supports-color dev: false - /remix-auth-oauth2/1.5.0_xmjsiulzsxcc3znmuhq3turs2q: + /remix-auth-oauth2/1.5.0_ol6qopr3fd43y6cb3yt2sxcwqm: resolution: {integrity: sha512-vv/CX2bCeVf8vzACfS1Fae+i75Cw0/As3RLkp00+9n9IBEvKi07LhUxTbODNA51jRh+wInnmCRIwsHafKQDD6g==} peerDependencies: '@remix-run/server-runtime': ^1.0.0 remix-auth: ^3.2.2 dependencies: - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/server-runtime': 1.19.3 debug: 4.3.4 - remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y + remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq uuid: 8.3.2 transitivePeerDependencies: - supports-color dev: false - /remix-auth/3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y: + /remix-auth/3.4.0_dybzsur44fk6knidl2aip4tzdq: resolution: {integrity: sha512-VRliJo9VRAS4sSYgMjYbi7rYRixPWU2Tb8PFZb06OIj0nONK/1KRzHf2+Y6VGZeIacepLVgan6g2IUJjayE2rQ==} peerDependencies: '@remix-run/react': ^1.0.0 '@remix-run/server-runtime': ^1.0.0 dependencies: - '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.3 uuid: 8.3.2 dev: false - /remix-typedjson/0.1.7_bhtgrpeaoe6kbm4hb4gzl6x7c4: + /remix-typedjson/0.1.7_kxjca5vfcd6kjtdv6u76olr43m: resolution: {integrity: sha512-h7WoKbKBGsVdZZp3s79U5SDrMvQ3We7BjGaSIPxchnJOTS3GUDat0kBoy/gh9TVKRf5KYCee+K1UlFAYQmLQsA==} peerDependencies: '@remix-run/react': ^1.6.5 '@remix-run/server-runtime': ^1.6.5 react: ^17.0.2 || ^18.0.0 dependencies: - '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.3 react: 18.2.0 dev: false - /remix-utils/6.0.0_c5pntwu5f7mrfmmvuwtiprk4cy: + /remix-utils/6.0.0_bw2af4wyg3wd47z5c445wg6duq: resolution: {integrity: sha512-S7Xec0YHZxGFEDawWpIbU7HQAZC0j51FmAvcCyBRuxjo71aAIMdmez47dgF8T91yxpHV1xlIKPL7LhBzmYsOZw==} engines: {node: '>=14'} peerDependencies: @@ -26068,8 +25737,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 zod: ^3.19.1 dependencies: - '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.3 intl-parse-accept-language: 1.0.0 is-ip: 3.1.0 react: 18.2.0 @@ -26157,7 +25826,7 @@ packages: /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: false + dev: true /requireindex/1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} @@ -26204,6 +25873,7 @@ packages: /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + dev: true /resolve-url-loader/5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} @@ -26555,6 +26225,7 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + dev: true /semver/6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -26869,7 +26540,7 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 15.4.1 - dev: false + dev: true /snapdragon-node/2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} @@ -27033,6 +26704,7 @@ packages: dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 + dev: true /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -27215,7 +26887,7 @@ packages: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: mixme: 0.5.4 - dev: false + dev: true /streamsearch/1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -27368,6 +27040,7 @@ packages: engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true /strip-json-comments/2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} @@ -27745,7 +27418,7 @@ packages: /term-size/2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - dev: false + dev: true /terminal-link/3.0.0: resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==} @@ -27988,7 +27661,7 @@ packages: /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - dev: false + dev: true /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} @@ -28527,7 +28200,7 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 17.7.2 - dev: false + dev: true /tuf-js/1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} @@ -28649,6 +28322,7 @@ packages: /type-fest/0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} + dev: true /type-fest/1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} @@ -28923,14 +28597,6 @@ packages: unist-util-visit-parents: 3.1.1 dev: true - /unist-util-visit/4.1.1: - resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.1.1 - unist-util-visit-parents: 5.1.1 - dev: true - /unist-util-visit/4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: @@ -29256,15 +28922,6 @@ packages: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 - /vfile/5.3.6: - resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.2 - vfile-message: 3.1.3 - dev: true - /vfile/5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: @@ -29377,73 +29034,6 @@ packages: - typescript dev: true - /vite/4.1.4: - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.16.17 - postcss: 8.4.29 - resolve: 1.22.1 - rollup: 3.10.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vite/4.1.4_@types+node@18.11.18: - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 18.11.18 - esbuild: 0.16.17 - postcss: 8.4.29 - resolve: 1.22.1 - rollup: 3.10.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/4.1.4_@types+node@18.17.1: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -29933,7 +29523,7 @@ packages: /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: false + dev: true /which-pm-runs/1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} @@ -30030,7 +29620,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: false + dev: true /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -30128,7 +29718,7 @@ packages: astring: 1.8.4 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.0.1 - estree-walker: 3.0.2 + estree-walker: 3.0.3 got: 11.8.6 hast-util-to-estree: 2.1.0 loader-utils: 2.0.4 @@ -30136,14 +29726,14 @@ packages: mdast-util-mdx: 1.1.0 micromark-extension-mdxjs: 1.0.0 periscopic: 3.0.4 - remark-parse: 10.0.1 + remark-parse: 10.0.2 remark-rehype: 9.1.0 source-map: 0.7.4 unified: 10.1.2 unist-util-position-from-estree: 1.1.1 unist-util-stringify-position: 3.0.2 - unist-util-visit: 4.1.1 - vfile: 5.3.6 + unist-util-visit: 4.1.2 + vfile: 5.3.7 optionalDependencies: deasync: 0.1.28 transitivePeerDependencies: @@ -30160,7 +29750,7 @@ packages: /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false + dev: true /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -30194,7 +29784,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: false + dev: true /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} @@ -30234,7 +29824,7 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: false + dev: true /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} From ad14983e21e691a91ef1966bad4924557f1b3cca Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 21 Sep 2023 10:24:37 -0700 Subject: [PATCH 26/95] React status hooks (#493) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added stripInternal to SDK tsconfig * Statuses can now be set from a run, and are stored in the database * Added the key to the returned status * Made the test job have an extra step and only pass in some of the options * client.getRunStatuses() and the corresponding endpoint * client.getRun() now includes status info * Fixed circular dependency schema * Translate null to undefined * Added the react package to the nextjs-reference tsconfig * Removed unused OpenAI integration from nextjs-reference project * New hooks for getting the statuses * Disabled most of the nextjs-reference jobs * Updated the hooks UI * Updated the endpoints to deal with null statuses values * The hook is working, with an example * Changeset: β€œYou can create statuses in your Jobs that can then be read using React hooks” * Changeset config is back to the old changelog style * WIP on new React hooks guide * Guide docs for the new hooks * Added the status hooks to the React hooks guide * Removed the links to the status hooks reference for now * Re-ordered the hooks * Fix for an error in the docs * Set a default of a blank array for the GetRunSchema --- .changeset/config.json | 7 +- .changeset/kind-penguins-try.md | 7 + .../routes/api.v1.runs.$runId.statuses.$id.ts | 151 +++++++ .../app/routes/api.v1.runs.$runId.statuses.ts | 82 ++++ apps/webapp/app/routes/api.v1.runs.$runId.ts | 12 +- docs/_snippets/how-to-get-run-id.mdx | 5 + docs/_snippets/react-hook-types.mdx | 24 ++ .../guides/react-hooks-automatic.mdx | 140 +++++++ .../guides/react-hooks-statuses.mdx | 192 +++++++++ docs/documentation/guides/react-hooks.mdx | 251 ++++-------- docs/mint.json | 9 +- packages/core/src/schemas/api.ts | 8 + packages/core/src/schemas/index.ts | 1 + packages/core/src/schemas/runs.ts | 3 + packages/core/src/schemas/statuses.ts | 31 ++ .../migration.sql | 20 + packages/database/prisma/schema.prisma | 20 + packages/react/src/index.ts | 1 + packages/react/src/statuses.ts | 108 +++++ packages/react/tsconfig.json | 1 + packages/trigger-sdk/src/apiClient.ts | 40 ++ packages/trigger-sdk/src/io.ts | 57 ++- packages/trigger-sdk/src/status.ts | 44 +++ packages/trigger-sdk/src/triggerClient.ts | 9 + packages/trigger-sdk/tsconfig.json | 3 +- references/job-catalog/package.json | 3 +- references/job-catalog/src/status.ts | 61 +++ .../src/app/api/trigger/route.ts | 13 - .../src/components/RunDetails.tsx | 104 ++--- .../nextjs-reference/src/jobs/edgeCases.ts | 25 -- .../nextjs-reference/src/jobs/events.ts | 60 --- .../nextjs-reference/src/jobs/general.ts | 269 ------------- .../nextjs-reference/src/jobs/github.ts | 371 ------------------ references/nextjs-reference/src/jobs/hooks.ts | 68 +++- .../nextjs-reference/src/jobs/logging.ts | 19 - .../nextjs-reference/src/jobs/openai.ts | 157 -------- references/nextjs-reference/src/jobs/plain.ts | 88 ----- .../nextjs-reference/src/jobs/schedules.ts | 18 - references/nextjs-reference/src/jobs/slack.ts | 92 ----- .../nextjs-reference/src/jobs/stripe.ts | 160 -------- .../nextjs-reference/src/jobs/supabase.ts | 341 ---------------- .../nextjs-reference/src/jobs/typeform.ts | 84 ---- references/nextjs-reference/src/trigger.ts | 5 - references/nextjs-reference/tsconfig.json | 129 ++---- 44 files changed, 1221 insertions(+), 2072 deletions(-) create mode 100644 .changeset/kind-penguins-try.md create mode 100644 apps/webapp/app/routes/api.v1.runs.$runId.statuses.$id.ts create mode 100644 apps/webapp/app/routes/api.v1.runs.$runId.statuses.ts create mode 100644 docs/_snippets/how-to-get-run-id.mdx create mode 100644 docs/_snippets/react-hook-types.mdx create mode 100644 docs/documentation/guides/react-hooks-automatic.mdx create mode 100644 docs/documentation/guides/react-hooks-statuses.mdx create mode 100644 packages/core/src/schemas/statuses.ts create mode 100644 packages/database/prisma/migrations/20230919141017_added_job_run_status_record_table/migration.sql create mode 100644 packages/react/src/statuses.ts create mode 100644 packages/trigger-sdk/src/status.ts create mode 100644 references/job-catalog/src/status.ts delete mode 100644 references/nextjs-reference/src/jobs/edgeCases.ts delete mode 100644 references/nextjs-reference/src/jobs/events.ts delete mode 100644 references/nextjs-reference/src/jobs/general.ts delete mode 100644 references/nextjs-reference/src/jobs/github.ts delete mode 100644 references/nextjs-reference/src/jobs/logging.ts delete mode 100644 references/nextjs-reference/src/jobs/openai.ts delete mode 100644 references/nextjs-reference/src/jobs/plain.ts delete mode 100644 references/nextjs-reference/src/jobs/schedules.ts delete mode 100644 references/nextjs-reference/src/jobs/slack.ts delete mode 100644 references/nextjs-reference/src/jobs/stripe.ts delete mode 100644 references/nextjs-reference/src/jobs/supabase.ts delete mode 100644 references/nextjs-reference/src/jobs/typeform.ts diff --git a/.changeset/config.json b/.changeset/config.json index 64bfe8e522c..5e8716336bb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,11 +1,6 @@ { "$schema": "https://unpkg.com/@changesets/config@2.2.0/schema.json", - "changelog": [ - "@remix-run/changelog-github", - { - "repo": "triggerdotdev/trigger.dev" - } - ], + "changelog": "@changesets/cli/changelog", "commit": false, "fixed": [ [ diff --git a/.changeset/kind-penguins-try.md b/.changeset/kind-penguins-try.md new file mode 100644 index 00000000000..763013956e4 --- /dev/null +++ b/.changeset/kind-penguins-try.md @@ -0,0 +1,7 @@ +--- +"@trigger.dev/sdk": patch +"@trigger.dev/react": patch +"@trigger.dev/core": patch +--- + +You can create statuses in your Jobs that can then be read using React hooks diff --git a/apps/webapp/app/routes/api.v1.runs.$runId.statuses.$id.ts b/apps/webapp/app/routes/api.v1.runs.$runId.statuses.$id.ts new file mode 100644 index 00000000000..e5475342319 --- /dev/null +++ b/apps/webapp/app/routes/api.v1.runs.$runId.statuses.$id.ts @@ -0,0 +1,151 @@ +import type { ActionArgs } from "@remix-run/server-runtime"; +import { json } from "@remix-run/server-runtime"; +import { TaskStatus } from "@trigger.dev/database"; +import { + RunTaskBodyOutput, + RunTaskBodyOutputSchema, + ServerTask, + StatusHistory, + StatusHistorySchema, + StatusUpdate, + StatusUpdateData, + StatusUpdateSchema, + StatusUpdateState, +} from "@trigger.dev/core"; +import { z } from "zod"; +import { $transaction, PrismaClient, prisma } from "~/db.server"; +import { taskWithAttemptsToServerTask } from "~/models/task.server"; +import { authenticateApiRequest } from "~/services/apiAuth.server"; +import { logger } from "~/services/logger.server"; +import { ulid } from "~/services/ulid.server"; +import { workerQueue } from "~/services/worker.server"; +import { JobRunStatusRecordSchema } from "@trigger.dev/core"; + +const ParamsSchema = z.object({ + runId: z.string(), + id: z.string(), +}); + +export async function action({ request, params }: ActionArgs) { + // Ensure this is a POST request + if (request.method.toUpperCase() !== "PUT") { + return { status: 405, body: "Method Not Allowed" }; + } + + // Next authenticate the request + const authenticationResult = await authenticateApiRequest(request); + + if (!authenticationResult) { + return json({ error: "Invalid or Missing API key" }, { status: 401 }); + } + + const { runId, id } = ParamsSchema.parse(params); + + // Now parse the request body + const anyBody = await request.json(); + + logger.debug("SetStatusService.call() request body", { + body: anyBody, + runId, + id, + }); + + const body = StatusUpdateSchema.safeParse(anyBody); + + if (!body.success) { + return json({ error: "Invalid request body" }, { status: 400 }); + } + + const service = new SetStatusService(); + + try { + const statusRecord = await service.call(runId, id, body.data); + + logger.debug("SetStatusService.call() response body", { + runId, + id, + statusRecord, + }); + + if (!statusRecord) { + return json({ error: "Something went wrong" }, { status: 500 }); + } + + const status = JobRunStatusRecordSchema.parse({ + ...statusRecord, + state: statusRecord.state ?? undefined, + history: statusRecord.history ?? undefined, + data: statusRecord.data ?? undefined, + }); + + return json(status); + } catch (error) { + if (error instanceof Error) { + return json({ error: error.message }, { status: 400 }); + } + + return json({ error: "Something went wrong" }, { status: 500 }); + } +} + +export class SetStatusService { + #prismaClient: PrismaClient; + + constructor(prismaClient: PrismaClient = prisma) { + this.#prismaClient = prismaClient; + } + + public async call(runId: string, id: string, status: StatusUpdate) { + const statusRecord = await $transaction(this.#prismaClient, async (tx) => { + const existingStatus = await tx.jobRunStatusRecord.findUnique({ + where: { + runId_key: { + runId, + key: id, + }, + }, + }); + + const history: StatusHistory = []; + const historyResult = StatusHistorySchema.safeParse(existingStatus?.history); + if (historyResult.success) { + history.push(...historyResult.data); + } + if (existingStatus) { + history.push({ + label: existingStatus.label, + state: (existingStatus.state ?? undefined) as StatusUpdateState, + data: (existingStatus.data ?? undefined) as StatusUpdateData, + }); + } + + const updatedStatus = await tx.jobRunStatusRecord.upsert({ + where: { + runId_key: { + runId, + key: id, + }, + }, + create: { + key: id, + runId, + //this shouldn't ever use the id in reality, as the SDK makess it compulsory on the first call + label: status.label ?? id, + state: status.state, + data: status.data as any, + history: [], + }, + update: { + label: status.label, + state: status.state, + data: status.data as any, + history: history as any[], + }, + }); + + return updatedStatus; + }); + + return statusRecord; + } +} diff --git a/apps/webapp/app/routes/api.v1.runs.$runId.statuses.ts b/apps/webapp/app/routes/api.v1.runs.$runId.statuses.ts new file mode 100644 index 00000000000..f7e6351de25 --- /dev/null +++ b/apps/webapp/app/routes/api.v1.runs.$runId.statuses.ts @@ -0,0 +1,82 @@ +import type { LoaderArgs } from "@remix-run/server-runtime"; +import { json } from "@remix-run/server-runtime"; +import { JobRunStatusRecordSchema } from "@trigger.dev/core"; +import { z } from "zod"; +import { prisma } from "~/db.server"; +import { authenticateApiRequest } from "~/services/apiAuth.server"; +import { logger } from "~/services/logger.server"; +import { apiCors } from "~/utils/apiCors"; + +const ParamsSchema = z.object({ + runId: z.string(), +}); + +const RecordsSchema = z.array(JobRunStatusRecordSchema); + +export async function loader({ request, params }: LoaderArgs) { + if (request.method.toUpperCase() === "OPTIONS") { + return apiCors(request, json({})); + } + + // Next authenticate the request + const authenticationResult = await authenticateApiRequest(request, { allowPublicKey: true }); + + if (!authenticationResult) { + return apiCors(request, json({ error: "Invalid or Missing API key" }, { status: 401 })); + } + + const { runId } = ParamsSchema.parse(params); + + logger.debug("Get run statuses", { + runId, + }); + + try { + const run = await prisma.jobRun.findUnique({ + where: { + id: runId, + }, + select: { + id: true, + status: true, + output: true, + statuses: { + orderBy: { + createdAt: "asc", + }, + }, + }, + }); + + if (!run) { + return apiCors(request, json({ error: `No run found for id ${runId}` }, { status: 404 })); + } + + const parsedStatuses = RecordsSchema.parse( + run.statuses.map((s) => ({ + ...s, + state: s.state ?? undefined, + data: s.data ?? undefined, + history: s.history ?? undefined, + })) + ); + + return apiCors( + request, + json({ + run: { + id: run.id, + status: run.status, + output: run.output, + }, + statuses: parsedStatuses, + }) + ); + } catch (error) { + if (error instanceof Error) { + return apiCors(request, json({ error: error.message }, { status: 400 })); + } + + return apiCors(request, json({ error: "Something went wrong" }, { status: 500 })); + } +} diff --git a/apps/webapp/app/routes/api.v1.runs.$runId.ts b/apps/webapp/app/routes/api.v1.runs.$runId.ts index 973d71f787e..e1273654f82 100644 --- a/apps/webapp/app/routes/api.v1.runs.$runId.ts +++ b/apps/webapp/app/routes/api.v1.runs.$runId.ts @@ -1,9 +1,8 @@ import type { LoaderArgs } from "@remix-run/server-runtime"; import { json } from "@remix-run/server-runtime"; -import { cors } from "remix-utils"; import { z } from "zod"; import { prisma } from "~/db.server"; -import { authenticateApiRequest, getApiKeyFromRequest } from "~/services/apiAuth.server"; +import { authenticateApiRequest } from "~/services/apiAuth.server"; import { apiCors } from "~/utils/apiCors"; import { taskListToTree } from "~/utils/taskListToTree"; @@ -93,6 +92,9 @@ export async function loader({ request, params }: LoaderArgs) { } : undefined, }, + statuses: { + select: { key: true, label: true, state: true, data: true, history: true }, + }, }, }); @@ -122,6 +124,12 @@ export async function loader({ request, params }: LoaderArgs) { const { parentId, ...rest } = task; return { ...rest }; }), + statuses: jobRun.statuses.map((s) => ({ + ...s, + state: s.state ?? undefined, + data: s.data ?? undefined, + history: s.history ?? undefined, + })), nextCursor: nextTask ? nextTask.id : undefined, }) ); diff --git a/docs/_snippets/how-to-get-run-id.mdx b/docs/_snippets/how-to-get-run-id.mdx new file mode 100644 index 00000000000..8d5d372431b --- /dev/null +++ b/docs/_snippets/how-to-get-run-id.mdx @@ -0,0 +1,5 @@ + + You can call [client.getRuns()](/sdk/triggerclient/instancemethods/getruns) with a Job id to get a + list of the most recent Runs for that Job. You can then pass that run id to your frontend to use + in the hook. + diff --git a/docs/_snippets/react-hook-types.mdx b/docs/_snippets/react-hook-types.mdx new file mode 100644 index 00000000000..03608f73d10 --- /dev/null +++ b/docs/_snippets/react-hook-types.mdx @@ -0,0 +1,24 @@ +## The two types of Run progress you can use + +1. Automatic updates of Run and Task progress (no extra Job code required) +2. Explicitly created and updated `statuses` (more flexible and powerful) + +### Automatic updates + +These require no changes inside your Job code. You can receive: + +- Info about an event you sent, including the Runs it triggered. +- The overall status of the Run (in progress, success and fail statuses). +- Metadata like start and completed times. +- The Run output (what is returned or an error that failed the Job) +- Information about the Tasks that have completed/failed/are running. + +### Explicit `statuses` + +You can create `statuses` in your Job code. This gives you fine grained control over what you want to expose. + +It allows you to: + +- Show exactly what you want in your UI (with as many statuses as you want). +- Pass arbitrary data to your UI, which you can use to render elements. +- Update existing elements in your UI as the progress of the run continues. diff --git a/docs/documentation/guides/react-hooks-automatic.mdx b/docs/documentation/guides/react-hooks-automatic.mdx new file mode 100644 index 00000000000..d0974425560 --- /dev/null +++ b/docs/documentation/guides/react-hooks-automatic.mdx @@ -0,0 +1,140 @@ +--- +title: "Automatic React hooks" +description: "These allow you to show Run and Task progress without adding extra code to your Jobs." +--- + +## The data you can receive + +- Info about an event you sent, including the Runs it triggered. +- The overall status of the Run (in progress, success and fail statuses). +- Metadata like start and completed times. +- The Run output (what is returned or an error that failed the Job) +- Information about the Tasks that have completed/failed/are running. + +## The hooks + +- [useEventDetails](/sdk/react/useeventdetails): get the details of a specific event +- [useRunDetails](/sdk/react/userundetails): get the details of a specific Run +- [useEventRunDetails](/sdk/react/useeventrundetails): get the details of a Run triggered from a specific event + +All of these hooks will automatically refresh your components as the state of your Runs or events change. + +#### useEventDetails + +The `useEventDetails` hook will get the details of a specific event. You can use this to show the status of a specific event. + + + +This component will show the details of an event and the overall status of Runs that were triggered by the event: + +```tsx +import { useEventDetails } from "@trigger.dev/react"; + +export default function EventDetails({ eventId }: { eventId: string }) { + const { data, error } = useEventDetails(eventId); + + if (error) { + return
Error: {error.message}
; + } + + if (!data) { + return
Loading...
; + } + + return ( +
+

{data.name}

+

Runs: {data.runs?.length}

+
+ {data.runs?.map((run) => ( +
+

+ Run {run.id}: {run.status} +

+
+ ))} +
+
+ ); +} +``` + +#### useRunDetails + +The `useRunDetails` hook will get the details of a specific Run. You can use this to show the status of a specific Run. + + + +This component will show the details of a Run and the status of each task in the Run: + +```tsx +import { useRunDetails } from "@trigger.dev/react"; + +export default function RunDetails({ runId }: { runId: string }) { + const { data, error } = useRunDetails(runId); + + if (error) { + return
Error: {error.message}
; + } + + if (!data) { + return
Loading...
; + } + + return ( +
+

Run {data.id}

+

Status: {data.status}

+
+ {data.tasks?.map((task) => ( +
+

+ Task {task.id}: {task.status} +

+
+ ))} +
+
+ ); +} +``` + +#### useEventRunDetails + +The `useEventRunDetails` hook will get the details of a specific Run that was triggered by a specific event. You can use this to show the status of a specific Run. + + + +This component will show the details of a Run and the status of each task in the Run: + +```tsx +import { useEventRunDetails } from "@trigger.dev/react"; + +export default function EventRunDetails({ eventId }: { eventId: string }) { + const { data, error } = useEventRunDetails(eventId); + + if (error) { + return
Error: {error.message}
; + } + + if (!data) { + return
Loading...
; + } + + return ( +
+

Run {data.id}

+

Status: {data.status}

+
+ {data.tasks?.map((task) => ( +
+

+ Task {task.id}: {task.status} +

+
+ ))} +
+
+ ); +} +``` diff --git a/docs/documentation/guides/react-hooks-statuses.mdx b/docs/documentation/guides/react-hooks-statuses.mdx new file mode 100644 index 00000000000..eb0bb08f34a --- /dev/null +++ b/docs/documentation/guides/react-hooks-statuses.mdx @@ -0,0 +1,192 @@ +--- +title: "Explicit status hooks" +description: "How to add `statuses` to your Job code and then subscribe using the hooks" +--- + +You can create `statuses` in your Job code. This gives you fine grained control over what you want to expose. + +It allows you to: + +- Show exactly what you want in your UI (with as many statuses as you want). +- Pass arbitrary data to your UI, which you can use to render elements. +- Update existing elements in your UI as the progress of the run continues. + +## In your Job code + +You should create a "status", which you can then update throughout the Job if you'd like to. You can create more than one status. Each of these will come through to the hook with the latest status and the history for each. + +```ts jobs/yourjob.ts +//your job +client.defineJob({ + id: "meme-generator", + name: "Generate memes", + version: "0.1.1", + trigger: eventTrigger({ + name: "generate-memes", + }), + run: async (payload, io, ctx) => { + //create a status "generating-memes" + //you give it the starting state. Only label is required + const generatingMemes = await io.createStatus("generating-memes", { + //the label is compulsory on this first call + label: "Generating memes", + //state is optional + state: "loading", + //data is an optional object. the values can be any type that is JSON serializable + data: { + progress: 0.1, + }, + }); + + //...do stuff, like generate memes + + //update the generatingMemes status. + //anything set here will override the previous values, but you'll be able to view the full history with hooks + await generatingMemes.update("middle-generation", { + //label isn't specified so will remain the same + //state will be updated to "success" + state: "success", + //set data, this overrides the previous value + data: { + progress: 1, + urls: [ + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZnZoMndsdWh0MmhvY2kyaDF6YjZjZzg1ZGsxdnhhYm13a3Q1Y3lkbyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/13HgwGsXF0aiGY/giphy.gif", + ], + }, + }); + }, +}); +``` + +In this case we created just a single status `generating-memes` and then updated it. It's worth noting that you can create as many statuses as you'd like in a single Job and you can update them as many times as you want. + +This allows you to fine-grained control over how you report progress and output data from your Job. + +## Using the React hooks + +There are two hooks you can use in your UI to display the Run statuses. + +- **useEventRunStatuses**: get the statuses of a run that was triggered by a specified event +- **useRunStatuses**: get the statuses of the specified run + +## useEventRunStatuses + +The `useEventRunStatuses` hook will give you the statuses and overview data of **the first run** that is triggered by an event. + + + +This component will show the details of a Run and the status of each task in the Run: + +```ts +import { useEventRunStatuses } from "@trigger.dev/react"; + +export function EventRunData({ id }: { id: string }) { + const { fetchStatus, error, statuses, run } = useEventRunStatuses(id); + + if (fetchStatus === "loading") { + return

Loading...

; + } + + if (fetchStatus === "error") { + return ( +
+

{error.name}

+

{error.message}

+
+ ); + } + + return ( + <> + //you receive the overall status of the run, e.g. SUCCESS, FAIL +
Run status: {run.status}
+
+ {statuses.map((status) => { + switch (status.key) { + case "generating-memes": { + const urls = status.data?.urls as string[] | undefined; + return ( +
+ // Will display: "Generating memes: loading" +

+ {status.label}: {status.state} +

+ //will render the memes as images + {urls?.map((url) => )} +
+ ); + } + } + })} +
+ //this is what's returned from the run function + {run.output && ( + +
{JSON.stringify(run.output, null, 2)}
+
+ )} + + ); +} +``` + +## useRunStatuses + +The `useRunStatuses` hook will give you the statuses and overview data of a specific Run. + + + +This component will show the details of a Run and the status of each task in the Run: + +```ts +import { useRunStatuses } from "@trigger.dev/react"; + +export function RunData({ id }: { id: string }) { + const { fetchStatus, error, statuses, run } = useRunStatuses(id); + + if (fetchStatus === "loading") { + return

Loading...

; + } + + if (fetchStatus === "error") { + return ( +
+

{error.name}

+

{error.message}

+
+ ); + } + + return ( + <> + //you receive the overall status of the run, e.g. SUCCESS, FAIL +
Run status: {run.status}
+
+ {statuses.map((status) => { + switch (status.key) { + case "generating-memes": { + const urls = status.data?.urls as string[] | undefined; + return ( +
+ // Will display: "Generating memes: loading" +

+ {status.label}: {status.state} +

+ //will render the memes as images + {urls?.map((url) => )} +
+ ); + } + } + })} +
+ //this is what's returned from the run function + {run.output && ( + +
{JSON.stringify(run.output, null, 2)}
+
+ )} + + ); +} +``` diff --git a/docs/documentation/guides/react-hooks.mdx b/docs/documentation/guides/react-hooks.mdx index 5df366aa877..cebb7e7a0d3 100644 --- a/docs/documentation/guides/react-hooks.mdx +++ b/docs/documentation/guides/react-hooks.mdx @@ -1,5 +1,5 @@ --- -title: "React hooks" +title: "Overview" description: "How to show the live status of Job Runs in your React app" --- @@ -9,207 +9,96 @@ You can display the live progress of a Job Run to your users, including the stat -## Steps +## Setting up your project for hooks This guide assumes that your project is already setup and you have a Job running. If not, you should follow the [quick start guide](/documentation/quickstart) first. -### 1. Install the package + + + Add the `@trigger.dev/react` package to your project: -Add the `@trigger.dev/react` package to your project: + - + ```bash npm + npm install @trigger.dev/react@latest + ``` -```bash npm -npm install @trigger.dev/react@latest -``` + ```bash pnpm + pnpm install @trigger.dev/react@latest + ``` -```bash pnpm -pnpm install @trigger.dev/react@latest -``` + ```bash yarn + yarn add @trigger.dev/react@latest + ``` -```bash yarn -yarn add @trigger.dev/react@latest -``` + - + + + In the Trigger.dev dashboard you should go to your Project and then the "Environments & API Keys" page. -### 2. Get your public API key + ![Get your public API Key](/images/environments-public-apikey.png) -In the Trigger.dev dashboard you should go to your Project and then the "Environments & API Keys" page. + You should copy the `PUBLIC` API key for the dev environment. -![Get your public API Key](/images/environments-public-apikey.png) + + A public API key is a key that can be used in the browser. It can only be used to read certain + data from the API and can not write data. This means that it can be used to get the status of a + Job Run, but not to start a new Job Run. + -You should copy the `PUBLIC` API key for the dev environment. + + + Add the `NEXT_PUBLIC_TRIGGER_API_KEY` environment variable to your project. This will be used by the `TriggerProvider` component to connect to the Trigger API. - - A public API key is a key that can be used in the browser. It can only be used to read certain - data from the API and can not write data. This means that it can be used to get the status of a - Job Run, but not to start a new Job Run. - + ```sh .env.local + #... + TRIGGER_API_KEY=[your_private_api_key] + NEXT_PUBLIC_TRIGGER_API_KEY=[your_public_api_key] + #... + ``` -### 3. Add the env var to your project + Your private API key should already be in there. -Add the `NEXT_PUBLIC_TRIGGER_API_KEY` environment variable to your project. This will be used by the `TriggerProvider` component to connect to the Trigger API. + -```sh .env.local -#... -TRIGGER_API_KEY=[your_private_api_key] -NEXT_PUBLIC_TRIGGER_API_KEY=[your_public_api_key] -#... -``` + + The [TriggerProvider](/sdk/react/triggerprovider) component is a React Context Provider that will make the Trigger API client available to all child components. -Your private API key should already be in there. + Generally you'll want to add this to the root of your app, so that it's available everywhere. However, you can add it lower in the hierarchy but it must be above any of the hooks. -### 4. Add the `TriggerProvider` component + ```tsx app/layout.tsx + export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + + {children} + + + + ); + } + ``` -The [TriggerProvider](/sdk/react/triggerprovider) component is a React Context Provider that will make the Trigger API client available to all child components. + + -Generally you'll want to add this to the root of your app, so that it's available everywhere. However, you can add it lower in the hierarchy but it must be above any of the hooks. +## Two ways to report Run progress -```tsx app/layout.tsx -export default function RootLayout({ children }: { children: React.ReactNode }) { - return ( - - - - {children} - - - - ); -} -``` +**Automatic progress** – without writing additional code in your Job you can get updates on the overall run status and individual tasks inside the run. -### 5. Add hooks to your components +**Explicit status** – add code to your Job that reports the status of the things you're doing. This gives you full flexibility for displaying progress in your UI. -There are three hooks that you can use to show statuses: - -- [useEventDetails](/sdk/react/useeventdetails): get the details of a specific event -- [useRunDetails](/sdk/react/userundetails): get the details of a specific Run -- [useEventRunDetails](/sdk/react/useeventrundetails): get the details of a Run triggered from a specific event - -All of these hooks will automatically refresh your components as the state of your Runs or events change. - -#### 5.a useEventDetails - -The `useEventDetails` hook will get the details of a specific event. You can use this to show the status of a specific event. - - - -This component will show the details of an event and the overall status of Runs that were triggered by the event: - -```tsx -import { useEventDetails } from "@trigger.dev/react"; - -export default function EventDetails({ eventId }: { eventId: string }) { - const { data, error } = useEventDetails(eventId); - - if (error) { - return
Error: {error.message}
; - } - - if (!data) { - return
Loading...
; - } - - return ( -
-

{data.name}

-

Runs: {data.runs?.length}

-
- {data.runs?.map((run) => ( -
-

- Run {run.id}: {run.status} -

-
- ))} -
-
- ); -} -``` - -#### 5.b useRunDetails - -The `useRunDetails` hook will get the details of a specific Run. You can use this to show the status of a specific Run. - - - You can call [client.getRuns()](/sdk/triggerclient/instancemethods/getruns) with a Job id to get a - list of the most recent Runs for that Job. You can then pass that run id to your frontend to use - in the hook. - - -This component will show the details of a Run and the status of each task in the Run: - -```tsx -import { useRunDetails } from "@trigger.dev/react"; - -export default function RunDetails({ runId }: { runId: string }) { - const { data, error } = useRunDetails(runId); - - if (error) { - return
Error: {error.message}
; - } - - if (!data) { - return
Loading...
; - } - - return ( -
-

Run {data.id}

-

Status: {data.status}

-
- {data.tasks?.map((task) => ( -
-

- Task {task.id}: {task.status} -

-
- ))} -
-
- ); -} -``` - -#### 5.c useEventRunDetails - -The `useEventRunDetails` hook will get the details of a specific Run that was triggered by a specific event. You can use this to show the status of a specific Run. - - - -This component will show the details of a Run and the status of each task in the Run: - -```tsx -import { useEventRunDetails } from "@trigger.dev/react"; - -export default function EventRunDetails({ eventId }: { eventId: string }) { - const { data, error } = useEventRunDetails(eventId); - - if (error) { - return
Error: {error.message}
; - } - - if (!data) { - return
Loading...
; - } - - return ( -
-

Run {data.id}

-

Status: {data.status}

-
- {data.tasks?.map((task) => ( -
-

- Task {task.id}: {task.status} -

-
- ))} -
-
- ); -} -``` + + + Receive coarse updates without writing additional Job code + + + Add statuses to your Job code for fine-grained UI updates + + diff --git a/docs/mint.json b/docs/mint.json index f877bcf3d65..f8f2b7cf851 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -171,7 +171,14 @@ "documentation/guides/using-integrations-oauth" ] }, - "documentation/guides/react-hooks", + { + "group": "React hooks", + "pages": [ + "documentation/guides/react-hooks", + "documentation/guides/react-hooks-automatic", + "documentation/guides/react-hooks-statuses" + ] + }, { "group": "Deployment", "pages": [ diff --git a/packages/core/src/schemas/api.ts b/packages/core/src/schemas/api.ts index 112c33191ae..b59f23be768 100644 --- a/packages/core/src/schemas/api.ts +++ b/packages/core/src/schemas/api.ts @@ -15,6 +15,8 @@ import { } from "./schedules"; import { CachedTaskSchema, TaskSchema } from "./tasks"; import { EventSpecificationSchema, TriggerMetadataSchema } from "./triggers"; +import { RunStatusSchema } from "./runs"; +import { JobRunStatusRecordSchema } from "./statuses"; export const UpdateTriggerSourceBodyV1Schema = z.object({ registeredEvents: z.array(z.string()), @@ -729,3 +731,9 @@ export const CreateExternalConnectionBodySchema = z.object({ }); export type CreateExternalConnectionBody = z.infer; + +export const GetRunStatusesSchema = z.object({ + run: z.object({ id: z.string(), status: RunStatusSchema, output: z.any().optional() }), + statuses: z.array(JobRunStatusRecordSchema), +}); +export type GetRunStatuses = z.infer; diff --git a/packages/core/src/schemas/index.ts b/packages/core/src/schemas/index.ts index 3ad2573181e..09f3a15c05c 100644 --- a/packages/core/src/schemas/index.ts +++ b/packages/core/src/schemas/index.ts @@ -12,3 +12,4 @@ export * from "./fetch"; export * from "./events"; export * from "./runs"; export * from "./addMissingVersionField"; +export * from "./statuses"; diff --git a/packages/core/src/schemas/runs.ts b/packages/core/src/schemas/runs.ts index 31f9bde8b1e..e22b9645355 100644 --- a/packages/core/src/schemas/runs.ts +++ b/packages/core/src/schemas/runs.ts @@ -1,5 +1,6 @@ import { ZodObject, z } from "zod"; import { TaskStatusSchema } from "./tasks"; +import { JobRunStatusRecordSchema } from "./statuses"; export const RunStatusSchema = z.union([ z.literal("PENDING"), @@ -78,6 +79,8 @@ export const GetRunSchema = RunSchema.extend({ output: z.any().optional(), /** The tasks from the run */ tasks: z.array(RunTaskWithSubtasksSchema), + /** Any status updates that were published from the run */ + statuses: z.array(JobRunStatusRecordSchema).default([]), /** If there are more tasks, you can use this to get them */ nextCursor: z.string().optional(), }); diff --git a/packages/core/src/schemas/statuses.ts b/packages/core/src/schemas/statuses.ts new file mode 100644 index 00000000000..2216161e16d --- /dev/null +++ b/packages/core/src/schemas/statuses.ts @@ -0,0 +1,31 @@ +import { z } from "zod"; +import { SerializableJsonSchema } from "./json"; +import { RunStatusSchema } from "./runs"; + +export const StatusUpdateStateSchema = z.union([ + z.literal("loading"), + z.literal("success"), + z.literal("failure"), +]); +export type StatusUpdateState = z.infer; + +const StatusUpdateDataSchema = z.record(SerializableJsonSchema); +export type StatusUpdateData = z.infer; + +export const StatusUpdateSchema = z.object({ + label: z.string().optional(), + state: StatusUpdateStateSchema.optional(), + data: StatusUpdateDataSchema.optional(), +}); +export type StatusUpdate = z.infer; + +const InitalStatusUpdateSchema = StatusUpdateSchema.required({ label: true }); +export type InitialStatusUpdate = z.infer; + +export const StatusHistorySchema = z.array(StatusUpdateSchema); +export type StatusHistory = z.infer; + +export const JobRunStatusRecordSchema = InitalStatusUpdateSchema.extend({ + key: z.string(), + history: StatusHistorySchema, +}); diff --git a/packages/database/prisma/migrations/20230919141017_added_job_run_status_record_table/migration.sql b/packages/database/prisma/migrations/20230919141017_added_job_run_status_record_table/migration.sql new file mode 100644 index 00000000000..dd1eb9b312a --- /dev/null +++ b/packages/database/prisma/migrations/20230919141017_added_job_run_status_record_table/migration.sql @@ -0,0 +1,20 @@ +-- CreateTable +CREATE TABLE "JobRunStatusRecord" ( + "id" TEXT NOT NULL, + "key" TEXT NOT NULL, + "runId" TEXT NOT NULL, + "label" TEXT NOT NULL, + "state" TEXT, + "data" JSONB, + "history" JSONB, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "JobRunStatusRecord_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "JobRunStatusRecord_runId_key_key" ON "JobRunStatusRecord"("runId", "key"); + +-- AddForeignKey +ALTER TABLE "JobRunStatusRecord" ADD CONSTRAINT "JobRunStatusRecord_runId_fkey" FOREIGN KEY ("runId") REFERENCES "JobRun"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/packages/database/prisma/schema.prisma b/packages/database/prisma/schema.prisma index 2878bc638cf..8e36acef9a6 100644 --- a/packages/database/prisma/schema.prisma +++ b/packages/database/prisma/schema.prisma @@ -716,6 +716,7 @@ model JobRun { runConnections RunConnection[] missingConnections MissingConnection[] executions JobRunExecution[] + statuses JobRunStatusRecord[] } enum JobRunStatus { @@ -850,6 +851,25 @@ enum TaskAttemptStatus { ERRORED } +model JobRunStatusRecord { + id String @id @default(cuid()) + key String + + run JobRun @relation(fields: [runId], references: [id], onDelete: Cascade, onUpdate: Cascade) + runId String + + label String + state String? + data Json? + + history Json? + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@unique([runId, key]) +} + model SecretReference { id String @id @default(cuid()) key String @unique diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 46718c7f49a..47223c19b41 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -1,3 +1,4 @@ export * from "./TriggerProvider"; export * from "./events"; export * from "./runs"; +export * from "./statuses"; diff --git a/packages/react/src/statuses.ts b/packages/react/src/statuses.ts new file mode 100644 index 00000000000..ec722d6640d --- /dev/null +++ b/packages/react/src/statuses.ts @@ -0,0 +1,108 @@ +"use client"; + +import { UseQueryResult, useQuery } from "@tanstack/react-query"; +import { + GetRun, + GetRunOptions, + GetRunSchema, + GetRunStatuses, + GetRunStatusesSchema, + urlWithSearchParams, +} from "@trigger.dev/core"; +import { useTriggerProvider } from "./TriggerProvider"; +import { zodfetch } from "./fetch"; +import { useEventDetails } from "./events"; +import { runResolvedStatuses } from "./runs"; + +const defaultRefreshInterval = 1000; + +export type RunStatusesOptions = { + /** How often you want to refresh, the default is 1000. Min is 500 */ + refreshIntervalMs?: number; +}; + +export type UseRunStatusesResult = + | { + fetchStatus: "loading"; + error: undefined; + statuses: undefined; + run: undefined; + } + | { + fetchStatus: "error"; + error: Error; + statuses: undefined; + run: undefined; + } + | ({ + fetchStatus: "success"; + error: undefined; + } & GetRunStatuses); + +export function useRunStatuses( + runId: string | undefined, + options?: RunStatusesOptions +): UseRunStatusesResult { + const { apiUrl, publicApiKey, queryClient } = useTriggerProvider(); + + const queryResult = useQuery( + { + queryKey: [`triggerdotdev-run-${runId}`], + queryFn: async () => { + return await zodfetch(GetRunStatusesSchema, `${apiUrl}/api/v1/runs/${runId}/statuses`, { + method: "GET", + headers: { + Authorization: `Bearer ${publicApiKey}`, + }, + }); + }, + enabled: !!runId, + refetchInterval: (data) => { + if (data?.run.status && runResolvedStatuses.includes(data.run.status)) { + return false; + } + if (options?.refreshIntervalMs !== undefined) { + return Math.max(options.refreshIntervalMs, 500); + } + + return defaultRefreshInterval; + }, + }, + queryClient + ); + + switch (queryResult.status) { + case "pending": { + return { + fetchStatus: "loading", + error: undefined, + statuses: undefined, + run: undefined, + }; + } + case "error": { + return { + fetchStatus: "error", + error: queryResult.error, + statuses: undefined, + run: undefined, + }; + } + case "success": { + return { + fetchStatus: "success", + error: undefined, + run: queryResult.data.run, + statuses: queryResult.data.statuses, + }; + } + } +} + +export function useEventRunStatuses( + eventId: string | undefined, + options?: RunStatusesOptions +): UseRunStatusesResult { + const event = useEventDetails(eventId); + return useRunStatuses(event.data?.runs[0]?.id, options); +} diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json index 887ec9b5b4c..4ab3ef959a3 100644 --- a/packages/react/tsconfig.json +++ b/packages/react/tsconfig.json @@ -4,6 +4,7 @@ "jsx": "react", "moduleResolution": "node", "esModuleInterop": true, + "strict": true, "lib": ["es2015", "dom"], "paths": { "@trigger.dev/core": ["../core/src/index"], diff --git a/packages/trigger-sdk/src/apiClient.ts b/packages/trigger-sdk/src/apiClient.ts index 394284d1fab..f7a4bcb399c 100644 --- a/packages/trigger-sdk/src/apiClient.ts +++ b/packages/trigger-sdk/src/apiClient.ts @@ -24,6 +24,9 @@ import { urlWithSearchParams, UpdateTriggerSourceBodyV2, RegisterTriggerBodyV2, + GetRunStatusesSchema, + JobRunStatusRecordSchema, + StatusUpdate, } from "@trigger.dev/core"; import fetch, { type RequestInit } from "node-fetch"; @@ -198,6 +201,28 @@ export class ApiClient { }); } + async updateStatus(runId: string, id: string, status: StatusUpdate) { + const apiKey = await this.#apiKey(); + + this.#logger.debug("Update status", { + id, + status, + }); + + return await zodfetch( + JobRunStatusRecordSchema, + `${this.#apiUrl}/api/v1/runs/${runId}/statuses/${id}`, + { + method: "PUT", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${apiKey}`, + }, + body: JSON.stringify(status), + } + ); + } + async updateSource( client: string, key: string, @@ -359,6 +384,21 @@ export class ApiClient { ); } + async getRunStatuses(runId: string) { + const apiKey = await this.#apiKey(); + + this.#logger.debug("Getting Run statuses", { + runId, + }); + + return await zodfetch(GetRunStatusesSchema, `${this.#apiUrl}/api/v1/runs/${runId}/statuses`, { + method: "GET", + headers: { + Authorization: `Bearer ${apiKey}`, + }, + }); + } + async getRuns(jobSlug: string, options?: GetRunsOptions) { const apiKey = await this.#apiKey(); diff --git a/packages/trigger-sdk/src/io.ts b/packages/trigger-sdk/src/io.ts index 1e3574e0d15..5e0101528f9 100644 --- a/packages/trigger-sdk/src/io.ts +++ b/packages/trigger-sdk/src/io.ts @@ -5,13 +5,13 @@ import { ErrorWithStackSchema, FetchRequestInit, FetchRetryOptions, + InitialStatusUpdate, IntervalOptions, LogLevel, Logger, RunTaskOptions, SendEvent, SendEventOptions, - SerializableJson, SerializableJsonSchema, ServerTask, UpdateTriggerSourceBodyV2, @@ -25,13 +25,14 @@ import { RetryWithTaskError, isTriggerError, } from "./errors"; -import { createIOWithIntegrations } from "./ioWithIntegrations"; import { calculateRetryAt } from "./retry"; import { TriggerClient } from "./triggerClient"; import { DynamicTrigger } from "./triggers/dynamic"; import { ExternalSource, ExternalSourceParams } from "./triggers/externalSource"; import { DynamicSchedule } from "./triggers/scheduled"; import { EventSpecification, TaskLogger, TriggerContext } from "./types"; +import { IntegrationTaskKey } from "./integrations"; +import { TriggerStatus } from "./status"; export type IOTask = ServerTask; @@ -88,6 +89,16 @@ export class IO { this._context = options.context; } + /** @internal */ + get runId() { + return this._id; + } + + /** @internal */ + get triggerClient() { + return this._triggerClient; + } + /** Used to send log messages to the [Run log](https://trigger.dev/docs/documentation/guides/viewing-runs). */ get logger() { return new IOLogger(async (level, message, data) => { @@ -150,6 +161,48 @@ export class IO { }); } + /** `io.createStatus()` allows you to set a status with associated data during the Run. Statuses can be used by your UI using the react package + * @param key Should be a stable and unique key inside the `run()`. See [resumability](https://trigger.dev/docs/documentation/concepts/resumability) for more information. + * @param initialStatus The initial status you want this status to have. You can update it during the rub using the returned object. + * @returns a TriggerStatus object that you can call `update()` on, to update the status. + * @example + * ```ts + * client.defineJob( + //... + run: async (payload, io, ctx) => { + const generatingImages = await io.createStatus("generating-images", { + label: "Generating Images", + state: "loading", + data: { + progress: 0.1, + }, + }); + + //...do stuff + + await generatingImages.update("completed-generation", { + label: "Generated images", + state: "success", + data: { + progress: 1.0, + urls: ["http://..."] + }, + }); + + //... + }); + * ``` + */ + async createStatus( + key: IntegrationTaskKey, + initialStatus: InitialStatusUpdate + ): Promise { + const id = typeof key === "string" ? key : key.join("-"); + const status = new TriggerStatus(id, this); + await status.update(key, initialStatus); + return status; + } + /** `io.backgroundFetch()` fetches data from a URL that can take longer that the serverless timeout. The actual `fetch` request is performed on the Trigger.dev platform, and the response is sent back to you. * @param key Should be a stable and unique key inside the `run()`. See [resumability](https://trigger.dev/docs/documentation/concepts/resumability) for more information. * @param url The URL to fetch from. diff --git a/packages/trigger-sdk/src/status.ts b/packages/trigger-sdk/src/status.ts new file mode 100644 index 00000000000..ff249604a50 --- /dev/null +++ b/packages/trigger-sdk/src/status.ts @@ -0,0 +1,44 @@ +import { DisplayProperty, StatusUpdate } from "@trigger.dev/core/schemas"; +import { IntegrationTaskKey } from "./integrations"; +import { IO } from "./io"; +import { TriggerClient } from "./triggerClient"; + +export class TriggerStatus { + constructor( + private id: string, + private io: IO + ) {} + + async update(key: IntegrationTaskKey, status: StatusUpdate) { + const properties: DisplayProperty[] = []; + + if (status.label) { + properties.push({ + label: "Label", + text: status.label, + }); + } + + if (status.state) { + properties.push({ + label: "State", + text: status.state, + }); + } + + return await this.io.runTask( + key, + async (task) => { + return await this.io.triggerClient.updateStatus(this.io.runId, this.id, status); + }, + { + name: status.label ?? `Status update`, + icon: "clock", + params: { + ...status, + }, + properties, + } + ); + } +} diff --git a/packages/trigger-sdk/src/triggerClient.ts b/packages/trigger-sdk/src/triggerClient.ts index 6c2ffaf3df2..d193c53d3fc 100644 --- a/packages/trigger-sdk/src/triggerClient.ts +++ b/packages/trigger-sdk/src/triggerClient.ts @@ -26,6 +26,7 @@ import { SendEvent, SendEventOptions, SourceMetadataV2, + StatusUpdate, } from "@trigger.dev/core"; import { ApiClient } from "./apiClient"; import { CanceledWithTaskError, ResumeWithTaskError, RetryWithTaskError } from "./errors"; @@ -567,6 +568,10 @@ export class TriggerClient { return this.#client.cancelEvent(eventId); } + async updateStatus(runId: string, id: string, status: StatusUpdate) { + return this.#client.updateStatus(runId, id, status); + } + async registerSchedule(id: string, key: string, schedule: ScheduleMetadata) { return this.#client.registerSchedule(this.id, id, key, schedule); } @@ -587,6 +592,10 @@ export class TriggerClient { return this.#client.getRuns(jobSlug, options); } + async getRunStatuses(runId: string) { + return this.#client.getRunStatuses(runId); + } + authorized( apiKey?: string | null ): "authorized" | "unauthorized" | "missing-client" | "missing-header" { diff --git a/packages/trigger-sdk/tsconfig.json b/packages/trigger-sdk/tsconfig.json index e5b64c11cdc..7b13d85e2bf 100644 --- a/packages/trigger-sdk/tsconfig.json +++ b/packages/trigger-sdk/tsconfig.json @@ -10,7 +10,8 @@ }, "lib": ["DOM", "DOM.Iterable"], "declaration": false, - "declarationMap": false + "declarationMap": false, + "stripInternal": true }, "exclude": ["node_modules"] } diff --git a/references/job-catalog/package.json b/references/job-catalog/package.json index 37e18f34be6..7d77bf59527 100644 --- a/references/job-catalog/package.json +++ b/references/job-catalog/package.json @@ -21,6 +21,7 @@ "dynamic-schedule": "nodemon --watch src/dynamic-schedule.ts -r tsconfig-paths/register -r dotenv/config src/dynamic-schedule.ts", "dynamic-triggers": "nodemon --watch src/dynamic-triggers.ts -r tsconfig-paths/register -r dotenv/config src/dynamic-triggers.ts", "background-fetch": "nodemon --watch src/background-fetch.ts -r tsconfig-paths/register -r dotenv/config src/background-fetch.ts", + "status": "nodemon --watch src/status.ts -r tsconfig-paths/register -r dotenv/config src/status.ts", "dev:trigger": "trigger-cli dev --port 8080" }, "dependencies": { @@ -52,4 +53,4 @@ "ts-node": "^10.9.1", "tsconfig-paths": "^3.14.1" } -} \ No newline at end of file +} diff --git a/references/job-catalog/src/status.ts b/references/job-catalog/src/status.ts new file mode 100644 index 00000000000..bf70a63c5f6 --- /dev/null +++ b/references/job-catalog/src/status.ts @@ -0,0 +1,61 @@ +import { createExpressServer } from "@trigger.dev/express"; +import { TriggerClient, eventTrigger } from "@trigger.dev/sdk"; +import { z } from "zod"; + +export const client = new TriggerClient({ + id: "job-catalog", + apiKey: process.env["TRIGGER_API_KEY"], + apiUrl: process.env["TRIGGER_API_URL"], + verbose: false, + ioLogLocalEnabled: true, +}); + +client.defineJob({ + id: "status", + name: "Status: updating status", + version: "0.0.2", + trigger: eventTrigger({ + name: "status", + }), + run: async (payload, io, ctx) => { + const generatingText = await io.createStatus("generating-images", { + label: "Generating Images", + state: "loading", + data: { + progress: 0.1, + }, + }); + + await io.wait("wait", 2); + + //...do stuff + await generatingText.update("middle-generation", { + data: { + progress: 0.5, + urls: ["http://www."], + }, + }); + + await io.wait("wait-again", 2); + + //...do stuff + await generatingText.update("completed-generation", { + label: "Generated images", + state: "success", + data: { + progress: 1.0, + urls: ["http://www.", "http://www.", "http://www."], + }, + }); + + await io.runTask("get statuses", async () => { + return await client.getRunStatuses(ctx.run.id); + }); + + await io.runTask("get run", async () => { + return await client.getRun(ctx.run.id); + }); + }, +}); + +createExpressServer(client); diff --git a/references/nextjs-reference/src/app/api/trigger/route.ts b/references/nextjs-reference/src/app/api/trigger/route.ts index f72f543aed8..acc3ef28638 100644 --- a/references/nextjs-reference/src/app/api/trigger/route.ts +++ b/references/nextjs-reference/src/app/api/trigger/route.ts @@ -1,19 +1,6 @@ import { createAppRoute } from "@trigger.dev/nextjs"; import { client } from "@/trigger"; -import "@/jobs/events"; -import "@/jobs/general"; -import "@/jobs/github"; -import "@/jobs/logging"; -import "@/jobs/openai"; -import "@/jobs/plain"; -import "@/jobs/resend"; -import "@/jobs/schedules"; -import "@/jobs/slack"; -import "@/jobs/typeform"; -import "@/jobs/edgeCases"; import "@/jobs/hooks"; -import "@/jobs/supabase"; -import "@/jobs/stripe"; export const { POST, dynamic } = createAppRoute(client); diff --git a/references/nextjs-reference/src/components/RunDetails.tsx b/references/nextjs-reference/src/components/RunDetails.tsx index d6a83dbf1f4..a0f85bf4443 100644 --- a/references/nextjs-reference/src/components/RunDetails.tsx +++ b/references/nextjs-reference/src/components/RunDetails.tsx @@ -1,89 +1,51 @@ "use client"; -import styles from "@/styles/Home.module.css"; -import { useEventDetails, useEventRunDetails, useRunDetails } from "@trigger.dev/react"; - -export function EventData({ id }: { id: string }) { - const { isLoading, data, error } = useEventDetails(id); - - return ( - <> -

Event

- {isLoading ? ( -

Loading

- ) : error ? ( - JSON.stringify(error, null, 2) - ) : data ? ( -

- Event ID: {data.id} -

- ) : ( -

- )} - - ); -} - -export function RunData({ id }: { id: string }) { - const { isLoading, isError, data, error } = useRunDetails(id); - - if (isLoading) { - return

Loading...

; - } - - if (isError) { - return

Error

; - } - - if (!data) { - return

Loading...

; - } - - return ( - <> -
Run status: {data.status}
-
- {data.tasks?.map((task) => ( -
-

{task.name}

-

Status: {task.status}

-
- ))} -
- - ); -} +import { useEventRunStatuses } from "@trigger.dev/react"; export function EventRunData({ id }: { id: string }) { - const { isLoading, isError, data, error } = useEventRunDetails(id); + const { fetchStatus, error, statuses, run } = useEventRunStatuses(id); - if (isLoading) { + if (fetchStatus === "loading") { return

Loading...

; } - if (isError) { - return

Error

; - } - - if (!data) { - return

Loading...

; + if (fetchStatus === "error") { + return ( +
+

{error.name}

+

{error.message}

+
+ ); } return ( <> -
Run status: {data.status}
+
Run status: {run.status}
- {data.tasks?.map((task) => ( -
-

{task.displayKey ?? task.name}

-

{task.icon}

-

Status: {task.status}

-
- ))} + {statuses.map((status) => { + switch (status.key) { + case "getting-input-data": { + return ( +
+

{status.label}

+

Status: {status.state}

+
+ ); + } + case "generating-memes": { + const urls = status.data?.urls as string[] | undefined; + return ( +
+ {urls?.map((url) => )} +
+ ); + } + } + })}
- {data.output && ( + {run.output && ( -
{JSON.stringify(data.output, null, 2)}
+
{JSON.stringify(run.output, null, 2)}
)} diff --git a/references/nextjs-reference/src/jobs/edgeCases.ts b/references/nextjs-reference/src/jobs/edgeCases.ts deleted file mode 100644 index cd7c60b23e2..00000000000 --- a/references/nextjs-reference/src/jobs/edgeCases.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { client } from "@/trigger"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; -import { z } from "zod"; - -client.defineJob({ - id: "test-long-running-cpu", - name: "Test long running CPU", - version: "0.0.1", - trigger: eventTrigger({ - name: "test.cpu", - schema: z.object({ - iterations: z.number(), - sleepDuration: z.number(), - }), - }), - run: async (payload, io, ctx) => { - console.log(`Running run ${ctx.run.id} at ${new Date().toISOString()}`); - - for (let i = 0; i < payload.iterations ?? 1; i++) { - await new Promise((resolve) => setTimeout(resolve, payload.sleepDuration ?? 1000)); - } - - console.log(`Finishing run ${ctx.run.id} at ${new Date().toISOString()}`); - }, -}); diff --git a/references/nextjs-reference/src/jobs/events.ts b/references/nextjs-reference/src/jobs/events.ts deleted file mode 100644 index 4ef4071864e..00000000000 --- a/references/nextjs-reference/src/jobs/events.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { client } from "@/trigger"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; -import { z } from "zod"; - -client.defineJob({ - id: "test-event-trigger-1", - name: "Test Event Trigger 1", - version: "0.0.1", - logLevel: "debug", - trigger: eventTrigger({ - name: "test-event-trigger-1", - schema: z.object({ - name: z.string(), - payload: z.any(), - }), - }), - run: async (payload, io, ctx) => { - await io.sendEvent( - "send", - { - name: payload.name, - payload: payload.payload, - timestamp: new Date(), - }, - { deliverAt: new Date(Date.now() + 1000 * 30) } - ); - }, -}); - -client.defineJob({ - id: "test-event-trigger-2", - name: "Test Event Trigger 2", - version: "0.0.1", - logLevel: "debug", - trigger: eventTrigger({ - name: "test-event-trigger-2", - }), - run: async (payload, io, ctx) => { - for (let index = 0; index < 100; index++) { - await io.sendEvent(`send-${index}`, { - name: "test-event-trigger-1", - payload: { name: "whatever", payload: { index } }, - }); - } - }, -}); - -client.defineJob({ - id: "test-multiple-events", - name: "Test Multiple Events", - version: "0.0.1", - logLevel: "debug", - trigger: eventTrigger({ - name: ["test.event.1", "test.event.2"], - examples: [{ id: "test", name: "Test", payload: { name: "test" } }], - }), - run: async (payload, io, ctx) => { - await io.logger.log(`Triggered by the ${ctx.event.name} event`, { ctx }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/general.ts b/references/nextjs-reference/src/jobs/general.ts deleted file mode 100644 index a35786bf9fc..00000000000 --- a/references/nextjs-reference/src/jobs/general.ts +++ /dev/null @@ -1,269 +0,0 @@ -import { client, github, githubUser, openai, slack } from "@/trigger"; -import { events } from "@trigger.dev/github"; -import { - Job, - cronTrigger, - eventTrigger, - intervalTrigger, - isTriggerError, - missingConnectionNotification, - missingConnectionResolvedNotification, -} from "@trigger.dev/sdk"; -import { z } from "zod"; - -const enabled = true; - -client.defineJob({ - id: "on-missing-auth-connection", - name: "On missing auth connection", - version: "0.1.1", - enabled, - trigger: missingConnectionNotification([githubUser]), - integrations: { - slack, - }, - run: async (payload, io, ctx) => { - switch (payload.type) { - case "DEVELOPER": { - return await io.slack.postMessage("message", { - text: `Missing developer connection: ${JSON.stringify(payload)}`, - channel: "C04GWUTDC3W", - }); - } - case "EXTERNAL": { - return await io.slack.postMessage("message", { - text: `Missing external connection: account: ${JSON.stringify( - payload.account - )}, payload: ${JSON.stringify(payload)}`, - channel: "C04GWUTDC3W", - }); - } - } - }, -}); - -client.defineJob({ - id: "on-missing-auth-connection-resolved", - name: "On missing auth connection-resolved", - version: "0.1.1", - enabled, - trigger: missingConnectionResolvedNotification([githubUser]), - integrations: { - slack, - }, - run: async (payload, io, ctx) => { - switch (payload.type) { - case "DEVELOPER": { - return await io.slack.postMessage("message", { - text: `Missing developer connection resolved: ${JSON.stringify(payload)}`, - channel: "C04GWUTDC3W", - }); - } - case "EXTERNAL": { - return await io.slack.postMessage("message", { - text: `Missing external connection resolved: ${JSON.stringify(payload)}`, - channel: "C04GWUTDC3W", - }); - } - } - }, -}); - -client.defineJob({ - id: "get-user-repo", - name: "Get User Repo", - version: "0.1.1", - enabled, - trigger: eventTrigger({ - name: "get.repo", - schema: z.object({ - owner: z.string(), - repo: z.string(), - }), - }), - integrations: { - github: githubUser, - }, - run: async (payload, io, ctx) => { - return await io.github.getRepo("get.repo", payload); - }, -}); - -client.defineJob({ - id: "event-1", - name: "Run when the foo.bar event happens", - version: "0.0.1", - enabled: true, - trigger: eventTrigger({ - name: "foo.bar", - }), - run: async (payload, io, ctx) => { - await io.try( - async () => { - return await io.runTask( - "task-1", - async (task) => { - if (task.attempts > 2) { - return { - bar: "foo", - }; - } - - throw new Error(`Task failed on ${task.attempts} attempt(s)`); - }, - { name: "task-1", retry: { limit: 3 } } - ); - }, - async (error) => { - // These should never be reached - await io.wait("wait-after-error", 5); - - await io.logger.error("This is a log error message", { - payload, - error, - }); - - return { - foo: "bar", - }; - } - ); - - try { - await io.runTask( - "task-2", - async (task) => { - throw new Error(`Task failed on ${task.attempts} attempt(s)`); - }, - { name: "task-2", retry: { limit: 5 } } - ); - } catch (error) { - if (isTriggerError(error)) { - throw error; - } - - await io.wait("wait-after-error", 5); - - await io.logger.error("This is a log error message", { - payload, - error, - }); - } - - return { - payload, - }; - }, -}); - -client.defineJob({ - id: "scheduled-job-1", - name: "Scheduled Job 1", - version: "0.1.1", - enabled: true, - trigger: intervalTrigger({ - seconds: 60, - }), - run: async (payload, io, ctx) => { - await io.wait("wait", 5); // wait for 5 seconds - - await io.logger.info("This is a log info message", { - payload, - }); - - await io.sendEvent("send-event", { - name: "custom.event", - payload, - context: ctx, - }); - - await io.runTask("level 1", async () => { - await io.runTask("level 2", async () => { - await io.runTask("level 3", async () => { - await io.runTask("level 4", async () => { - await io.runTask("level 5", async () => {}); - }); - }); - }); - }); - - await io.wait("5 minutes", 5 * 60); - - await io.runTask("Fingers crossed", async () => { - throw new Error("You messed up buddy!"); - }); - }, -}); - -client.defineJob({ - id: "scheduled-job-2", - name: "Scheduled Job 2", - version: "0.1.1", - enabled, - trigger: cronTrigger({ - cron: "*/5 * * * *", // every 5 minutes - }), - run: async (payload, io, ctx) => { - await io.wait("wait", 5); // wait for 5 seconds - await io.logger.info("This is a log info message", { - payload, - ctx, - }); - - return { - message: "Hello from scheduled job 1", - }; - }, -}); - -client.defineJob({ - id: "test-io-functions", - name: "Test IO functions", - version: "0.1.1", - enabled, - trigger: eventTrigger({ - name: "test.io", - }), - run: async (payload, io, ctx) => { - await io.wait("wait", 5); // wait for 5 seconds - await io.logger.info("This is a log info message", { - payload, - }); - await io.sendEvent("send-event", { - name: "custom.event", - payload, - context: ctx, - }); - }, -}); - -client.defineJob({ - id: "alert-on-new-github-issues-3", - name: "Alert on new GitHub issues", - version: "0.1.1", - enabled, - integrations: { - slack, - }, - trigger: github.triggers.repo({ - event: events.onIssueOpened, - owner: "ericallam", - repo: "basic-starter-12k", - }), - run: async (payload, io, ctx) => { - await io.runTask("slow task", async () => { - await new Promise((resolve) => setTimeout(resolve, 5000)); - }); - - await io.logger.info("This is a simple log info message"); - - await io.wait("wait", 5); // wait for 5 seconds - - const response = await io.slack.postMessage("Slack πŸ“", { - text: `New Issue opened: ${payload.issue.html_url}`, - channel: "C04GWUTDC3W", - }); - - return response; - }, -}); diff --git a/references/nextjs-reference/src/jobs/github.ts b/references/nextjs-reference/src/jobs/github.ts deleted file mode 100644 index c4aa833b4ee..00000000000 --- a/references/nextjs-reference/src/jobs/github.ts +++ /dev/null @@ -1,371 +0,0 @@ -import { client, github, slack } from "@/trigger"; -import { Github } from "@trigger.dev/github"; -import { events } from "@trigger.dev/github"; -import { Job } from "@trigger.dev/sdk"; - -const githubApiKey = new Github({ - id: "github-api-key", - token: process.env["GITHUB_API_KEY"]!, -}); - -client.defineJob({ - id: "github-integration-on-issue", - name: "GitHub Integration - On Issue", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onIssue, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-issue-opened", - name: "GitHub Integration - On Issue Opened", - version: "0.1.0", - integrations: { github: githubApiKey }, - trigger: githubApiKey.triggers.repo({ - event: events.onIssueOpened, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.github.addIssueAssignees("add assignee", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - issueNumber: payload.issue.number, - assignees: ["matt-aitken"], - }); - - await io.github.addIssueLabels("add label", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - issueNumber: payload.issue.number, - labels: ["bug"], - }); - - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "new-github-issue-reminder", - name: "New GitHub issue reminder", - version: "0.1.0", - integrations: { github, slack }, - trigger: github.triggers.repo({ - event: events.onIssueOpened, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - //delay for 24 hours (or 60 seconds in development) - const delayDuration = ctx.environment.type === "DEVELOPMENT" ? 60 : 60 * 60 * 24; - await io.wait("wait 24 hours", delayDuration); - - const issue = await io.github.getIssue("get issue", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - issueNumber: payload.issue.number, - }); - - //if the issue has had no activity - if (issue.updated_at === payload.issue.updated_at) { - await io.slack.postMessage("Slack reminder", { - text: `New issue needs attention: <${issue.html_url}|${issue.title}>`, - channel: "C04GWUTDC3W", - }); - - //assign it to someone, in this case… me - await io.github.addIssueAssignees("add assignee", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - issueNumber: payload.issue.number, - assignees: ["ericallam"], - }); - } - }, -}); - -client.defineJob({ - id: "github-integration-on-issue-assigned", - name: "GitHub Integration - On Issue assigned", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onIssueAssigned, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-issue-commented", - name: "GitHub Integration - On Issue commented", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onIssueComment, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "star-slack-notification", - name: "New Star Slack Notification", - version: "0.1.0", - integrations: { slack }, - trigger: githubApiKey.triggers.repo({ - event: events.onNewStar, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - const response = await io.slack.postMessage("Slack star", { - text: `${payload.sender.login} starred ${payload.repository.full_name}.\nTotal: ${payload.repository.stargazers_count}⭐️`, - channel: "C04GWUTDC3W", - }); - }, -}); - -client.defineJob({ - id: "github-integration-on-new-star", - name: "GitHub Integration - On New Star", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewStar, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-new-repo", - name: "GitHub Integration - On New Repository", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewRepository, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-new-branch-or-tag", - name: "GitHub Integration - On New Branch or Tag", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewBranchOrTag, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-new-branch", - name: "GitHub Integration - On New Branch", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewBranch, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-push", - name: "GitHub Integration - On Push", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onPush, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-pull-request", - name: "GitHub Integration - On Pull Request", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onPullRequest, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-pull-request-review", - name: "GitHub Integration - On Pull Request Review", - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onPullRequestReview, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-on-pull-request-merge-commit", - name: "GitHub Integration - on Pull Request Merge Commit", - version: "0.1.0", - integrations: { github }, - trigger: githubApiKey.triggers.repo({ - event: events.onPullRequest, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - - if (payload.pull_request.merged && payload.pull_request.merge_commit_sha) { - const commit = await io.github.getCommit("get merge commit", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - commitSHA: payload.pull_request.merge_commit_sha, - }); - await io.logger.info("Merge Commit Details", commit); - } - - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-get-tree", - name: "GitHub Integration - Get Tree", - version: "0.1.0", - integrations: { github }, - trigger: githubApiKey.triggers.repo({ - event: events.onPullRequest, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - - if (payload.pull_request.merged && payload.pull_request.merge_commit_sha) { - const tree = await io.github.getTree("get merge commit", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - treeSHA: payload.pull_request.merge_commit_sha, - }); - await io.logger.info("Tree ", tree); - } - - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-get-reference", - name: "GitHub Integration - Get Reference", - integrations: { github }, - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewBranch, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - - const ref = await io.github.getReference("Get reference", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - ref: payload.ref, - }); - - await io.logger.info("Reference ", ref); - - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-list-matching-references", - name: "GitHub Integration - List Matching References", - integrations: { github }, - version: "0.1.0", - trigger: githubApiKey.triggers.repo({ - event: events.onNewBranch, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - - const ref = await io.github.listMatchingReferences("List Matching References", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - ref: payload.ref, - }); - - await io.logger.info("Reference ", ref); - - return { payload, ctx }; - }, -}); - -client.defineJob({ - id: "github-integration-get-tag", - name: "GitHub Integration - Get Tag", - version: "0.1.0", - integrations: { github }, - trigger: githubApiKey.triggers.repo({ - event: events.onNewBranchOrTag, - owner: "triggerdotdev", - repo: "empty", - }), - run: async (payload, io, ctx) => { - await io.logger.info("This is a simple log info message"); - if (payload.ref_type === "tag") { - const tag = io.github.getTag("Get Tag", { - owner: payload.repository.owner.login, - repo: payload.repository.name, - tagSHA: payload.ref, - }); - await io.logger.info("Tag ", tag); - } - return { payload, ctx }; - }, -}); diff --git a/references/nextjs-reference/src/jobs/hooks.ts b/references/nextjs-reference/src/jobs/hooks.ts index f7a9fd425d8..09ed9412ce8 100644 --- a/references/nextjs-reference/src/jobs/hooks.ts +++ b/references/nextjs-reference/src/jobs/hooks.ts @@ -9,14 +9,64 @@ client.defineJob({ name: "test-event", }), run: async (payload, io, ctx) => { - await io.logger.log("This Job is triggered from a button in the frontend"); - await io.wait("wait", 5); - await io.logger.log("It runs for a while to test the React hooks"); - await io.wait("wait 2", 5); - await io.logger.log("This is the end of the job"); - - return { - myMessage: "This is the output of the job", - }; + const gettingInputData = await io.createStatus("getting-input-data", { + label: "Getting input data", + // state: "loading", + }); + + await io.wait("wait-input", 2); + + await gettingInputData.update("input-data-complete", { + label: "Input data complete", + state: "success", + }); + + const generatingMemes = await io.createStatus("generating-memes", { + label: "Generating memes", + state: "loading", + data: { + progress: 0.1, + }, + }); + + await io.wait("wait", 2); + + //...do stuff + await generatingMemes.update("middle-generation", { + data: { + progress: 0.3, + urls: [ + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZnZoMndsdWh0MmhvY2kyaDF6YjZjZzg1ZGsxdnhhYm13a3Q1Y3lkbyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/13HgwGsXF0aiGY/giphy.gif", + ], + }, + }); + + await io.wait("wait-again", 4); + + //...do stuff + await generatingMemes.update("generating-more-memes", { + data: { + progress: 0.6, + urls: [ + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZnZoMndsdWh0MmhvY2kyaDF6YjZjZzg1ZGsxdnhhYm13a3Q1Y3lkbyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/13HgwGsXF0aiGY/giphy.gif", + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbXdhNGhjaXVoZzFrMWJ0dmYyM2ZuOTIxN2J3aWYwY3J1OHI4eW13cCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/scZPhLqaVOM1qG4lT9/giphy.gif", + ], + }, + }); + + await io.wait("wait-again", 4); + + await generatingMemes.update("completed-generation", { + label: "Generated memes", + state: "success", + data: { + progress: 1.0, + urls: [ + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZnZoMndsdWh0MmhvY2kyaDF6YjZjZzg1ZGsxdnhhYm13a3Q1Y3lkbyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/13HgwGsXF0aiGY/giphy.gif", + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbXdhNGhjaXVoZzFrMWJ0dmYyM2ZuOTIxN2J3aWYwY3J1OHI4eW13cCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/scZPhLqaVOM1qG4lT9/giphy.gif", + "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExdHJhdXJ2Nnl6YnR3bXZuejZ3Y3Q5a2w3Mng2ZXZmMmJjeWdtZWhibCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/yYSSBtDgbbRzq/giphy-downsized.gif", + ], + }, + }); }, }); diff --git a/references/nextjs-reference/src/jobs/logging.ts b/references/nextjs-reference/src/jobs/logging.ts deleted file mode 100644 index 3ebd97c5b81..00000000000 --- a/references/nextjs-reference/src/jobs/logging.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { client } from "@/trigger"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; - -client.defineJob({ - id: "test-logging", - name: "Test logging", - version: "0.0.1", - logLevel: "debug", - trigger: eventTrigger({ - name: "test.logging", - }), - run: async (payload, io, ctx) => { - await io.logger.log("Hello log level", { payload }); - await io.logger.error("Hello error level", { payload }); - await io.logger.warn("Hello warn level", { payload }); - await io.logger.info("Hello info level", { payload }); - await io.logger.debug("Hello debug level", { payload }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/openai.ts b/references/nextjs-reference/src/jobs/openai.ts deleted file mode 100644 index cd3219fa5d5..00000000000 --- a/references/nextjs-reference/src/jobs/openai.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { client } from "@/trigger"; -import { OpenAI } from "@trigger.dev/openai"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; -import { z } from "zod"; - -const openai = new OpenAI({ - id: "openai", - apiKey: process.env["OPENAI_API_KEY"]!, -}); - -client.defineJob({ - id: "openai-tasks", - name: "OpenAI Tasks", - version: "0.0.1", - trigger: eventTrigger({ - name: "openai.tasks", - schema: z.object({}), - }), - integrations: { - openai, - }, - run: async (payload, io, ctx) => { - const models = await io.openai.listModels("list-models"); - - if (models.data.length > 0) { - await io.openai.retrieveModel("get-model", { - model: models.data[0].id, - }); - } - - await io.openai.backgroundCreateChatCompletion("background-chat-completion", { - model: "gpt-3.5-turbo", - messages: [ - { - role: "user", - content: "Create a good programming joke about background jobs", - }, - ], - }); - - await io.openai.createChatCompletion("chat-completion", { - model: "gpt-3.5-turbo", - messages: [ - { - role: "user", - content: "Create a good programming joke about background jobs", - }, - ], - }); - - await io.openai.backgroundCreateCompletion("background-completion", { - model: "text-davinci-003", - prompt: "Create a good programming joke about Tasks", - }); - - await io.openai.createCompletion("completion", { - model: "text-davinci-003", - prompt: "Create a good programming joke about Tasks", - }); - - await io.openai.createEdit("edit", { - model: "text-davinci-edit-001", - input: "Thsi is ridddled with erors", - instruction: "Fix the spelling errors", - }); - - await io.openai.createEmbedding("embedding", { - model: "text-embedding-ada-002", - input: "The food was delicious and the waiter...", - }); - }, -}); - -client.defineJob({ - id: "openai-images", - name: "OpenAI Images", - version: "0.0.1", - trigger: eventTrigger({ - name: "openai.images", - schema: z.object({}), - }), - integrations: { - openai, - }, - run: async (payload, io, ctx) => { - await io.openai.createImage("image", { - prompt: "A hedgehog wearing a party hat", - n: 2, - size: "256x256", - response_format: "url", - }); - }, -}); - -client.defineJob({ - id: "openai-files", - name: "OpenAI Files", - version: "0.0.1", - trigger: eventTrigger({ - name: "openai.files", - schema: z.object({}), - }), - integrations: { - openai, - }, - run: async (payload, io, ctx) => { - // jsonl string - await io.openai.createFile("file-string", { - file: `{ "prompt": "Tell me a joke", "completion": "Something funny" }\n{ "prompt": "Tell me another joke", "completion": "Something also funny" }`, - fileName: "cool-file.jsonl", - purpose: "fine-tune", - }); - - // fine tune file - const fineTuneFile = await io.openai.createFineTuneFile("file-fine-tune", { - fileName: "fine-tune.jsonl", - examples: [ - { - prompt: "Tell me a joke", - completion: "Why did the chicken cross the road? No one knows", - }, - { - prompt: "Tell me another joke", - completion: "Why did the chicken cross the road? To get to the other side", - }, - ], - }); - - const model = await io.openai.createFineTune("fine-tune", { - model: "davinci", - training_file: fineTuneFile.id, - }); - - const fineTunes = await io.openai.listFineTunes("list-fine-tunes"); - - const fineTune = await io.openai.retrieveFineTune("get-fine-tune", { - fineTuneId: model.id, - }); - - const events = await io.openai.listFineTuneEvents("list-fine-tune-events", { - fineTuneId: model.id, - }); - - const cancelFineTune = await io.openai.cancelFineTune("cancel-fine-tune", { - fineTuneId: model.id, - }); - - const files = await io.openai.listFiles("list-files"); - await io.logger.info("files", files); - - //this will fail because the fine tune didn't complete - await io.logger.info("This next task will fail because the model never completed"); - const deleteFineTune = await io.openai.deleteFineTune("delete-fine-tune", { - fineTunedModelId: model.id, - }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/plain.ts b/references/nextjs-reference/src/jobs/plain.ts deleted file mode 100644 index 7eb51b1f8de..00000000000 --- a/references/nextjs-reference/src/jobs/plain.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { client } from "@/trigger"; -import { - ComponentDividerSpacingSize, - ComponentTextColor, - ComponentTextSize, - Plain, -} from "@trigger.dev/plain"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; - -export const plain = new Plain({ - id: "plain-1", - apiKey: process.env["PLAIN_API_KEY"]!, -}); - -client.defineJob({ - id: "plain-playground", - name: "Plain Playground", - version: "0.1.1", - integrations: { - plain, - }, - trigger: eventTrigger({ - name: "plain.playground", - }), - run: async (payload, io, ctx) => { - const { customer } = await io.plain.upsertCustomer("upsert-customer", { - identifier: { - emailAddress: "eric@trigger.dev", - }, - onCreate: { - email: { - email: "eric@trigger.dev", - isVerified: true, - }, - fullName: "Eric Allam", - externalId: "123", - }, - onUpdate: { - fullName: { - value: "Eric Allam", - }, - externalId: { - value: "123", - }, - }, - }); - - const result = await io.plain.runTask("create-issue", async (client) => - client.createIssue({ - customerId: "abcdefghij", - issueTypeId: "123456", - }) - ); - - const foundCustomer = await io.plain.getCustomerById("get-customer", { - customerId: customer.id, - }); - - const timelineEntry = await io.plain.upsertCustomTimelineEntry("upsert-timeline-entry", { - customerId: customer.id, - title: "My timeline entry", - components: [ - { - componentText: { - text: `This is a nice title`, - }, - }, - { - componentDivider: { - dividerSpacingSize: ComponentDividerSpacingSize.M, - }, - }, - { - componentText: { - textSize: ComponentTextSize.S, - textColor: ComponentTextColor.Muted, - text: "External id", - }, - }, - { - componentText: { - text: foundCustomer?.externalId ?? "", - }, - }, - ], - }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/schedules.ts b/references/nextjs-reference/src/jobs/schedules.ts deleted file mode 100644 index d5dc061ebf3..00000000000 --- a/references/nextjs-reference/src/jobs/schedules.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { client } from "@/trigger"; -import { Job, cronTrigger } from "@trigger.dev/sdk"; - -client.defineJob({ - id: "test-cron-schedule-5", - name: "Test Cron Schedule 5", - version: "0.0.1", - logLevel: "debug", - trigger: cronTrigger({ - cron: "*/1 * * * *", - }), - run: async (payload, io, ctx) => { - await io.logger.debug("Hello cron schedule 2a", { - payload, - payload2: payload, - }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/slack.ts b/references/nextjs-reference/src/jobs/slack.ts deleted file mode 100644 index 4df52006072..00000000000 --- a/references/nextjs-reference/src/jobs/slack.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { client } from "@/trigger"; -import { Slack } from "@trigger.dev/slack"; -import { Job, cronTrigger, eventTrigger } from "@trigger.dev/sdk"; - -const db = { - getKpiSummary: async (date: Date) => { - return { - revenue: 23_269, - orders: 1_234, - }; - }, -}; - -export const slack = new Slack({ id: "slack-6" }); -export const slackMissing = new Slack({ id: "slack-7" }); - -client.defineJob({ - id: "slack-kpi-summary", - name: "Slack kpi summary", - version: "0.1.1", - integrations: { - slack, - }, - trigger: cronTrigger({ - cron: "0 9 * * *", // 9am every day (UTC) - }), - run: async (payload, io, ctx) => { - const { revenue } = await db.getKpiSummary(payload.ts); - const response = await io.slack.postMessage("Slack πŸ“", { - text: `Yesterday's revenue was $${revenue}`, - channel: "C04GWUTDC3W", - }); - - return response; - }, -}); - -client.defineJob({ - id: "slack-auto-join", - name: "Slack Auto Join", - version: "0.1.1", - integrations: { - slack, - }, - trigger: eventTrigger({ - name: "slack.auto_join", - }), - run: async (payload, io, ctx) => { - const response = await io.slack.postMessage("Slack πŸ“", { - channel: "C05G130TH4G", - text: "Welcome to the team, Eric!", - blocks: [ - { - type: "section", - text: { - type: "mrkdwn", - text: `Welcome to the team, Eric!`, - }, - }, - { - type: "section", - text: { - type: "mrkdwn", - text: `I'm here to help you get started with Trigger!`, - }, - }, - ], - }); - - return response; - }, -}); - -client.defineJob({ - id: "slack-missing-integration", - name: "Slack with missing integration", - version: "0.1.1", - integrations: { - slack: slackMissing, - }, - trigger: eventTrigger({ - name: "missing.integration", - }), - run: async (payload, io, ctx) => { - const response = await io.slack.postMessage("message", { - text: `There's no Slack connection, or is there?`, - channel: "C04GWUTDC3W", - }); - - return response; - }, -}); diff --git a/references/nextjs-reference/src/jobs/stripe.ts b/references/nextjs-reference/src/jobs/stripe.ts deleted file mode 100644 index df834b82a3b..00000000000 --- a/references/nextjs-reference/src/jobs/stripe.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { Stripe } from "@trigger.dev/stripe"; -import { client } from "@/trigger"; -import { eventTrigger } from "@trigger.dev/sdk"; -import { z } from "zod"; - -const stripe = new Stripe({ - id: "stripe", - apiKey: process.env["STRIPE_API_KEY"]!, -}); - -client.defineJob({ - id: "stripe-example-1", - name: "Stripe Example 1", - version: "0.1.0", - trigger: eventTrigger({ - name: "stripe.example", - schema: z.object({ - customerId: z.string(), - source: z.string(), - }), - }), - integrations: { - stripe, - }, - run: async (payload, io, ctx) => { - await io.stripe.createCharge("create-charge", { - amount: 100, - currency: "usd", - source: payload.source, - customer: payload.customerId, - }); - }, -}); - -client.defineJob({ - id: "stripe-example-1", - name: "Stripe Example 1", - version: "0.1.0", - trigger: eventTrigger({ - name: "stripe.example", - schema: z.object({ - customerId: z.string(), - source: z.string(), - }), - }), - integrations: { - stripe, - }, - run: async (payload, io, ctx) => { - await io.stripe.createCharge("create-charge", { - amount: 100, - currency: "usd", - source: payload.source, - customer: payload.customerId, - }); - }, -}); - -client.defineJob({ - id: "stripe-create-customer", - name: "Stripe Create Customer", - version: "0.1.0", - trigger: eventTrigger({ - name: "stripe.new.customer", - schema: z.object({ - email: z.string(), - name: z.string(), - }), - }), - integrations: { - stripe, - }, - run: async (payload, io, ctx) => { - await io.stripe.createCustomer("create-customer", { - email: payload.email, - name: payload.name, - }); - }, -}); - -client.defineJob({ - id: "stripe-update-customer", - name: "Stripe Update Customer", - version: "0.1.0", - trigger: eventTrigger({ - name: "stripe.update.customer", - schema: z.object({ - customerId: z.string(), - name: z.string(), - }), - }), - integrations: { - stripe, - }, - run: async (payload, io, ctx) => { - await io.stripe.updateCustomer("update-customer", { - id: payload.customerId, - name: payload.name, - }); - }, -}); - -client.defineJob({ - id: "stripe-retrieve-subscription", - name: "Stripe Retrieve Subscription", - version: "0.1.0", - trigger: eventTrigger({ - name: "stripe.retrieve.subscription", - schema: z.object({ - id: z.string(), - }), - }), - integrations: { - stripe, - }, - run: async (payload, io, ctx) => { - const subscription = await io.stripe.retrieveSubscription("get", { - id: payload.id, - expand: ["customer"], - }); - }, -}); - -client.defineJob({ - id: "stripe-on-price", - name: "Stripe On Price", - version: "0.1.0", - trigger: stripe.onPrice({ events: ["price.created", "price.updated"] }), - run: async (payload, io, ctx) => { - if (ctx.event.name === "price.created") { - await io.logger.info("price created!", { ctx }); - } else { - await io.logger.info("price updated!", { ctx }); - } - }, -}); - -client.defineJob({ - id: "stripe-on-price-created", - name: "Stripe On Price Created", - version: "0.1.0", - trigger: stripe.onPriceCreated(), - run: async (payload, io, ctx) => { - await io.logger.info("ctx", { ctx }); - }, -}); - -client.defineJob({ - id: "stripe-on-subscription-created", - name: "Stripe On Subscription Created", - version: "0.1.0", - trigger: stripe.onCustomerSubscriptionCreated({ - filter: { - currency: ["usd"], - }, - }), - run: async (payload, io, ctx) => { - await io.logger.info("ctx", { ctx }); - }, -}); diff --git a/references/nextjs-reference/src/jobs/supabase.ts b/references/nextjs-reference/src/jobs/supabase.ts deleted file mode 100644 index 0b93b3c37a5..00000000000 --- a/references/nextjs-reference/src/jobs/supabase.ts +++ /dev/null @@ -1,341 +0,0 @@ -import { Database } from "@/supabase.types"; -import { client } from "@/trigger"; -import { - type IntegrationIO, - Job, - eventTrigger, - type JobPayload, - type JobIO, - type TriggerPayload, - type IOWithIntegrations, -} from "@trigger.dev/sdk"; -import { SupabaseManagement, Supabase } from "@trigger.dev/supabase"; -import { z } from "zod"; - -const supabase = new SupabaseManagement({ - id: "supabase", -}); - -const db = supabase.db(process.env["SUPABASE_ID"]!); - -const dbNoTypes = supabase.db(process.env["SUPABASE_ID"]!); - -const supabaseManagementKey = new SupabaseManagement({ - id: "supabase-management-key", - apiKey: process.env["SUPABASE_API_KEY"]!, -}); - -const dbKey = supabase.db(process.env["SUPABASE_ID"]!); - -const supabaseDB = new Supabase({ - id: "supabase-db", - supabaseUrl: `https://${process.env["SUPABASE_ID"]}.supabase.co`, - supabaseKey: process.env["SUPABASE_KEY"]!, -}); - -async function doPlaygroundStuff(io: IntegrationIO, ref: string) { - await io.getPGConfig("get-pg-config", { - ref, - }); -} - -new Job(client, { - id: "supabase-playground", - name: "Supabase Playground", - version: "0.1.1", - trigger: eventTrigger({ - name: "supabase.playground", - }), - integrations: { - supabase, - supabaseDB, - supabaseManagementKey, - }, - run: async (payload, io, ctx) => { - await io.supabaseManagementKey.getPGConfig("get-pg-config", { - ref: payload.ref, - }); - - await io.supabase.getOrganizations("get-orgs"); - await io.supabase.getProjects("get-projects"); - - await io.supabase.listFunctions("list-functions", { - ref: payload.ref, - }); - - await io.supabase.runQuery("run-query", { - ref: payload.ref, - query: "SELECT * FROM users", - }); - - await io.supabase.getTypescriptTypes("get-typescript-types", { - ref: payload.ref, - }); - - const users = await io.supabaseDB.runTask( - "fetch-users", - async (db) => { - const { data, error } = await db.from("users").select("*"); - - if (error) throw error; - - return data; - }, - { name: "Fetch Users" } - ); - - const newUser = await io.supabaseDB.runTask( - "create-user", - async (db) => { - return await db - .from("users") - .insert({ - first_name: "John", - last_name: "Doe", - email_address: "john@trigger.dev", - }) - .select(); - }, - { name: "New Users" } - ); - }, -}); - -const createTodoJob = new Job(client, { - id: "supabase-create-todo", - name: "Supabase Create Todo", - version: "0.1.1", - trigger: eventTrigger({ - name: "supabase.create-todo", - schema: z.object({ - contents: z.string(), - user_id: z.number(), - }), - }), - integrations: { - supabaseDB, - }, - run: async (payload, io, ctx) => { - const newTodo = await io.supabaseDB.runTask( - "create-todo", - async (db) => { - const { data, error } = await db - .from("todos") - .insert({ - contents: payload.contents, - user_id: payload.user_id, - is_complete: false, - }) - .select(); - - if (error) throw error; - - return data; - }, - { - name: "Create Todo", - properties: [{ label: "Contents", text: payload.contents }], - } - ); - }, -}); - -type CreateTodo = JobPayload; -type CreateTodoIO = JobIO; - -async function runCreateTodo(payload: CreateTodo, io: CreateTodoIO) { - const newTodo = await io.supabaseDB.runTask( - "create-todo", - async (db) => { - const { data, error } = await db - .from("todos") - .insert({ - contents: payload.contents, - user_id: payload.user_id, - is_complete: false, - }) - .select(); - - if (error) throw error; - - return data; - }, - { - name: "Create Todo", - properties: [{ label: "Contents", text: payload.contents }], - } - ); -} - -const createProjectTrigger = eventTrigger({ - name: "supabase.create", - schema: z.object({ - name: z.string(), - organization_id: z.string(), - plan: z.enum(["free", "pro"]), - region: z.enum(["us-east-1", "us-west-1"]), - password: z.string(), - }), -}); - -async function doRun( - payload: TriggerPayload, - io: IOWithIntegrations<{ supabase: typeof supabase }> -) { - await io.supabase.createProject("create-project", { - name: payload.name, - organization_id: payload.organization_id, - plan: payload.plan, - region: payload.region, - kps_enabled: true, - db_pass: payload.password, - }); -} - -new Job(client, { - id: "supabase-create-project", - name: "Supabase Create Project", - version: "0.1.1", - trigger: createProjectTrigger, - integrations: { - supabase, - }, - run: async (payload, io, ctx) => { - await io.supabase.createProject("create-project", { - name: payload.name, - organization_id: payload.organization_id, - plan: payload.plan, - region: payload.region, - kps_enabled: true, - db_pass: payload.password, - }); - }, -}); - -new Job(client, { - id: "supabase-on-user-insert", - name: "Supabase On User Insert", - version: "0.1.1", - trigger: db.onInserted({ - table: "users", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-user-insert-2", - name: "Supabase On User Insert 2", - version: "0.1.1", - trigger: db.onInserted({ - table: "users", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-user-email-changed", - name: "Supabase On User Email Changed", - version: "0.1.1", - trigger: db.onUpdated({ - table: "users", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-user-deleted", - name: "Supabase On User Deleted", - version: "0.1.1", - trigger: db.onDeleted({ - table: "users", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-todo-created", - name: "Supabase On TODO created", - version: "0.1.1", - trigger: dbKey.onInserted({ - table: "todos", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-todo-created", - name: "Supabase On TODO created", - version: "0.1.1", - trigger: dbKey.onInserted({ - table: "todos", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-todo-completed", - name: "Supabase On TODO completed", - version: "0.1.1", - trigger: dbKey.onUpdated({ - table: "todos", - filter: { - old_record: { - is_complete: [false], - }, - record: { - is_complete: [true], - }, - }, - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => { - await io.logger.log("Todo Completed", { payload }); - }, -}); - -new Job(client, { - id: "supabase-on-tweet-created-or-deleted", - name: "Supabase On Tweet Created or Deleted", - version: "0.1.1", - trigger: dbKey.onDeleted({ - schema: "public_2", - table: "tweets", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); - -new Job(client, { - id: "supabase-on-todo-created-no-types", - name: "Supabase On TODO created", - version: "0.1.1", - trigger: dbNoTypes.onInserted({ - table: "todos", - }), - integrations: { - supabase, - }, - run: async (payload, io, ctx) => {}, -}); diff --git a/references/nextjs-reference/src/jobs/typeform.ts b/references/nextjs-reference/src/jobs/typeform.ts deleted file mode 100644 index a2b03e08218..00000000000 --- a/references/nextjs-reference/src/jobs/typeform.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { client } from "@/trigger"; -import { Typeform, events } from "@trigger.dev/typeform"; -import { Job, eventTrigger } from "@trigger.dev/sdk"; -import { DynamicTrigger } from "@trigger.dev/sdk"; -import { z } from "zod"; - -export const typeform = new Typeform({ - id: "typeform-1", - token: process.env["TYPEFORM_API_KEY"]!, -}); - -client.defineJob({ - id: "typeform-playground", - name: "Typeform Playground", - version: "0.1.1", - integrations: { - typeform, - }, - trigger: eventTrigger({ - name: "typeform.playground", - schema: z.object({ - formId: z.string().optional(), - }), - }), - run: async (payload, io, ctx) => { - await io.typeform.listForms("list-forms"); - - if (payload.formId) { - const form = await io.typeform.getForm("get-form", { - uid: payload.formId, - }); - - const listResponses = await io.typeform.listResponses("list-responses", { - uid: payload.formId, - pageSize: 50, - }); - - const allResponses = await io.typeform.getAllResponses("get-all-responses", { - uid: payload.formId, - }); - } - - await io.typeform.runTask( - "create-form", - async (client) => { - return client.forms.create({ - data: { - title: "My Form", - fields: [ - { - title: "What is your name?", - type: "short_text", - ref: "name", - }, - { - title: "What is your email?", - type: "email", - ref: "email", - }, - ], - }, - }); - }, - { name: "Create Form" } - ); - }, -}); - -client.defineJob({ - id: "typeform-webhook-2", - name: "Typeform Webhook 2", - version: "0.1.1", - trigger: typeform.onFormResponse({ - uid: "QQnotGJM", - tag: "tag4", - }), - run: async (payload, io, ctx) => {}, -}); - -const dynamicTrigger = new DynamicTrigger(client, { - id: "typeform-dynamic-trigger", - source: typeform.source, - event: events.onFormResponse, -}); diff --git a/references/nextjs-reference/src/trigger.ts b/references/nextjs-reference/src/trigger.ts index 86184b71e21..e52fb84d8f1 100644 --- a/references/nextjs-reference/src/trigger.ts +++ b/references/nextjs-reference/src/trigger.ts @@ -19,11 +19,6 @@ export const client = new TriggerClient({ ioLogLocalEnabled: true, }); -export const openai = new OpenAI({ - id: "openai", - apiKey: process.env["OPENAI_API_KEY"]!, -}); - export const github = new Github({ id: "github", octokitRequest: { fetch }, diff --git a/references/nextjs-reference/tsconfig.json b/references/nextjs-reference/tsconfig.json index 28ad34a2cfc..acd8c760250 100644 --- a/references/nextjs-reference/tsconfig.json +++ b/references/nextjs-reference/tsconfig.json @@ -1,11 +1,7 @@ { "compilerOptions": { "target": "ES2015", - "lib": [ - "dom", - "dom.iterable", - "ES2015" - ], + "lib": ["dom", "dom.iterable", "ES2015"], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -19,87 +15,35 @@ "jsx": "preserve", "incremental": true, "paths": { - "@/*": [ - "./src/*" - ], - "@trigger.dev/sdk": [ - "../../packages/trigger-sdk/src/index" - ], - "@trigger.dev/sdk/*": [ - "../../packages/trigger-sdk/src/*" - ], - "@trigger.dev/nextjs": [ - "../../packages/nextjs/src/index" - ], - "@trigger.dev/nextjs/*": [ - "../../packages/nextjs/src/*" - ], - "@trigger.dev/core": [ - "../../packages/core/src/index" - ], - "@trigger.dev/core/*": [ - "../../packages/core/src/*" - ], - "@trigger.dev/integration-kit": [ - "../../packages/integration-kit/src/index" - ], - "@trigger.dev/integration-kit/*": [ - "../../packages/integration-kit/src/*" - ], - "@trigger.dev/github": [ - "../../integrations/github/src/index" - ], - "@trigger.dev/github/*": [ - "../../integrations/github/src/*" - ], - "@trigger.dev/slack": [ - "../../integrations/slack/src/index" - ], - "@trigger.dev/slack/*": [ - "../../integrations/slack/src/*" - ], - "@trigger.dev/openai": [ - "../../integrations/openai/src/index" - ], - "@trigger.dev/openai/*": [ - "../../integrations/openai/src/*" - ], - "@trigger.dev/resend": [ - "../../integrations/resend/src/index" - ], - "@trigger.dev/resend/*": [ - "../../integrations/resend/src/*" - ], - "@trigger.dev/typeform": [ - "../../integrations/typeform/src/index" - ], - "@trigger.dev/typeform/*": [ - "../../integrations/typeform/src/*" - ], - "@trigger.dev/plain": [ - "../../integrations/plain/src/index" - ], - "@trigger.dev/plain/*": [ - "../../integrations/plain/src/*" - ], - "@trigger.dev/supabase": [ - "../../integrations/supabase/src/index" - ], - "@trigger.dev/supabase/*": [ - "../../integrations/supabase/src/*" - ], - "@trigger.dev/stripe": [ - "../../integrations/stripe/src/index" - ], - "@trigger.dev/stripe/*": [ - "../../integrations/stripe/src/*" - ], - "@trigger.dev/sendgrid": [ - "../../integrations/sendgrid/src/index" - ], - "@trigger.dev/sendgrid/*": [ - "../../integrations/sendgrid/src/*" - ] + "@/*": ["./src/*"], + "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], + "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], + "@trigger.dev/react": ["../../packages/react/src/index"], + "@trigger.dev/react/*": ["../../packages/react/src/*"], + "@trigger.dev/nextjs": ["../../packages/nextjs/src/index"], + "@trigger.dev/nextjs/*": ["../../packages/nextjs/src/*"], + "@trigger.dev/core": ["../../packages/core/src/index"], + "@trigger.dev/core/*": ["../../packages/core/src/*"], + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], + "@trigger.dev/github": ["../../integrations/github/src/index"], + "@trigger.dev/github/*": ["../../integrations/github/src/*"], + "@trigger.dev/slack": ["../../integrations/slack/src/index"], + "@trigger.dev/slack/*": ["../../integrations/slack/src/*"], + "@trigger.dev/openai": ["../../integrations/openai/src/index"], + "@trigger.dev/openai/*": ["../../integrations/openai/src/*"], + "@trigger.dev/resend": ["../../integrations/resend/src/index"], + "@trigger.dev/resend/*": ["../../integrations/resend/src/*"], + "@trigger.dev/typeform": ["../../integrations/typeform/src/index"], + "@trigger.dev/typeform/*": ["../../integrations/typeform/src/*"], + "@trigger.dev/plain": ["../../integrations/plain/src/index"], + "@trigger.dev/plain/*": ["../../integrations/plain/src/*"], + "@trigger.dev/supabase": ["../../integrations/supabase/src/index"], + "@trigger.dev/supabase/*": ["../../integrations/supabase/src/*"], + "@trigger.dev/stripe": ["../../integrations/stripe/src/index"], + "@trigger.dev/stripe/*": ["../../integrations/stripe/src/*"], + "@trigger.dev/sendgrid": ["../../integrations/sendgrid/src/index"], + "@trigger.dev/sendgrid/*": ["../../integrations/sendgrid/src/*"] }, "plugins": [ { @@ -107,13 +51,6 @@ } ] }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From 6ce87f169acba230a943789f1457321a2fb3a528 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 21 Sep 2023 11:35:12 -0700 Subject: [PATCH 27/95] Fixed dependency --- packages/trigger-sdk/src/status.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/trigger-sdk/src/status.ts b/packages/trigger-sdk/src/status.ts index ff249604a50..4971d55f34f 100644 --- a/packages/trigger-sdk/src/status.ts +++ b/packages/trigger-sdk/src/status.ts @@ -1,7 +1,6 @@ -import { DisplayProperty, StatusUpdate } from "@trigger.dev/core/schemas"; +import { DisplayProperty, StatusUpdate } from "@trigger.dev/core"; import { IntegrationTaskKey } from "./integrations"; import { IO } from "./io"; -import { TriggerClient } from "./triggerClient"; export class TriggerStatus { constructor( From f73a2a424b709e62feff35d6fdbd07f02027be5c Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 21 Sep 2023 13:19:03 -0700 Subject: [PATCH 28/95] Revert "Upgrade to the latest remix (pre v2)" This reverts commit 4edc7112abd014c1ea37983127a7982e78695823. --- apps/webapp/package.json | 16 +- package.json | 8 +- pnpm-lock.yaml | 1034 ++++++++++++++++++++++++++------------ 3 files changed, 735 insertions(+), 323 deletions(-) diff --git a/apps/webapp/package.json b/apps/webapp/package.json index 657d0618131..427e378ce21 100644 --- a/apps/webapp/package.json +++ b/apps/webapp/package.json @@ -54,11 +54,11 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.5", - "@remix-run/express": "1.19.3", - "@remix-run/node": "1.19.3", - "@remix-run/react": "1.19.3", - "@remix-run/serve": "1.19.3", - "@remix-run/server-runtime": "1.19.3", + "@remix-run/express": "1.19.2-pre.0", + "@remix-run/node": "1.19.2-pre.0", + "@remix-run/react": "1.19.2-pre.0", + "@remix-run/serve": "1.19.2-pre.0", + "@remix-run/server-runtime": "1.19.2-pre.0", "@team-plain/typescript-sdk": "^2.2.0", "@trigger.dev/companyicons": "^1.5.14", "@trigger.dev/database": "workspace:*", @@ -114,9 +114,9 @@ "zod-error": "1.5.0" }, "devDependencies": { - "@remix-run/dev": "1.19.3", - "@remix-run/eslint-config": "1.19.3", - "@remix-run/testing": "^1.19.3", + "@remix-run/dev": "1.19.2-pre.0", + "@remix-run/eslint-config": "1.19.2-pre.0", + "@remix-run/testing": "^1.19.2-pre.0", "@storybook/addon-backgrounds": "^7.0.7", "@storybook/addon-docs": "^7.0.12", "@storybook/addon-essentials": "^7.0.7", diff --git a/package.json b/package.json index 663f38133b7..106934b18c8 100644 --- a/package.json +++ b/package.json @@ -59,15 +59,17 @@ "turbo": "^1.10.3", "vite": "^4.1.1", "vite-tsconfig-paths": "^4.0.5", - "vitest": "^0.28.4", + "vitest": "^0.28.4" + }, + "packageManager": "pnpm@7.18.1", + "dependencies": { "@changesets/cli": "2.26.2", "@remix-run/changelog-github": "^0.0.5", "node-fetch": "2.6.x" }, - "packageManager": "pnpm@7.18.1", "pnpm": { "patchedDependencies": { "@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch" } } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1991f016eee..f6dc357ca8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,11 +29,13 @@ importers: vite: ^4.1.1 vite-tsconfig-paths: ^4.0.5 vitest: ^0.28.4 - devDependencies: + dependencies: '@changesets/cli': 2.26.2 + '@remix-run/changelog-github': 0.0.5 + node-fetch: 2.6.7 + devDependencies: '@manypkg/cli': 0.19.2 '@playwright/test': 1.37.0 - '@remix-run/changelog-github': 0.0.5 '@tailwindcss/forms': 0.5.3_tailwindcss@3.1.8 '@tailwindcss/typography': 0.5.9_tailwindcss@3.1.8 '@trigger.dev/cli': link:packages/cli @@ -41,7 +43,6 @@ importers: '@types/node': 18.17.1 autoprefixer: 10.4.13_postcss@8.4.21 eslint-config-custom: link:config-packages/eslint-config-custom - node-fetch: 2.6.7 postcss: 8.4.21 prettier: 3.0.0 tailwindcss: 3.1.8_postcss@8.4.21 @@ -78,14 +79,14 @@ importers: '@radix-ui/react-switch': ^1.0.3 '@radix-ui/react-tabs': ^1.0.3 '@radix-ui/react-tooltip': ^1.0.5 - '@remix-run/dev': 1.19.3 - '@remix-run/eslint-config': 1.19.3 - '@remix-run/express': 1.19.3 - '@remix-run/node': 1.19.3 - '@remix-run/react': 1.19.3 - '@remix-run/serve': 1.19.3 - '@remix-run/server-runtime': 1.19.3 - '@remix-run/testing': ^1.19.3 + '@remix-run/dev': 1.19.2-pre.0 + '@remix-run/eslint-config': 1.19.2-pre.0 + '@remix-run/express': 1.19.2-pre.0 + '@remix-run/node': 1.19.2-pre.0 + '@remix-run/react': 1.19.2-pre.0 + '@remix-run/serve': 1.19.2-pre.0 + '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/testing': ^1.19.2-pre.0 '@storybook/addon-backgrounds': ^7.0.7 '@storybook/addon-docs': ^7.0.12 '@storybook/addon-essentials': ^7.0.7 @@ -221,11 +222,11 @@ importers: '@radix-ui/react-switch': 1.0.3_daadhm4ohxobgnrt365as5bhny '@radix-ui/react-tabs': 1.0.3_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-tooltip': 1.0.5_bwbutfx4xj25dewzmxso6o3wga - '@remix-run/express': 1.19.3_express@4.18.2 - '@remix-run/node': 1.19.3 - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y - '@remix-run/serve': 1.19.3 - '@remix-run/server-runtime': 1.19.3 + '@remix-run/express': 1.19.2-pre.0_express@4.18.2 + '@remix-run/node': 1.19.2-pre.0 + '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/serve': 1.19.2-pre.0 + '@remix-run/server-runtime': 1.19.2-pre.0 '@team-plain/typescript-sdk': 2.2.0 '@trigger.dev/companyicons': 1.5.14_biqbaboplfbrettd7655fr4n2y '@trigger.dev/core': link:../../packages/core @@ -263,11 +264,11 @@ importers: react-hot-toast: 2.4.0_biqbaboplfbrettd7655fr4n2y react-hotkeys-hook: 3.4.7_biqbaboplfbrettd7655fr4n2y react-use: 17.4.0_biqbaboplfbrettd7655fr4n2y - remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq - remix-auth-email-link: 1.5.2_ol6qopr3fd43y6cb3yt2sxcwqm - remix-auth-github: 1.3.0_ol6qopr3fd43y6cb3yt2sxcwqm - remix-typedjson: 0.1.7_kxjca5vfcd6kjtdv6u76olr43m - remix-utils: 6.0.0_bw2af4wyg3wd47z5c445wg6duq + remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y + remix-auth-email-link: 1.5.2_xmjsiulzsxcc3znmuhq3turs2q + remix-auth-github: 1.3.0_xmjsiulzsxcc3znmuhq3turs2q + remix-typedjson: 0.1.7_bhtgrpeaoe6kbm4hb4gzl6x7c4 + remix-utils: 6.0.0_c5pntwu5f7mrfmmvuwtiprk4cy semver: 7.5.0 simple-oauth2: 5.0.0 simplur: 3.0.1 @@ -280,9 +281,9 @@ importers: zod: 3.21.4 zod-error: 1.5.0 devDependencies: - '@remix-run/dev': 1.19.3_xl5hyxw6pjyufz5gmv27wza56y - '@remix-run/eslint-config': 1.19.3_ol4nhuzbuflsbzk2mijpqykzba - '@remix-run/testing': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/dev': 1.19.2-pre.0_36n2i74sizt32vwpdxc4husnkq + '@remix-run/eslint-config': 1.19.2-pre.0_ol4nhuzbuflsbzk2mijpqykzba + '@remix-run/testing': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y '@storybook/addon-backgrounds': 7.0.9_biqbaboplfbrettd7655fr4n2y '@storybook/addon-docs': 7.0.12_biqbaboplfbrettd7655fr4n2y '@storybook/addon-essentials': 7.0.9_biqbaboplfbrettd7655fr4n2y @@ -350,7 +351,7 @@ importers: devDependencies: eslint: 8.31.0 eslint-config-prettier: 8.6.0_eslint@8.31.0 - eslint-config-turbo: 1.10.14_eslint@8.31.0 + eslint-config-turbo: 1.10.13_eslint@8.31.0 eslint-plugin-react: 7.31.8_eslint@8.31.0 typescript: 4.9.4 @@ -1414,6 +1415,11 @@ packages: '@babel/highlight': 7.22.13 chalk: 2.4.2 + /@babel/compat-data/7.21.7: + resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/compat-data/7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -1497,28 +1503,28 @@ packages: '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.45.0 eslint-visitor-keys: 2.1.0 - semver: 6.3.1 + semver: 6.3.0 dev: true - /@babel/eslint-parser/7.21.8_6ukzja5aifaykyuthozjethhji: + /@babel/eslint-parser/7.21.8_mxgwiyfjuazeomuuf56n24ufpy: resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.22.17 + '@babel/core': 7.21.8 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.31.0 eslint-visitor-keys: 2.1.0 - semver: 6.3.1 + semver: 6.3.0 dev: true /@babel/generator/7.21.5: resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.21.5 '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 @@ -1554,6 +1560,20 @@ packages: '@babel/types': 7.22.17 dev: true + /@babel/helper-compilation-targets/7.21.5_@babel+core@7.20.12: + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.20.12 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} engines: {node: '>=6.9.0'} @@ -1568,6 +1588,20 @@ packages: semver: 6.3.1 dev: true + /@babel/helper-compilation-targets/7.21.5_@babel+core@7.22.17: + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.17 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets/7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -1852,6 +1886,11 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-plugin-utils/7.21.5: + resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-plugin-utils/7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} @@ -1959,6 +1998,11 @@ packages: resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option/7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -2009,7 +2053,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.21.5 dev: true /@babel/parser/7.22.16: @@ -2088,7 +2132,6 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2104,7 +2147,6 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2120,7 +2162,6 @@ packages: /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2136,7 +2177,6 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2150,7 +2190,6 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2164,7 +2203,6 @@ packages: /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2178,7 +2216,6 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2193,7 +2230,6 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2208,7 +2244,6 @@ packages: /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. peerDependencies: '@babel/core': ^7.12.0 dependencies: @@ -2223,7 +2258,6 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2235,7 +2269,6 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2247,7 +2280,6 @@ packages: /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2259,7 +2291,6 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2271,7 +2302,6 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2283,7 +2313,6 @@ packages: /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.22.17: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2295,7 +2324,6 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2307,7 +2335,6 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2319,7 +2346,6 @@ packages: /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2331,7 +2357,6 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2343,7 +2368,6 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2355,7 +2379,6 @@ packages: /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2367,7 +2390,6 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2379,7 +2401,6 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2391,7 +2412,6 @@ packages: /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2403,7 +2423,6 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2415,7 +2434,6 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2427,7 +2445,6 @@ packages: /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2439,7 +2456,6 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2454,7 +2470,6 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2469,7 +2484,6 @@ packages: /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.22.17: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2484,7 +2498,6 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2496,7 +2509,6 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2508,7 +2520,6 @@ packages: /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2520,7 +2531,6 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2533,7 +2543,6 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2546,7 +2555,6 @@ packages: /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2559,7 +2567,6 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2573,7 +2580,6 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2587,7 +2593,6 @@ packages: /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2601,7 +2606,6 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.20.12: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2617,7 +2621,6 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2633,7 +2636,6 @@ packages: /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.22.17: resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2649,7 +2651,6 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2661,7 +2662,6 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2673,7 +2673,6 @@ packages: /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -2932,6 +2931,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx/7.18.6: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} @@ -2952,6 +2960,36 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.22.17: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.21.8: + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.22.17: + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + /@babel/plugin-syntax-jsx/7.22.5: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} @@ -2961,6 +2999,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.21.8: + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.17: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} @@ -3192,6 +3240,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-typescript/7.21.4_@babel+core@7.21.8: + resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + /@babel/plugin-syntax-typescript/7.21.4_@babel+core@7.22.17: resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} engines: {node: '>=6.9.0'} @@ -3199,7 +3257,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.21.5 dev: true /@babel/plugin-transform-arrow-functions/7.21.5_@babel+core@7.20.12: @@ -4012,6 +4070,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.21.8: + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} engines: {node: '>=6.9.0'} @@ -4031,6 +4099,16 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15 dev: true + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.21.8: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.21.8 + dev: true + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} @@ -4041,6 +4119,19 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 dev: true + /@babel/plugin-transform-react-jsx/7.20.7: + resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6 + '@babel/types': 7.20.7 + dev: true + /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.12: resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} engines: {node: '>=6.9.0'} @@ -4069,6 +4160,20 @@ packages: '@babel/types': 7.20.7 dev: true + /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.22.17: + resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.22.17 + '@babel/types': 7.20.7 + dev: true + /@babel/plugin-transform-react-jsx/7.22.15: resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -4082,6 +4187,20 @@ packages: '@babel/types': 7.22.17 dev: true + /@babel/plugin-transform-react-jsx/7.22.15_@babel+core@7.21.8: + resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.21.8 + '@babel/types': 7.22.17 + dev: true + /@babel/plugin-transform-react-jsx/7.22.15_@babel+core@7.22.17: resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} @@ -4105,6 +4224,17 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.21.8: + resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} engines: {node: '>=6.9.0'} @@ -4332,6 +4462,21 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.21.8: + resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.21.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.22.17: resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} engines: {node: '>=6.9.0'} @@ -4416,11 +4561,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.21.7 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 + '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.20.12 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 @@ -4487,12 +4632,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.20.12 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 - '@babel/types': 7.22.17 + '@babel/types': 7.21.5 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 core-js-compat: 3.27.1 - semver: 6.3.1 + semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true @@ -4503,11 +4648,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.21.7 '@babel/core': 7.21.8 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 + '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.21.8 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.21.8 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.21.8 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.21.8 @@ -4574,12 +4719,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.21.8 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.21.8 '@babel/preset-modules': 0.1.5_@babel+core@7.21.8 - '@babel/types': 7.22.17 + '@babel/types': 7.21.5 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.8 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.8 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.8 core-js-compat: 3.27.1 - semver: 6.3.1 + semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true @@ -4590,11 +4735,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 + '@babel/compat-data': 7.21.7 '@babel/core': 7.22.17 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 + '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.22.17 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.22.17 '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.22.17 @@ -4661,12 +4806,12 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.21.5_@babel+core@7.22.17 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.22.17 '@babel/preset-modules': 0.1.5_@babel+core@7.22.17 - '@babel/types': 7.22.17 + '@babel/types': 7.21.5 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.22.17 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.22.17 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.22.17 core-js-compat: 3.27.1 - semver: 6.3.1 + semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true @@ -4739,14 +4884,29 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 '@babel/plugin-transform-react-display-name': 7.18.6 - '@babel/plugin-transform-react-jsx': 7.22.15 + '@babel/plugin-transform-react-jsx': 7.20.7 '@babel/plugin-transform-react-jsx-development': 7.18.6 '@babel/plugin-transform-react-pure-annotations': 7.18.6 dev: true + /@babel/preset-react/7.18.6_@babel+core@7.21.8: + resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.21.8 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.21.8 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.21.8 + '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.21.8 + dev: true + /@babel/preset-react/7.18.6_@babel+core@7.22.17: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} @@ -4754,14 +4914,30 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.22.17 - '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.22.17 '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.22.17 '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.22.17 dev: true + /@babel/preset-typescript/7.21.5_@babel+core@7.21.8: + resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8 + '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.21.8 + '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.8 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/preset-typescript/7.21.5_@babel+core@7.22.17: resolution: {integrity: sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA==} engines: {node: '>=6.9.0'} @@ -4769,9 +4945,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.17 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.22.17 '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.22.17 '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.22.17 transitivePeerDependencies: @@ -4825,14 +5001,14 @@ packages: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 + '@babel/parser': 7.21.8 + '@babel/types': 7.21.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -4906,7 +5082,7 @@ packages: prettier: 2.8.8 resolve-from: 5.0.0 semver: 7.5.4 - dev: true + dev: false /@changesets/assemble-release-plan/5.2.4_3wuhjtl4hjck4itk3w32z4cd5u: resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} @@ -4917,14 +5093,14 @@ packages: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 semver: 7.5.4 - dev: true + dev: false patched: true /@changesets/changelog-git/0.1.14: resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} dependencies: '@changesets/types': 5.2.1 - dev: true + dev: false /@changesets/cli/2.26.2: resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} @@ -4963,7 +5139,7 @@ packages: spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.1.6 - dev: true + dev: false /@changesets/config/2.3.1: resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} @@ -4975,13 +5151,13 @@ packages: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 - dev: true + dev: false /@changesets/errors/0.1.4: resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} dependencies: extendable-error: 0.1.7 - dev: true + dev: false /@changesets/get-dependents-graph/1.3.6: resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} @@ -4991,7 +5167,7 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.5.4 - dev: true + dev: false /@changesets/get-github-info/0.5.2: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} @@ -5000,7 +5176,7 @@ packages: node-fetch: 2.6.12 transitivePeerDependencies: - encoding - dev: true + dev: false /@changesets/get-release-plan/3.0.17: resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} @@ -5012,11 +5188,11 @@ packages: '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - dev: true + dev: false /@changesets/get-version-range-type/0.3.2: resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} - dev: true + dev: false /@changesets/git/2.0.0: resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} @@ -5028,20 +5204,20 @@ packages: is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 - dev: true + dev: false /@changesets/logger/0.0.5: resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} dependencies: chalk: 2.4.2 - dev: true + dev: false /@changesets/parse/0.3.16: resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} dependencies: '@changesets/types': 5.2.1 js-yaml: 3.14.1 - dev: true + dev: false /@changesets/pre/1.0.14: resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} @@ -5051,7 +5227,7 @@ packages: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - dev: true + dev: false /@changesets/read/0.5.9: resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} @@ -5064,15 +5240,14 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - dev: true + dev: false /@changesets/types/4.1.0: resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - dev: true /@changesets/types/5.2.1: resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} - dev: true + dev: false /@changesets/write/0.2.3: resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} @@ -5082,7 +5257,7 @@ packages: fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 - dev: true + dev: false /@codemirror/autocomplete/6.4.0_czcfkg2f66rxeiodoti7r2gulu: resolution: {integrity: sha512-HLF2PnZAm1s4kGs30EiqKMgD7XsYaQ0XJnMR0rofEWQ5t5D60SfqpDIkIh1ze5tiEbyUWm8+VJ6W1/erVvBMIA==} @@ -7179,7 +7354,6 @@ packages: '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 - dev: true /@manypkg/get-packages/1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} @@ -7190,7 +7364,6 @@ packages: fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - dev: true /@mdx-js/react/2.3.0_react@18.2.0: resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} @@ -9876,36 +10049,36 @@ packages: dotenv: 8.6.0 transitivePeerDependencies: - encoding - dev: true + dev: false /@remix-run/css-bundle/1.19.3: resolution: {integrity: sha512-XccfuPmTdtXT+Kx7Df62cyk8d2I6DrHIB02uDyIGOTq8lPlMXznErMW14asVcbGOV5ieAOvnch/pUJrsKoWRmw==} engines: {node: '>=14.0.0'} dev: false - /@remix-run/dev/1.19.3_@remix-run+serve@1.19.3: - resolution: {integrity: sha512-Yh733OI0AxR7QbPaJbocujxSF1S5CToDmfZnmv5SlTTIXEw5KfnbCceHy9qhUp0nrkz2YT7pd1zbTEVYIi/Vug==} + /@remix-run/dev/1.19.2-pre.0_36n2i74sizt32vwpdxc4husnkq: + resolution: {integrity: sha512-8s7g8jLueKcIr5Gb7qvZRJVzfHx2KqyApGYW55LrQ63kNwZwuKHglYSMoaQGB4xUhX2cfmzW7pIcunfbh3SNyA==} engines: {node: '>=14.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^1.19.3 + '@remix-run/serve': ^1.19.2-pre.0 peerDependenciesMeta: '@remix-run/serve': optional: true dependencies: - '@babel/core': 7.22.17 - '@babel/generator': 7.22.15 - '@babel/parser': 7.22.16 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.17 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 - '@babel/preset-env': 7.21.5_@babel+core@7.22.17 - '@babel/preset-typescript': 7.21.5_@babel+core@7.22.17 - '@babel/traverse': 7.22.17 - '@babel/types': 7.22.17 + '@babel/core': 7.21.8 + '@babel/generator': 7.21.5 + '@babel/parser': 7.21.8 + '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 + '@babel/preset-env': 7.21.5_@babel+core@7.21.8 + '@babel/preset-typescript': 7.21.5_@babel+core@7.21.8 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 '@npmcli/package-json': 2.0.0 - '@remix-run/serve': 1.19.3 - '@remix-run/server-runtime': 1.19.3 - '@vanilla-extract/integration': 6.2.1 + '@remix-run/serve': 1.19.2-pre.0 + '@remix-run/server-runtime': 1.19.2-pre.0 + '@vanilla-extract/integration': 6.2.1_@types+node@18.11.18 arg: 5.0.2 cacache: 15.3.0 chalk: 4.1.2 @@ -9925,16 +10098,16 @@ packages: json5: 2.2.3 lodash: 4.17.21 lodash.debounce: 4.0.8 - minimatch: 9.0.3 + minimatch: 9.0.0 node-fetch: 2.6.12 ora: 5.4.1 picocolors: 1.0.0 picomatch: 2.3.1 pidtree: 0.6.0 - postcss: 8.4.29 - postcss-discard-duplicates: 5.1.0_postcss@8.4.29 - postcss-load-config: 4.0.1_postcss@8.4.29 - postcss-modules: 6.0.0_postcss@8.4.29 + postcss: 8.4.27 + postcss-discard-duplicates: 5.1.0_postcss@8.4.27 + postcss-load-config: 4.0.1_xf4uokkt3yp55pilbqb2sbk4eu + postcss-modules: 6.0.0_postcss@8.4.27 prettier: 2.8.8 pretty-ms: 7.0.1 proxy-agent: 6.3.0 @@ -9964,7 +10137,7 @@ packages: - utf-8-validate dev: true - /@remix-run/dev/1.19.3_xl5hyxw6pjyufz5gmv27wza56y: + /@remix-run/dev/1.19.3_@remix-run+serve@1.19.3: resolution: {integrity: sha512-Yh733OI0AxR7QbPaJbocujxSF1S5CToDmfZnmv5SlTTIXEw5KfnbCceHy9qhUp0nrkz2YT7pd1zbTEVYIi/Vug==} engines: {node: '>=14.0.0'} hasBin: true @@ -9986,7 +10159,7 @@ packages: '@npmcli/package-json': 2.0.0 '@remix-run/serve': 1.19.3 '@remix-run/server-runtime': 1.19.3 - '@vanilla-extract/integration': 6.2.1_@types+node@18.11.18 + '@vanilla-extract/integration': 6.2.1 arg: 5.0.2 cacache: 15.3.0 chalk: 4.1.2 @@ -10014,7 +10187,7 @@ packages: pidtree: 0.6.0 postcss: 8.4.29 postcss-discard-duplicates: 5.1.0_postcss@8.4.29 - postcss-load-config: 4.0.1_ntcifew6f27c4l7dh5q6i7owpq + postcss-load-config: 4.0.1_postcss@8.4.29 postcss-modules: 6.0.0_postcss@8.4.29 prettier: 2.8.8 pretty-ms: 7.0.1 @@ -10045,8 +10218,8 @@ packages: - utf-8-validate dev: true - /@remix-run/eslint-config/1.19.3_iyrjzpeh7xaqnslyy6ezqi7i5u: - resolution: {integrity: sha512-8yvPtsJj1hBKp6ypTTDhHmJ2ftoPmBV1xPPOIqhMLDQ1fwmzocwnkz9RHTeMYkdNSzUuqGnpGaMTHgrT3WfckQ==} + /@remix-run/eslint-config/1.19.2-pre.0_ol4nhuzbuflsbzk2mijpqykzba: + resolution: {integrity: sha512-DnMiKi5B2ZWehcVjm0fY1KnE+/oqphnLb0Pq2ueac16WcBqW1S6HnrX4bv+6ZXuAqRVcv0eooOem5uJTx0DWfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^8.0.0 @@ -10056,32 +10229,32 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.22.17 - '@babel/eslint-parser': 7.21.8_26dsxalng3b37usmqamlicq2qm - '@babel/preset-react': 7.18.6_@babel+core@7.22.17 + '@babel/core': 7.21.8 + '@babel/eslint-parser': 7.21.8_mxgwiyfjuazeomuuf56n24ufpy + '@babel/preset-react': 7.18.6_@babel+core@7.21.8 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.6_dkwsiqroe3j3ca5rsnvbsfspsy - '@typescript-eslint/parser': 5.59.6_mhvizudgavq6jzvqzwcqcv4nnm - eslint: 8.45.0 + '@typescript-eslint/eslint-plugin': 5.59.6_bhjpu5ld5qmewts22wsycix4mi + '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe + eslint: 8.31.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_p5geytdocx6mbqwwlptzjkv4li - eslint-plugin-import: 2.27.5_xpt3ce3kmhzhmuk3dcuwe6u2pe - eslint-plugin-jest: 26.9.0_w57sqwgpppmutnwrfqbwy723iu - eslint-plugin-jest-dom: 4.0.3_eslint@8.45.0 - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.45.0 - eslint-plugin-node: 11.1.0_eslint@8.45.0 - eslint-plugin-react: 7.32.2_eslint@8.45.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.45.0 - eslint-plugin-testing-library: 5.11.0_mhvizudgavq6jzvqzwcqcv4nnm + eslint-import-resolver-typescript: 3.5.5_xfsrrykzxa74jzzdrhgdfm2jz4 + eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 + eslint-plugin-jest: 26.9.0_x6daaykndggqmizjmaubfxsrba + eslint-plugin-jest-dom: 4.0.3_eslint@8.31.0 + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.31.0 + eslint-plugin-node: 11.1.0_eslint@8.31.0 + eslint-plugin-react: 7.32.2_eslint@8.31.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 + eslint-plugin-testing-library: 5.11.0_iukboom6ndih5an6iafl45j2fe react: 18.2.0 - typescript: 4.9.5 + typescript: 4.9.4 transitivePeerDependencies: - eslint-import-resolver-webpack - jest - supports-color dev: true - /@remix-run/eslint-config/1.19.3_ol4nhuzbuflsbzk2mijpqykzba: + /@remix-run/eslint-config/1.19.3_iyrjzpeh7xaqnslyy6ezqi7i5u: resolution: {integrity: sha512-8yvPtsJj1hBKp6ypTTDhHmJ2ftoPmBV1xPPOIqhMLDQ1fwmzocwnkz9RHTeMYkdNSzUuqGnpGaMTHgrT3WfckQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -10093,30 +10266,39 @@ packages: optional: true dependencies: '@babel/core': 7.22.17 - '@babel/eslint-parser': 7.21.8_6ukzja5aifaykyuthozjethhji + '@babel/eslint-parser': 7.21.8_26dsxalng3b37usmqamlicq2qm '@babel/preset-react': 7.18.6_@babel+core@7.22.17 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.59.6_bhjpu5ld5qmewts22wsycix4mi - '@typescript-eslint/parser': 5.59.6_iukboom6ndih5an6iafl45j2fe - eslint: 8.31.0 + '@typescript-eslint/eslint-plugin': 5.59.6_dkwsiqroe3j3ca5rsnvbsfspsy + '@typescript-eslint/parser': 5.59.6_mhvizudgavq6jzvqzwcqcv4nnm + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_xfsrrykzxa74jzzdrhgdfm2jz4 - eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 - eslint-plugin-jest: 26.9.0_x6daaykndggqmizjmaubfxsrba - eslint-plugin-jest-dom: 4.0.3_eslint@8.31.0 - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.31.0 - eslint-plugin-node: 11.1.0_eslint@8.31.0 - eslint-plugin-react: 7.32.2_eslint@8.31.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 - eslint-plugin-testing-library: 5.11.0_iukboom6ndih5an6iafl45j2fe + eslint-import-resolver-typescript: 3.5.5_p5geytdocx6mbqwwlptzjkv4li + eslint-plugin-import: 2.27.5_xpt3ce3kmhzhmuk3dcuwe6u2pe + eslint-plugin-jest: 26.9.0_w57sqwgpppmutnwrfqbwy723iu + eslint-plugin-jest-dom: 4.0.3_eslint@8.45.0 + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.45.0 + eslint-plugin-node: 11.1.0_eslint@8.45.0 + eslint-plugin-react: 7.32.2_eslint@8.45.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.45.0 + eslint-plugin-testing-library: 5.11.0_mhvizudgavq6jzvqzwcqcv4nnm react: 18.2.0 - typescript: 4.9.4 + typescript: 4.9.5 transitivePeerDependencies: - eslint-import-resolver-webpack - jest - supports-color dev: true + /@remix-run/express/1.19.2-pre.0_express@4.18.2: + resolution: {integrity: sha512-TJij9DkC4fnls9q1dz8eJ+IjUKdrwd2edz7TLxTb/To/3YUyxJLz7pom3fOQHZ7L0Ynwi3TuEcmnSlkrkztWjw==} + engines: {node: '>=14.0.0'} + peerDependencies: + express: ^4.17.1 + dependencies: + '@remix-run/node': 1.19.2-pre.0 + express: 4.18.2 + /@remix-run/express/1.19.3_express@4.18.2: resolution: {integrity: sha512-jeWZ9xFyaarKSbpN/sQWx53QApGs16IiB8XC7CkOAEVDtLfOhXkJ9jOZNScOFUn6JXPx2oAwBBRRdbwOmryScQ==} engines: {node: '>=14.0.0'} @@ -10126,6 +10308,20 @@ packages: '@remix-run/node': 1.19.3 express: 4.18.2 + /@remix-run/node/1.19.2-pre.0: + resolution: {integrity: sha512-/Isbggw/fSbFeTy0hoL8gRwS8FCmrFyi6q3zc8rV8s7UsV70VzB+9QzWQHanCMveZFFT1FtkoON8s/u0vT1Wvw==} + engines: {node: '>=14.0.0'} + dependencies: + '@remix-run/server-runtime': 1.19.2-pre.0 + '@remix-run/web-fetch': 4.3.6 + '@remix-run/web-file': 3.0.3 + '@remix-run/web-stream': 1.0.4 + '@web3-storage/multipart-parser': 1.0.0 + abort-controller: 3.0.0 + cookie-signature: 1.2.0 + source-map-support: 0.5.21 + stream-slice: 0.1.2 + /@remix-run/node/1.19.3: resolution: {integrity: sha512-z5qrVL65xLXIUpU4mkR4MKlMeKARLepgHAk4W5YY3IBXOreRqOGUC70POViYmY7x38c2Ia1NwqL80H+0h7jbMw==} engines: {node: '>=14.0.0'} @@ -10140,6 +10336,18 @@ packages: source-map-support: 0.5.21 stream-slice: 0.1.2 + /@remix-run/react/1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-eO8HnotwHwqfazyXol71W1mMZZ2lE/zVt4xpAst7UjVvOhmXbolTUdK4Hru8Q0SDuaE53feux3KsFgBvug/qpg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@remix-run/router': 1.7.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y + /@remix-run/react/1.19.3_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-iP37MZ+oG1n4kv4rX77pKT/knra51lNwKo5tinPPF0SuNJhF3+XjWo5nwEjvisKTXLZ/OHeicinhgX2JHHdDvA==} engines: {node: '>=14.0.0'} @@ -10151,11 +10359,25 @@ packages: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y + dev: false /@remix-run/router/1.7.2: resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} engines: {node: '>=14'} + /@remix-run/serve/1.19.2-pre.0: + resolution: {integrity: sha512-5rVnhsNO5X1lKJCcWPmOYAl30XuNuUpbAFPpUC654YqMwuulFSnY879jAFPUzeIf4Rarmb50LLkEwizcRk8vuw==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@remix-run/express': 1.19.2-pre.0_express@4.18.2 + '@remix-run/node': 1.19.2-pre.0 + compression: 1.7.4 + express: 4.18.2 + morgan: 1.10.0 + transitivePeerDependencies: + - supports-color + /@remix-run/serve/1.19.3: resolution: {integrity: sha512-RUVEy7EBYvHO1hIuyVQJyIYZeFfXecC+Uaw6GvZscLywIGnhcAj+5dpeK6HVayNuV4kKLvBp0F4ZGHbwW1oWaA==} engines: {node: '>=14.0.0'} @@ -10170,6 +10392,17 @@ packages: transitivePeerDependencies: - supports-color + /@remix-run/server-runtime/1.19.2-pre.0: + resolution: {integrity: sha512-e7qZ5z/Yj8jYw7uJy5LqTV33RPGN96HymFYZpDwWuI9rffOmyO9tt5xcfc44g18G5lg36449pDjhQlSLHc1a8A==} + engines: {node: '>=14.0.0'} + dependencies: + '@remix-run/router': 1.7.2 + '@types/cookie': 0.4.1 + '@web3-storage/multipart-parser': 1.0.0 + cookie: 0.4.2 + set-cookie-parser: 2.5.1 + source-map: 0.7.4 + /@remix-run/server-runtime/1.19.3: resolution: {integrity: sha512-KzQ+htUsKqpBgKE2tWo7kIIGy3MyHP58Io/itUPvV+weDjApwr9tQr9PZDPA3yAY6rAzLax7BU0NMSYCXWFY5A==} engines: {node: '>=14.0.0'} @@ -10181,14 +10414,14 @@ packages: set-cookie-parser: 2.5.1 source-map: 0.7.4 - /@remix-run/testing/1.19.3_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-qO485TWDxHUnWuWX8PotBdq4xa5W3WUQ+iYvoWNCyILw6iJG0WeBTgd2qN44GFEOE1Hd80RqDXVuAlTkG33rCA==} + /@remix-run/testing/1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-QK8nZKsgFOXZez0FmbINTgNfsbwKuBFLYQTUt2EtvJ/cNTfReiVyXxjG7U320Ghb98E5/WZS2pMpHbm3U+jcbg==} engines: {node: '>=14.0.0'} peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@remix-run/node': 1.19.3 - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y + '@remix-run/node': 1.19.2-pre.0 + '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y '@remix-run/router': 1.7.2 react: 18.2.0 react-router-dom: 6.14.2_biqbaboplfbrettd7655fr4n2y @@ -12470,7 +12703,7 @@ packages: resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} dependencies: ci-info: 3.8.0 - dev: true + dev: false /@types/is-stream/1.1.0: resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==} @@ -12620,7 +12853,7 @@ packages: /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true + dev: false /@types/morgan/1.9.4: resolution: {integrity: sha512-cXoc4k+6+YAllH3ZHmx4hf7La1dzUk6keTR4bF4b4Sc0mZxU/zK4wO7l+ZzezXm/jkYj/qC+uYGZrarZdIVvyQ==} @@ -12785,7 +13018,6 @@ packages: /@types/semver/7.5.1: resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} - dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} @@ -13328,8 +13560,8 @@ packages: /@vanilla-extract/integration/6.2.1: resolution: {integrity: sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==} dependencies: - '@babel/core': 7.22.17 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 + '@babel/core': 7.21.8 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 '@vanilla-extract/babel-plugin-debug-ids': 1.0.2 '@vanilla-extract/css': 1.11.0 esbuild: 0.17.6 @@ -13337,9 +13569,9 @@ packages: find-up: 5.0.0 javascript-stringify: 2.1.0 lodash: 4.17.21 - mlly: 1.4.2 + mlly: 1.1.1 outdent: 0.8.0 - vite: 4.4.9 + vite: 4.1.4 vite-node: 0.28.5 transitivePeerDependencies: - '@types/node' @@ -13355,8 +13587,8 @@ packages: /@vanilla-extract/integration/6.2.1_@types+node@18.11.18: resolution: {integrity: sha512-+xYJz07G7TFAMZGrOqArOsURG+xcYvqctujEkANjw2McCBvGEK505RxQqOuNiA9Mi9hgGdNp2JedSa94f3eoLg==} dependencies: - '@babel/core': 7.22.17 - '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.22.17 + '@babel/core': 7.21.8 + '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8 '@vanilla-extract/babel-plugin-debug-ids': 1.0.2 '@vanilla-extract/css': 1.11.0 esbuild: 0.17.6 @@ -13364,9 +13596,9 @@ packages: find-up: 5.0.0 javascript-stringify: 2.1.0 lodash: 4.17.21 - mlly: 1.4.2 + mlly: 1.1.1 outdent: 0.8.0 - vite: 4.4.9_@types+node@18.11.18 + vite: 4.1.4_@types+node@18.11.18 vite-node: 0.28.5_@types+node@18.11.18 transitivePeerDependencies: - '@types/node' @@ -13800,7 +14032,7 @@ packages: /ansi-colors/4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true + dev: false /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -14039,7 +14271,7 @@ packages: /arrify/1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true + dev: false /arrify/2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} @@ -14549,7 +14781,7 @@ packages: engines: {node: '>=4'} dependencies: is-windows: 1.0.2 - dev: true + dev: false /big-integer/1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} @@ -14699,7 +14931,7 @@ packages: resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} dependencies: wcwidth: 1.0.1 - dev: true + dev: false /broadcast-channel/3.7.0: resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} @@ -15036,12 +15268,11 @@ packages: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true + dev: false /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - dev: true /camelcase/6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} @@ -15253,7 +15484,6 @@ packages: /cli-spinners/2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} - dev: false /cli-spinners/2.9.1: resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} @@ -15294,7 +15524,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: true + dev: false /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -15691,7 +15921,6 @@ packages: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 - dev: true /cross-spawn/6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} @@ -15808,15 +16037,15 @@ packages: /csv-generate/3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - dev: true + dev: false /csv-parse/4.16.3: resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - dev: true + dev: false /csv-stringify/5.6.5: resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - dev: true + dev: false /csv/5.5.3: resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} @@ -15826,7 +16055,7 @@ packages: csv-parse: 4.16.3 csv-stringify: 5.6.5 stream-transform: 2.1.3 - dev: true + dev: false /cuid/2.1.8: resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} @@ -15857,7 +16086,7 @@ packages: /dataloader/1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - dev: true + dev: false /date-fns/2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} @@ -15950,12 +16179,12 @@ packages: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true + dev: false /decamelize/1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - dev: true + dev: false /decamelize/4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -16156,7 +16385,6 @@ packages: /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - dev: true /detect-libc/2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} @@ -16357,7 +16585,7 @@ packages: /dotenv/8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - dev: true + dev: false /dset/3.1.2: resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} @@ -16473,7 +16701,7 @@ packages: engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 - dev: true + dev: false /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -17181,13 +17409,13 @@ packages: eslint: 8.31.0 dev: true - /eslint-config-turbo/1.10.14_eslint@8.31.0: - resolution: {integrity: sha512-ZeB+IcuFXy1OICkLuAplVa0euoYbhK+bMEQd0nH9+Lns18lgZRm33mVz/iSoH9VdUzl/1ZmFmoK+RpZc+8R80A==} + /eslint-config-turbo/1.10.13_eslint@8.31.0: + resolution: {integrity: sha512-Ffa0SxkRCPMtfUX/HDanEqsWoLwZTQTAXO9W4IsOtycb2MzJDrVcLmoFW5sMwCrg7gjqbrC4ZJoD+1SPPzIVqg==} peerDependencies: eslint: '>6.6.0' dependencies: eslint: 8.31.0 - eslint-plugin-turbo: 1.10.14_eslint@8.31.0 + eslint-plugin-turbo: 1.10.13_eslint@8.31.0 dev: true /eslint-doc-generator/1.4.3_eslint@8.45.0: @@ -17219,8 +17447,8 @@ packages: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.13.0 - resolve: 1.22.4 + is-core-module: 2.11.0 + resolve: 1.22.2 transitivePeerDependencies: - supports-color @@ -17238,7 +17466,7 @@ packages: eslint-plugin-import: 2.27.5_dclhgbuu3rymxzhsuuyv72p2ym get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17262,7 +17490,7 @@ packages: eslint-plugin-import: 2.27.5_xpt3ce3kmhzhmuk3dcuwe6u2pe get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17285,7 +17513,7 @@ packages: eslint-plugin-import: 2.27.5_4nmwrqeucdooykidvg7oplsu44 get-tsconfig: 4.5.0 globby: 13.1.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -17437,12 +17665,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_hhwxwo5vg2mzr5fq3eei7kqaye has: 1.0.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.4 - semver: 6.3.1 + resolve: 1.22.2 + semver: 6.3.0 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17470,12 +17698,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_pxhjym6joapyaysotvqp5q6kau has: 1.0.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.4 - semver: 6.3.1 + resolve: 1.22.2 + semver: 6.3.0 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17503,12 +17731,12 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.7.4_mcdyrqs6peaairrn7md524c74a has: 1.0.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.4 - semver: 6.3.1 + resolve: 1.22.2 + semver: 6.3.0 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -17603,7 +17831,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.1 + semver: 6.3.0 dev: true /eslint-plugin-jsx-a11y/6.7.1_eslint@8.42.0: @@ -17628,7 +17856,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.1 + semver: 6.3.0 dev: true /eslint-plugin-jsx-a11y/6.7.1_eslint@8.45.0: @@ -17653,7 +17881,7 @@ packages: minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 - semver: 6.3.1 + semver: 6.3.0 /eslint-plugin-node/11.1.0_eslint@8.31.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} @@ -17764,7 +17992,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.1 + semver: 6.3.0 string.prototype.matchall: 4.0.8 dev: true @@ -17788,7 +18016,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.1 + semver: 6.3.0 string.prototype.matchall: 4.0.8 dev: true @@ -17812,7 +18040,7 @@ packages: object.values: 1.1.6 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.1 + semver: 6.3.0 string.prototype.matchall: 4.0.8 /eslint-plugin-testing-library/5.11.0_iukboom6ndih5an6iafl45j2fe: @@ -17841,8 +18069,8 @@ packages: - typescript dev: true - /eslint-plugin-turbo/1.10.14_eslint@8.31.0: - resolution: {integrity: sha512-sBdBDnYr9AjT1g4lR3PBkZDonTrMnR4TvuGv5W0OiF7z9az1rI68yj2UHJZvjkwwcGu5mazWA1AfB0oaagpmfg==} + /eslint-plugin-turbo/1.10.13_eslint@8.31.0: + resolution: {integrity: sha512-el4AAmn0zXmvHEyp1h0IQMfse10Vy8g5Vbg4IU3+vD9CSj5sDbX07iFVt8sCKg7og9Q5FAa9mXzlCf7t4vYgzg==} peerDependencies: eslint: '>6.6.0' dependencies: @@ -18161,6 +18389,10 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true + /estree-walker/3.0.2: + resolution: {integrity: sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==} + dev: true + /estree-walker/3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -18370,7 +18602,7 @@ packages: /extendable-error/0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: true + dev: false /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -18898,7 +19130,7 @@ packages: graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true + dev: false /fs-extra/8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} @@ -19404,7 +19636,6 @@ packages: /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true /graphemer/1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -19468,7 +19699,7 @@ packages: /hard-rejection/2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} - dev: true + dev: false /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -19851,7 +20082,7 @@ packages: /human-id/1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: true + dev: false /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -19892,6 +20123,15 @@ packages: dependencies: safer-buffer: 2.1.2 + /icss-utils/5.1.0_postcss@8.4.27: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.27 + dev: true + /icss-utils/5.1.0_postcss@8.4.29: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -20165,6 +20405,7 @@ packages: hasBin: true dependencies: ci-info: 3.8.0 + dev: false /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} @@ -20385,7 +20626,7 @@ packages: /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - dev: true + dev: false /is-plain-obj/2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} @@ -20456,7 +20697,7 @@ packages: engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 - dev: true + dev: false /is-symbol/1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} @@ -20508,6 +20749,7 @@ packages: /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + dev: false /is-wsl/2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} @@ -21646,7 +21888,7 @@ packages: /lodash.startcase/4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true + dev: false /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -21842,12 +22084,12 @@ packages: /map-obj/1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - dev: true + dev: false /map-obj/4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} - dev: true + dev: false /map-or-similar/1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} @@ -22141,7 +22383,7 @@ packages: trim-newlines: 3.0.1 type-fest: 0.13.1 yargs-parser: 18.1.3 - dev: true + dev: false /merge-descriptors/1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -22550,7 +22792,6 @@ packages: /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true /mini-svg-data-uri/1.4.4: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} @@ -22579,6 +22820,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch/9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimatch/9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -22592,7 +22840,7 @@ packages: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true + dev: false /minimist/1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} @@ -22680,7 +22928,7 @@ packages: /mixme/0.5.4: resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} engines: {node: '>= 8.0.0'} - dev: true + dev: false /mkdirp-classic/0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -22696,6 +22944,15 @@ packages: engines: {node: '>=10'} hasBin: true + /mlly/1.1.1: + resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 + dev: true + /mlly/1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: @@ -23155,7 +23412,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 - dev: true + dev: false /node-fetch/3.3.0: resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} @@ -23704,7 +23961,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.1 + cli-spinners: 2.7.0 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -23746,7 +24003,7 @@ packages: /outdent/0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: true + dev: false /outdent/0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -23789,6 +24046,7 @@ packages: engines: {node: '>=8'} dependencies: p-map: 2.1.0 + dev: false /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} @@ -23835,6 +24093,7 @@ packages: /p-map/2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} + dev: false /p-map/3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} @@ -24267,6 +24526,15 @@ packages: engines: {node: '>=0.10.0'} dev: false + /postcss-discard-duplicates/5.1.0_postcss@8.4.27: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.27 + dev: true + /postcss-discard-duplicates/5.1.0_postcss@8.4.29: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} @@ -24405,7 +24673,7 @@ packages: ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e yaml: 2.3.1 - /postcss-load-config/4.0.1_ntcifew6f27c4l7dh5q6i7owpq: + /postcss-load-config/4.0.1_postcss@8.4.29: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -24419,11 +24687,9 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.29 - ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e yaml: 2.3.1 - dev: true - /postcss-load-config/4.0.1_postcss@8.4.29: + /postcss-load-config/4.0.1_xf4uokkt3yp55pilbqb2sbk4eu: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -24436,8 +24702,10 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.29 + postcss: 8.4.27 + ts-node: 10.9.1_fodzh64fuekdilycyvke2qmf2e yaml: 2.3.1 + dev: true /postcss-loader/7.3.0_postcss@8.4.21: resolution: {integrity: sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==} @@ -24453,6 +24721,15 @@ packages: semver: 7.5.4 dev: true + /postcss-modules-extract-imports/3.0.0_postcss@8.4.27: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.27 + dev: true + /postcss-modules-extract-imports/3.0.0_postcss@8.4.29: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -24462,6 +24739,18 @@ packages: postcss: 8.4.29 dev: true + /postcss-modules-local-by-default/4.0.0_postcss@8.4.27: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.27 + postcss: 8.4.27 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + dev: true + /postcss-modules-local-by-default/4.0.0_postcss@8.4.29: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} @@ -24474,6 +24763,16 @@ packages: postcss-value-parser: 4.2.0 dev: true + /postcss-modules-scope/3.0.0_postcss@8.4.27: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.27 + postcss-selector-parser: 6.0.11 + dev: true + /postcss-modules-scope/3.0.0_postcss@8.4.29: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} @@ -24484,6 +24783,16 @@ packages: postcss-selector-parser: 6.0.11 dev: true + /postcss-modules-values/4.0.0_postcss@8.4.27: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.27 + postcss: 8.4.27 + dev: true + /postcss-modules-values/4.0.0_postcss@8.4.29: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} @@ -24494,6 +24803,22 @@ packages: postcss: 8.4.29 dev: true + /postcss-modules/6.0.0_postcss@8.4.27: + resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-utils: 5.1.0_postcss@8.4.27 + lodash.camelcase: 4.3.0 + postcss: 8.4.27 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 + postcss-modules-scope: 3.0.0_postcss@8.4.27 + postcss-modules-values: 4.0.0_postcss@8.4.27 + string-hash: 1.1.3 + dev: true + /postcss-modules/6.0.0_postcss@8.4.29: resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} peerDependencies: @@ -24588,7 +24913,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /postcss/8.4.29: resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} @@ -24663,7 +24987,7 @@ packages: find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - dev: true + dev: false /preferred-pm/3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} @@ -24747,7 +25071,6 @@ packages: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /prettier/3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} @@ -25019,7 +25342,7 @@ packages: /quick-lru/4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} - dev: true + dev: false /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -25366,7 +25689,6 @@ packages: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true /read-pkg/3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} @@ -25393,7 +25715,6 @@ packages: js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} @@ -25453,7 +25774,7 @@ packages: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true + dev: false /regenerate-unicode-properties/10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} @@ -25625,6 +25946,16 @@ packages: toml: 3.0.0 dev: true + /remark-parse/10.0.1: + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.2.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /remark-parse/10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: @@ -25667,68 +25998,68 @@ packages: retext-smartypants: 5.2.0 unist-util-visit: 4.1.2 - /remix-auth-email-link/1.5.2_ol6qopr3fd43y6cb3yt2sxcwqm: + /remix-auth-email-link/1.5.2_xmjsiulzsxcc3znmuhq3turs2q: resolution: {integrity: sha512-LCbaYkhsENbRK70O36Ul/jBtvNcNdBabjOIXYhrTNwx4qYA/fFkX8Sr3GMuDhoMzHnXQy7zHtsqbg/DTHocX6g==} peerDependencies: '@remix-run/server-runtime': ^1.1.1 remix-auth: ^3.2.1 dependencies: - '@remix-run/server-runtime': 1.19.3 + '@remix-run/server-runtime': 1.19.2-pre.0 crypto-js: 4.1.1 - remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq + remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y dev: false - /remix-auth-github/1.3.0_ol6qopr3fd43y6cb3yt2sxcwqm: + /remix-auth-github/1.3.0_xmjsiulzsxcc3znmuhq3turs2q: resolution: {integrity: sha512-dqveIbXc1yXQXiB8UVjKSR3qgHFUZ0VJOu2/GTT5uMKZY0//FSnp1w8gK0btGlbc1HW97gig16uS84et6FBMiA==} peerDependencies: '@remix-run/server-runtime': ^1.0.0 remix-auth: ^3.4.0 dependencies: - '@remix-run/server-runtime': 1.19.3 - remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq - remix-auth-oauth2: 1.5.0_ol6qopr3fd43y6cb3yt2sxcwqm + '@remix-run/server-runtime': 1.19.2-pre.0 + remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y + remix-auth-oauth2: 1.5.0_xmjsiulzsxcc3znmuhq3turs2q transitivePeerDependencies: - supports-color dev: false - /remix-auth-oauth2/1.5.0_ol6qopr3fd43y6cb3yt2sxcwqm: + /remix-auth-oauth2/1.5.0_xmjsiulzsxcc3znmuhq3turs2q: resolution: {integrity: sha512-vv/CX2bCeVf8vzACfS1Fae+i75Cw0/As3RLkp00+9n9IBEvKi07LhUxTbODNA51jRh+wInnmCRIwsHafKQDD6g==} peerDependencies: '@remix-run/server-runtime': ^1.0.0 remix-auth: ^3.2.2 dependencies: - '@remix-run/server-runtime': 1.19.3 + '@remix-run/server-runtime': 1.19.2-pre.0 debug: 4.3.4 - remix-auth: 3.4.0_dybzsur44fk6knidl2aip4tzdq + remix-auth: 3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y uuid: 8.3.2 transitivePeerDependencies: - supports-color dev: false - /remix-auth/3.4.0_dybzsur44fk6knidl2aip4tzdq: + /remix-auth/3.4.0_mrckq3wlqfipa3hs7ezq3k3x3y: resolution: {integrity: sha512-VRliJo9VRAS4sSYgMjYbi7rYRixPWU2Tb8PFZb06OIj0nONK/1KRzHf2+Y6VGZeIacepLVgan6g2IUJjayE2rQ==} peerDependencies: '@remix-run/react': ^1.0.0 '@remix-run/server-runtime': ^1.0.0 dependencies: - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.3 + '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.2-pre.0 uuid: 8.3.2 dev: false - /remix-typedjson/0.1.7_kxjca5vfcd6kjtdv6u76olr43m: + /remix-typedjson/0.1.7_bhtgrpeaoe6kbm4hb4gzl6x7c4: resolution: {integrity: sha512-h7WoKbKBGsVdZZp3s79U5SDrMvQ3We7BjGaSIPxchnJOTS3GUDat0kBoy/gh9TVKRf5KYCee+K1UlFAYQmLQsA==} peerDependencies: '@remix-run/react': ^1.6.5 '@remix-run/server-runtime': ^1.6.5 react: ^17.0.2 || ^18.0.0 dependencies: - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.3 + '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.2-pre.0 react: 18.2.0 dev: false - /remix-utils/6.0.0_bw2af4wyg3wd47z5c445wg6duq: + /remix-utils/6.0.0_c5pntwu5f7mrfmmvuwtiprk4cy: resolution: {integrity: sha512-S7Xec0YHZxGFEDawWpIbU7HQAZC0j51FmAvcCyBRuxjo71aAIMdmez47dgF8T91yxpHV1xlIKPL7LhBzmYsOZw==} engines: {node: '>=14'} peerDependencies: @@ -25737,8 +26068,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 zod: ^3.19.1 dependencies: - '@remix-run/react': 1.19.3_biqbaboplfbrettd7655fr4n2y - '@remix-run/server-runtime': 1.19.3 + '@remix-run/react': 1.19.2-pre.0_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.19.2-pre.0 intl-parse-accept-language: 1.0.0 is-ip: 3.1.0 react: 18.2.0 @@ -25826,7 +26157,7 @@ packages: /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true + dev: false /requireindex/1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} @@ -25873,7 +26204,6 @@ packages: /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - dev: true /resolve-url-loader/5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} @@ -26225,7 +26555,6 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: true /semver/6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -26540,7 +26869,7 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 15.4.1 - dev: true + dev: false /snapdragon-node/2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} @@ -26704,7 +27033,6 @@ packages: dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 - dev: true /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -26887,7 +27215,7 @@ packages: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: mixme: 0.5.4 - dev: true + dev: false /streamsearch/1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -27040,7 +27368,6 @@ packages: engines: {node: '>=8'} dependencies: min-indent: 1.0.1 - dev: true /strip-json-comments/2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} @@ -27418,7 +27745,7 @@ packages: /term-size/2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - dev: true + dev: false /terminal-link/3.0.0: resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==} @@ -27661,7 +27988,7 @@ packages: /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - dev: true + dev: false /trough/2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} @@ -28200,7 +28527,7 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 17.7.2 - dev: true + dev: false /tuf-js/1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} @@ -28322,7 +28649,6 @@ packages: /type-fest/0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - dev: true /type-fest/1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} @@ -28597,6 +28923,14 @@ packages: unist-util-visit-parents: 3.1.1 dev: true + /unist-util-visit/4.1.1: + resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + unist-util-visit-parents: 5.1.1 + dev: true + /unist-util-visit/4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: @@ -28922,6 +29256,15 @@ packages: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 + /vfile/5.3.6: + resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.3 + dev: true + /vfile/5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: @@ -29034,6 +29377,73 @@ packages: - typescript dev: true + /vite/4.1.4: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.17 + postcss: 8.4.29 + resolve: 1.22.1 + rollup: 3.10.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite/4.1.4_@types+node@18.11.18: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.18 + esbuild: 0.16.17 + postcss: 8.4.29 + resolve: 1.22.1 + rollup: 3.10.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vite/4.1.4_@types+node@18.17.1: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -29523,7 +29933,7 @@ packages: /which-module/2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true + dev: false /which-pm-runs/1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} @@ -29620,7 +30030,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true + dev: false /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -29718,7 +30128,7 @@ packages: astring: 1.8.4 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.0.1 - estree-walker: 3.0.3 + estree-walker: 3.0.2 got: 11.8.6 hast-util-to-estree: 2.1.0 loader-utils: 2.0.4 @@ -29726,14 +30136,14 @@ packages: mdast-util-mdx: 1.1.0 micromark-extension-mdxjs: 1.0.0 periscopic: 3.0.4 - remark-parse: 10.0.2 + remark-parse: 10.0.1 remark-rehype: 9.1.0 source-map: 0.7.4 unified: 10.1.2 unist-util-position-from-estree: 1.1.1 unist-util-stringify-position: 3.0.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 + unist-util-visit: 4.1.1 + vfile: 5.3.6 optionalDependencies: deasync: 0.1.28 transitivePeerDependencies: @@ -29750,7 +30160,7 @@ packages: /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true + dev: false /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -29784,7 +30194,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: true + dev: false /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} @@ -29824,7 +30234,7 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: true + dev: false /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} From dfe680a390c5ecfc7f6c862c8bae2f3eb37c5ae3 Mon Sep 17 00:00:00 2001 From: Gregory <93215236+gjohnsx@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:06:14 -0400 Subject: [PATCH 29/95] Update introduction.mdx (#498) Changed https://github.com/triggerdotdev/examples/tree/main/resend (which was a 404) to https://github.com/triggerdotdev/examples/tree/main/resend-email-form --- docs/examples/introduction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples/introduction.mdx b/docs/examples/introduction.mdx index d17bb6d395e..f5804133e46 100644 --- a/docs/examples/introduction.mdx +++ b/docs/examples/introduction.mdx @@ -24,6 +24,6 @@ To run them, simply follow the instructions in the README files linked below. | [OpenAI text summarizer](https://github.com/triggerdotdev/examples/tree/main/openai-text-summarizer) | An app which uses OpenAI to summarize an article and then post the result to Slack. | [OpenAI](https://trigger.dev/docs/integrations/apis/openai) [Slack](https://trigger.dev/docs/integrations/apis/slack) | Trigger.dev | βœ… | | [Supabase onboarding emails](https://github.com/triggerdotdev/examples/tree/main/supabase-onboarding-emails) | When a user signs up and confirms their email address, they will receive 3 "onboarding" emails over 2 days using Resend.com and Trigger.dev | [Supabase](https://trigger.dev/docs/integrations/apis/supabase) [Resend](https://trigger.dev/docs/integrations/apis/resend) | Trigger.dev | βœ… | | [Generate presentation titles using OpenAI](https://github.com/triggerdotdev/examples/tree/main/express-vanilla) | Generate presentation titles using OpenAI background jobs with Node.js, Express and Trigger.dev | [OpenAI](https://trigger.dev/docs/integrations/apis/openai) | [lirantal](https://github.com/lirantal) | βœ… | -| [Send a basic email with Resend](https://github.com/triggerdotdev/examples/tree/main/resend) | Send a basic email from a form with Resend | [Resend](https://trigger.dev/docs/integrations/apis/resend) | Trigger.dev | βœ… | +| [Send a basic email with Resend](https://github.com/triggerdotdev/examples/tree/main/resend-email-form) | Send a basic email from a form with Resend | [Resend](https://trigger.dev/docs/integrations/apis/resend) | Trigger.dev | βœ… | | AI landing page copy generator | Copies your site and generates new copy using OpenAI | [OpenAI](https://trigger.dev/docs/integrations/apis/openai) | Trigger.dev | πŸ› οΈ | | AI changelog generator | Generates a changelog from your GitHub commits using OpenAI | [OpenAI](https://trigger.dev/docs/integrations/apis/openai) [GitHub](https://trigger.dev/docs/integrations/apis/github) | Trigger.dev | πŸ› οΈ | From 91fc1e80f3267cfe215d6a452fd92d9373334eae Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 21 Sep 2023 15:01:35 -0700 Subject: [PATCH 30/95] Use the bell icon for the new status Tasks --- apps/webapp/app/components/primitives/NamedIcon.tsx | 2 +- packages/trigger-sdk/src/status.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/webapp/app/components/primitives/NamedIcon.tsx b/apps/webapp/app/components/primitives/NamedIcon.tsx index e5bd5bf2f85..97866c42c0f 100644 --- a/apps/webapp/app/components/primitives/NamedIcon.tsx +++ b/apps/webapp/app/components/primitives/NamedIcon.tsx @@ -76,8 +76,8 @@ const icons = { "arrow-left": (className: string) => , background: (className: string) => , beaker: (className: string) => , + bell: (className: string) => , billing: (className: string) => , - browser: (className: string) => , calendar: (className: string) => ( diff --git a/packages/trigger-sdk/src/status.ts b/packages/trigger-sdk/src/status.ts index 4971d55f34f..9e30c6c1d6d 100644 --- a/packages/trigger-sdk/src/status.ts +++ b/packages/trigger-sdk/src/status.ts @@ -32,7 +32,7 @@ export class TriggerStatus { }, { name: status.label ?? `Status update`, - icon: "clock", + icon: "bell", params: { ...status, }, From 15f17d27e046c48dc4d12003ac29c0147fb878fb Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Thu, 21 Sep 2023 23:14:54 +0100 Subject: [PATCH 31/95] Going exponential with `Linear` (#478) * Unleash GPT magic * Clean up after GPT * All the hooks * Provisional integration catalog entry * Sample webhook jobs * Attachments with alpha warnings * Remove some verbose logs * Fix IP restrictions * Remove tunnel * Revert "Remove tunnel" This reverts commit c5b69ce6524e3b40c26b66cdc56e087b8576b8c6. * Resolve event name clashes * Remove circular dependency * Use correct payload uuid * Schema fixes * Fix webhook event name * Start to Linearify catalog entry * Remove todo * More catalog updates * Make OAuth work * Rename webhook helper * Schema juggling * More discrimination * Add Issue SLA event * Simplify triggers * Handle rate limits * Fix Project schema * Payload examples * Improve event props * Remove redundant source metadata * One type to rule them all * Recursive WithoutFunctions type * Linear output serializer * Some tasks * Update catalog entry * Dynamic usage sample * Bump version * Remove tunnel * More tasks * Add optional skipRetrying on runTask errors * Fail fast on user errors * Entity getter tasks * Another couple of tasks * Token to apiKey * Sort tasks * Add filtered issue SLA triggers * Add docs * Type fixes * Job catalog examples * Serialization helper docs * Add changeset * Refactor webhooks * Enhance properties * Pagination helper and docs * Clean up imports * Change misc catalog job --------- Co-authored-by: Matt Aitken --- .changeset/strange-gorillas-kick.md | 6 + .env.example | 2 + .../externalApis/integrationCatalog.server.ts | 2 + .../externalApis/integrations/linear.ts | 104 + docs/integrations/apis/linear.mdx | 479 ++++ docs/integrations/introduction.mdx | 1 + docs/mint.json | 1 + integrations/linear/README.md | 3 + integrations/linear/package.json | 36 + integrations/linear/src/events.ts | 535 +++++ integrations/linear/src/index.ts | 2029 +++++++++++++++++ .../src/payload-examples/Attachment.json | 25 + .../payload-examples/AttachmentCreated.json | 25 + .../payload-examples/AttachmentRemoved.json | 25 + .../payload-examples/AttachmentUpdated.json | 29 + .../linear/src/payload-examples/Comment.json | 22 + .../src/payload-examples/CommentCreated.json | 22 + .../src/payload-examples/CommentRemoved.json | 22 + .../src/payload-examples/CommentUpdated.json | 28 + .../linear/src/payload-examples/Cycle.json | 23 + .../src/payload-examples/CycleCreated.json | 23 + .../src/payload-examples/CycleRemoved.json | 23 + .../src/payload-examples/CycleUpdated.json | 27 + .../linear/src/payload-examples/Issue.json | 42 + .../src/payload-examples/IssueCreated.json | 41 + .../src/payload-examples/IssueLabel.json | 17 + .../payload-examples/IssueLabelCreated.json | 17 + .../payload-examples/IssueLabelRemoved.json | 17 + .../payload-examples/IssueLabelUpdated.json | 22 + .../src/payload-examples/IssueRemoved.json | 42 + .../src/payload-examples/IssueUpdated.json | 42 + .../linear/src/payload-examples/Project.json | 38 + .../src/payload-examples/ProjectCreated.json | 38 + .../src/payload-examples/ProjectRemoved.json | 40 + .../src/payload-examples/ProjectUpdate.json | 47 + .../ProjectUpdateCreated.json | 47 + .../ProjectUpdateRemoved.json | 48 + .../ProjectUpdateUpdated.json | 53 + .../src/payload-examples/ProjectUpdated.json | 43 + .../linear/src/payload-examples/Reaction.json | 24 + .../src/payload-examples/ReactionCreated.json | 24 + .../src/payload-examples/ReactionRemoved.json | 24 + .../src/payload-examples/ReactionUpdated.json | 28 + .../linear/src/payload-examples/index.ts | 154 ++ integrations/linear/src/schemas.ts | 444 ++++ integrations/linear/src/types.ts | 28 + integrations/linear/src/utils.ts | 60 + integrations/linear/src/webhooks.ts | 315 +++ integrations/linear/tsconfig.json | 33 + integrations/linear/tsup.config.ts | 24 + packages/trigger-sdk/src/io.ts | 26 +- references/job-catalog/package.json | 4 +- references/job-catalog/src/linear.ts | 162 ++ references/job-catalog/tsconfig.json | 6 + 54 files changed, 5433 insertions(+), 9 deletions(-) create mode 100644 .changeset/strange-gorillas-kick.md create mode 100644 apps/webapp/app/services/externalApis/integrations/linear.ts create mode 100644 docs/integrations/apis/linear.mdx create mode 100644 integrations/linear/README.md create mode 100644 integrations/linear/package.json create mode 100644 integrations/linear/src/events.ts create mode 100644 integrations/linear/src/index.ts create mode 100644 integrations/linear/src/payload-examples/Attachment.json create mode 100644 integrations/linear/src/payload-examples/AttachmentCreated.json create mode 100644 integrations/linear/src/payload-examples/AttachmentRemoved.json create mode 100644 integrations/linear/src/payload-examples/AttachmentUpdated.json create mode 100644 integrations/linear/src/payload-examples/Comment.json create mode 100644 integrations/linear/src/payload-examples/CommentCreated.json create mode 100644 integrations/linear/src/payload-examples/CommentRemoved.json create mode 100644 integrations/linear/src/payload-examples/CommentUpdated.json create mode 100644 integrations/linear/src/payload-examples/Cycle.json create mode 100644 integrations/linear/src/payload-examples/CycleCreated.json create mode 100644 integrations/linear/src/payload-examples/CycleRemoved.json create mode 100644 integrations/linear/src/payload-examples/CycleUpdated.json create mode 100644 integrations/linear/src/payload-examples/Issue.json create mode 100644 integrations/linear/src/payload-examples/IssueCreated.json create mode 100644 integrations/linear/src/payload-examples/IssueLabel.json create mode 100644 integrations/linear/src/payload-examples/IssueLabelCreated.json create mode 100644 integrations/linear/src/payload-examples/IssueLabelRemoved.json create mode 100644 integrations/linear/src/payload-examples/IssueLabelUpdated.json create mode 100644 integrations/linear/src/payload-examples/IssueRemoved.json create mode 100644 integrations/linear/src/payload-examples/IssueUpdated.json create mode 100644 integrations/linear/src/payload-examples/Project.json create mode 100644 integrations/linear/src/payload-examples/ProjectCreated.json create mode 100644 integrations/linear/src/payload-examples/ProjectRemoved.json create mode 100644 integrations/linear/src/payload-examples/ProjectUpdate.json create mode 100644 integrations/linear/src/payload-examples/ProjectUpdateCreated.json create mode 100644 integrations/linear/src/payload-examples/ProjectUpdateRemoved.json create mode 100644 integrations/linear/src/payload-examples/ProjectUpdateUpdated.json create mode 100644 integrations/linear/src/payload-examples/ProjectUpdated.json create mode 100644 integrations/linear/src/payload-examples/Reaction.json create mode 100644 integrations/linear/src/payload-examples/ReactionCreated.json create mode 100644 integrations/linear/src/payload-examples/ReactionRemoved.json create mode 100644 integrations/linear/src/payload-examples/ReactionUpdated.json create mode 100644 integrations/linear/src/payload-examples/index.ts create mode 100644 integrations/linear/src/schemas.ts create mode 100644 integrations/linear/src/types.ts create mode 100644 integrations/linear/src/utils.ts create mode 100644 integrations/linear/src/webhooks.ts create mode 100644 integrations/linear/tsconfig.json create mode 100644 integrations/linear/tsup.config.ts create mode 100644 references/job-catalog/src/linear.ts diff --git a/.changeset/strange-gorillas-kick.md b/.changeset/strange-gorillas-kick.md new file mode 100644 index 00000000000..c8931555085 --- /dev/null +++ b/.changeset/strange-gorillas-kick.md @@ -0,0 +1,6 @@ +--- +"@trigger.dev/sdk": patch +"@trigger.dev/linear": patch +--- + +First release of `@trigger.dev/linear` integration. `io.runTask()` error handlers can now prevent further retries. diff --git a/.env.example b/.env.example index 295b41745c7..48170e8f365 100644 --- a/.env.example +++ b/.env.example @@ -31,6 +31,8 @@ CLOUD_AIRTABLE_CLIENT_ID= CLOUD_AIRTABLE_CLIENT_SECRET= CLOUD_GITHUB_CLIENT_ID= CLOUD_GITHUB_CLIENT_SECRET= +CLOUD_LINEAR_CLIENT_ID= +CLOUD_LINEAR_CLIENT_SECRET= CLOUD_SLACK_APP_HOST= CLOUD_SLACK_CLIENT_ID= CLOUD_SLACK_CLIENT_SECRET= \ No newline at end of file diff --git a/apps/webapp/app/services/externalApis/integrationCatalog.server.ts b/apps/webapp/app/services/externalApis/integrationCatalog.server.ts index 4369ad87472..b86c2e496ce 100644 --- a/apps/webapp/app/services/externalApis/integrationCatalog.server.ts +++ b/apps/webapp/app/services/externalApis/integrationCatalog.server.ts @@ -1,5 +1,6 @@ import { airtable } from "./integrations/airtable"; import { github } from "./integrations/github"; +import { linear } from "./integrations/linear"; import { openai } from "./integrations/openai"; import { plain } from "./integrations/plain"; import { resend } from "./integrations/resend"; @@ -33,6 +34,7 @@ export class IntegrationCatalog { export const integrationCatalog = new IntegrationCatalog({ airtable, github, + linear, openai, plain, resend, diff --git a/apps/webapp/app/services/externalApis/integrations/linear.ts b/apps/webapp/app/services/externalApis/integrations/linear.ts new file mode 100644 index 00000000000..355d968833b --- /dev/null +++ b/apps/webapp/app/services/externalApis/integrations/linear.ts @@ -0,0 +1,104 @@ +import type { HelpSample, Integration } from "../types"; + +function usageSample(hasApiKey: boolean): HelpSample { + return { + title: "Using the client", + code: ` +import { Linear } from "@trigger.dev/linear"; + +const linear = new Linear({ + id: "__SLUG__",${hasApiKey ? ",\n apiKey: process.env.LINEAR_API_KEY!" : ""} +}); + +client.defineJob({ + id: "linear-react-to-new-issue", + name: "Linear - React To New Issue", + version: "0.1.0", + integrations: { linear }, + trigger: linear.onIssueCreated(), + run: async (payload, io, ctx) => { + await io.linear.createComment("create-comment", { + issueId: payload.data.id, + body: "Thank's for opening this issue!" + }); + + await io.linear.createReaction("create-reaction", { + issueId: payload.data.id, + emoji: "+1" + }); + + return { payload, ctx }; + }, +}); + `, + }; +} + +export const linear: Integration = { + identifier: "linear", + name: "Linear", + packageName: "@trigger.dev/linear@latest", + authenticationMethods: { + oauth2: { + name: "OAuth", + type: "oauth2", + client: { + id: { + envName: "CLOUD_LINEAR_CLIENT_ID", + }, + secret: { + envName: "CLOUD_LINEAR_CLIENT_SECRET", + }, + }, + config: { + authorization: { + url: "https://linear.app/oauth/authorize", + scopeSeparator: ",", + }, + token: { + url: "https://api.linear.app/oauth/token", + metadata: {}, + }, + refresh: { + url: "https://linear.app/oauth/authorize", + }, + pkce: false, + }, + scopes: [ + { + name: "write", + description: + "Grants global write access to the user's account. Use a more targeted scope if you don't need full access.", + defaultChecked: true, + }, + + { + name: "issue:create", + description: "Grants access to create issues and attachments only.", + annotations: [{ label: "Issues" }], + }, + + { + name: "comments:create", + description: "Grants access to create new issue comments.", + annotations: [{ label: "Comments" }], + }, + + { + name: "admin", + description: + "Grants full access to admin-level endpoints. Don't use this unless you really need it.", + }, + ], + help: { + samples: [usageSample(false)], + }, + }, + apikey: { + type: "apikey", + help: { + samples: [usageSample(true)], + }, + }, + }, +}; diff --git a/docs/integrations/apis/linear.mdx b/docs/integrations/apis/linear.mdx new file mode 100644 index 00000000000..5c90f75cc42 --- /dev/null +++ b/docs/integrations/apis/linear.mdx @@ -0,0 +1,479 @@ +--- +title: Linear +description: "Streamline your project and issue tracking" +--- + + + +## Installation + +To get started with the Linear integration on Trigger.dev, you need to install the `@trigger.dev/linear` package. +You can do this using npm, pnpm, or yarn: + + + +```bash npm +npm install @trigger.dev/linear@latest +``` + +```bash pnpm +pnpm add @trigger.dev/linear@latest +``` + +```bash yarn +yarn add @trigger.dev/linear@latest +``` + + + +## Authentication + +To use the Linear API with Trigger.dev, you can either use OAuth or a Personal API Key. + +### OAuth + +```ts +import { Linear } from "@trigger.dev/linear"; + +//this will use OAuth +const linear = new Linear({ + id: "linear", +}); +``` + +### Personal API Key + +You can create a Personal API Key in your [Linear API Settings](https://linear.app/settings/api). + +```ts +import { Linear } from "@trigger.dev/linear"; + +//this will use the passed in API key (defined in your environment variables) +const linear = new Linear({ + id: "linear", + apiKey: process.env["LINEAR_API_KEY"], +}); +``` + +## Usage + +Include the Linear integration in your Trigger.dev job. + +```ts +client.defineJob({ + id: "linear-new-issue-autoresponder", + name: "Linear - New Issue Autoresponder", + version: "0.1.0", + integrations: { + //use the linear integration + linear, + }, + //trigger on issue created events + trigger: linear.onIssueCreated(), + run: async (payload, io, ctx) => { + //get new issue ID from the event payload + const newIssueId = payload.data.id; + + //comment + await io.linear.createComment("create-comment", { + issueId: newIssueId, + body: "Thank's for opening this issue!", + }); + + //react + await io.linear.createReaction("create-reaction", { + issueId: newIssueId, + emoji: "+1", + }); + + //store and display in the job run + return { payload, ctx }; + }, +}); +``` + +### Serialization helper + +Use the `serializeLinearOutput` helper instead of returning raw Linear SDK responses: + +```ts +import { Linear, serializeLinearOutput } from "@trigger.dev/linear"; +... +client.defineJob({ + id: "linear-sdk", + name: "Linear SDK", + version: "0.1.0", + integrations: { + linear, + }, + trigger: eventTrigger({ + name: "linear.sdk", + }), + run: async (payload, io, ctx) => { + //the official Linear SDK is exposed as `client` + const issues = await io.linear.runTask("first-two", async (client) => { + //these nodes contain values we can't serialize, e.g. functions + const { nodes } = await client.issues({ first: 2 }); + //we remove them with this little helper + return serializeLinearOutput(nodes); + }); + return issues; + }, +}); +``` + +### Pagination + +You can paginate responses three different ways: + +1. Via the raw Linear SDK exposed in `io.runTask()` +2. Iterating the same integration task with different params +3. Using the `getAll` helper exposed on the integration (**recommended!**) + +_When ordering results, make sure to use the `PaginationOrderBy` enum._ + +```ts +import { Linear, PaginationOrderBy, serializeLinearOutput } from "@trigger.dev/linear"; +... +client.defineJob({ + id: "linear-pagination", + name: "Linear Pagination", + version: "0.1.0", + integrations: { + linear, + }, + trigger: eventTrigger({ + name: "linear.paginate", + }), + run: async (payload, io, ctx) => { + //the same params will be used for all tasks + const params = { first: 5, orderBy: PaginationOrderBy.UpdatedAt }; + + //1. Linear SDK + const sdkIssues = await io.linear.runTask("all-issues-via-sdk", async (client) => { + const edges = await client.issues(params); + + //this will keep appending nodes until there are no more + while (edges.pageInfo.hasNextPage) { + await edges.fetchNext(); + } + + //use serialization helper to remove functions etc + return serializeLinearOutput(edges.nodes); + }); + + //2. Linear integration - no pagination helper + let edges = await io.linear.issues("get-issues", params); + let noHelper = edges.nodes; + + for (let i = 0; edges.pageInfo.hasNextPage; i++) { + edges = await io.linear.issues(`get-more-issues-${i}`, { + ...params, + after: edges.pageInfo.endCursor, + }); + noHelper = noHelper.concat(edges.nodes); + } + + //3. Linear integration - with the pagination helper + const withHelper = await io.linear.getAll(io.linear.issues, "get-all", params); + + return { + issueCounts: { + withSdk: sdkIssues.length, + noHelper: noHelper.length, + withHelper: withHelper.length, + }, + }; + }, +}); +``` + +## Triggers + +### Attachments + +| Function Name | Description | +| --------------------- | ---------------------------------------------- | +| `onAttachment` | When any action is performed on an attachment. | +| `onAttachmentCreated` | When an attachment is created. | +| `onAttachmentRemoved` | When an attachment is removed. | +| `onAttachmentUpdated` | When an attachment is updated. | + +### Comments + +| Function Name | Description | +| ------------------ | ------------------------------------------- | +| `onComment` | When any action is performed on an comment. | +| `onCommentCreated` | When an comment is created. | +| `onCommentRemoved` | When an comment is removed. | +| `onCommentUpdated` | When an comment is updated. | + +### Cycles + +| Function Name | Description | +| ---------------- | ----------------------------------------- | +| `onCycle` | When any action is performed on an cycle. | +| `onCycleCreated` | When an cycle is created. | +| `onCycleRemoved` | When an cycle is removed. | +| `onCycleUpdated` | When an cycle is updated. | + +### Issues + +| Function Name | Description | +| ---------------- | ----------------------------------------- | +| `onIssue` | When any action is performed on an issue. | +| `onIssueCreated` | When an issue is created. | +| `onIssueRemoved` | When an issue is removed. | +| `onIssueUpdated` | When an issue is updated. | + +### Issue Labels + +| Function Name | Description | +| --------------------- | ----------------------------------------------- | +| `onIssueLabel` | When any action is performed on an issue label. | +| `onIssueLabelCreated` | When an issue label is created. | +| `onIssueLabelRemoved` | When an issue label is removed. | +| `onIssueLabelUpdated` | When an issue label is updated. | + +### Issue SLAs + +| Function Name | Description | +| -------------------- | --------------------------------------------- | +| `onIssueSLA` | When any action is performed on an issue SLA. | +| `onIssueSLASet` | When an issue SLA is set. | +| `onIssueSLABreached` | When an issue SLA is breached. | +| `onIssueSLAHighRisk` | When an issue SLA is high risk. | + +### Projects + +| Function Name | Description | +| ------------------ | ------------------------------------------- | +| `onProject` | When any action is performed on an project. | +| `onProjectCreated` | When an project is created. | +| `onProjectRemoved` | When an project is removed. | +| `onProjectUpdated` | When an project is updated. | + +### Project Updates + +| Function Name | Description | +| ------------------------ | -------------------------------------------------- | +| `onProjectUpdate` | When any action is performed on an project update. | +| `onProjectUpdateCreated` | When an project update is created. | +| `onProjectUpdateRemoved` | When an project update is removed. | +| `onProjectUpdateUpdated` | When an project update is updated. | + +### Reactions + +| Function Name | Description | +| ------------------- | -------------------------------------------- | +| `onReaction` | When any action is performed on an reaction. | +| `onReactionCreated` | When an reaction is created. | +| `onReactionRemoved` | When an reaction is removed. | +| `onReactionUpdated` | When an reaction is updated. | + +## Tasks + +### Attachments + +| Function Name | Description | +| ------------------ | -------------------------- | +| `attachment` | Gets an attachment. | +| `attachments` | Gets multiple attachments. | +| `createAttachment` | Creates an attachment. | +| `deleteAttachment` | Deletes an attachment. | +| `updateAttachment` | Updates an attachment. | + +### Attachment Links + +| Function Name | Description | +| ------------------------- | ------------------------------------------ | +| `attachmentLinkFront` | Links a Front conversation to an issue. | +| `attachmentLinkIntercom` | Links a Intercom conversation to an issue. | +| `attachmentLinkJiraIssue` | Links a Jira issue to an issue. | +| `attachmentLinkSlack` | Links a Slack message to an issue. | +| `attachmentLinkURL` | Links any URL to an issue. | +| `attachmentLinkZendesk` | Links a Zendesk ticket to an issue. | + +### Comments + +| Function Name | Description | +| --------------- | ----------------------- | +| `comment` | Gets a comment. | +| `comments` | Gets multiple comments. | +| `createComment` | Creates a comment. | +| `deleteComment` | Deletes a comment. | +| `updateComment` | Updates a comment. | + +### Cycles + +| Function Name | Description | +| -------------- | ----------------- | +| `archiveCycle` | Archives a cycle. | +| `createCycle` | Creates a cycle. | +| `updateCycle` | Updates a cycle. | + +### Documents + +| Function Name | Description | +| ----------------- | ------------------------ | +| `document` | Gets a document. | +| `documents` | Gets multiple documents. | +| `createDocument` | Creates a document. | +| `searchDocuments` | Searches documents. | + +### Favorites + +| Function Name | Description | +| ---------------- | ------------------------ | +| `favorite` | Gets a favorite. | +| `favorites` | Gets multiple favorites. | +| `createFavorite` | Creates a favorite. | + +### Issues + +| Function Name | Description | +| -------------- | --------------------- | +| `issue` | Gets an issue. | +| `issues` | Gets multiple issues. | +| `archiveIssue` | Archives an issue. | +| `createIssue` | Creates an issue. | +| `deleteIssue` | Deletes an issue. | +| `searchIssues` | Searches issues. | +| `updateIssue` | Updates an issue. | + +### Issue Labels + +| Function Name | Description | +| ------------------ | --------------------------- | +| `issueLabel` | Gets an issue label. | +| `issueLabels` | Gets multiple issue labels. | +| `createIssueLabel` | Creates an issue label. | +| `deleteIssueLabel` | Deletes an issue label. | +| `updateIssueLabel` | Updates an issue label. | + +### Issue Relations + +| Function Name | Description | +| --------------------- | ------------------------------ | +| `issueRelation` | Gets an issue relation. | +| `issueRelations` | Gets multiple issue relations. | +| `createIssueRelation` | Creates an issue relation. | + +### Notifications + +| Function Name | Description | +| -------------------------------- | ------------------------------------ | +| `notification` | Gets a notification. | +| `notifications` | Gets multiple notifications. | +| `archiveNotification` | Archives a notification. | +| `createNotificationSubscription` | Creates a notification subscription. | + +### Organizations + +| Function Name | Description | +| ---------------------------------- | ------------------------------- | +| `organization` | Gets the viewer's organization. | +| `createOrganizationFromOnboarding` | Creates an organization. | +| `createOrganizationInvite` | Creates an organization invite. | + +### Projects + +| Function Name | Description | +| ---------------- | ----------------------- | +| `project` | Gets a project. | +| `projects` | Gets multiple projects. | +| `archiveProject` | Archives a project. | +| `createProject` | Creates a project. | +| `deleteProject` | Deletes a project. | +| `searchProjects` | Searches projects. | +| `updateProject` | Updates a project. | + +### Project Links + +| Function Name | Description | +| ------------------- | ---------------------------- | +| `projectLink` | Gets a project link. | +| `projectLinks` | Gets multiple project links. | +| `createProjectLink` | Creates a project link. | + +### Project Updates + +| Function Name | Description | +| --------------------- | ------------------------------ | +| `projectUpdate` | Gets a project update. | +| `projectUpdates` | Gets multiple project updates. | +| `createProjectUpdate` | Creates a project update. | +| `deleteProjectUpdate` | Deletes a project update. | +| `updateProjectUpdate` | Updates a project update. | + +### Reactions + +| Function Name | Description | +| ---------------- | ------------------- | +| `createReaction` | Creates a reaction. | +| `deleteReaction` | Deletes a reaction. | + +### Roadmaps + +| Function Name | Description | +| ---------------- | ------------------- | +| `archiveRoadmap` | Archives a roadmap. | +| `createRoadmap` | Creates a roadmap. | + +### Teams + +| Function Name | Description | +| ------------- | -------------------- | +| `team` | Gets a team. | +| `teams` | Gets multiple teams. | +| `createTeam` | Creates a team. | + +### Team Memberships + +| Function Name | Description | +| ---------------------- | ------------------------------- | +| `teamMembership` | Gets a team membership. | +| `teamMemberships` | Gets multiple team memberships. | +| `createTeamMembership` | Creates a team membership. | + +### Templates + +| Function Name | Description | +| ------------- | ------------------------ | +| `template` | Gets a template. | +| `templates` | Gets multiple templates. | + +### Users + +| Function Name | Description | +| ------------- | -------------------- | +| `user` | Gets a user. | +| `users` | Gets multiple users. | +| `updateUser` | Updates a user. | + +### Webhooks + +| Function Name | Description | +| --------------- | ----------------------- | +| `webhook` | Gets a webhook. | +| `webhooks` | Gets multiple webhooks. | +| `createWebhook` | Creates a webhook. | +| `deleteWebhook` | Deletes a webhook. | +| `updateWebhook` | Updates a webhook. | + +### Workflow States + +| Function Name | Description | +| ---------------------- | ------------------------------ | +| `workflowState` | Gets a workflow state. | +| `workflowStates` | Gets multiple workflow states. | +| `archiveWorkflowState` | Archives a workflow state. | +| `createWorkflowState` | Creates a workflow state. | + +### Misc + +| Function Name | Description | +| ------------------------ | -------------------------------------- | +| `createProjectMilestone` | Creates a project milestone. | +| `issuePriorityValues` | Gets issue priority values and labels. | +| `viewer` | Gets the currently authenticated user. | diff --git a/docs/integrations/introduction.mdx b/docs/integrations/introduction.mdx index 1496d2e69a2..30be9c1e365 100644 --- a/docs/integrations/introduction.mdx +++ b/docs/integrations/introduction.mdx @@ -33,6 +33,7 @@ Navigate the menu or select Integrations from the table below. | API | Description | Webhooks | Tasks | | --------------------------------------- | ---------------------------------------------------------------- | -------- | ----- | | [GitHub](/integrations/apis/github) | Subscribe to webhooks and perform actions | βœ… | βœ… | +| [Linear](/integrations/apis/linear) | Streamline project and issue tracking | βœ… | βœ… | | [OpenAI](/integrations/apis/openai) | Generate text and images. Including longer than 30s prompts | N/A | βœ… | | [Plain](/integrations/apis/plain) | Perform customer support using Plain | πŸ•˜ | βœ… | | [Resend](/integrations/apis/resend) | Send emails using Resend | πŸ•˜ | βœ… | diff --git a/docs/mint.json b/docs/mint.json index f8f2b7cf851..81c5dfb1717 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -244,6 +244,7 @@ "integrations/apis/github-tasks" ] }, + "integrations/apis/linear", "integrations/apis/openai", "integrations/apis/plain", "integrations/apis/resend", diff --git a/integrations/linear/README.md b/integrations/linear/README.md new file mode 100644 index 00000000000..13ffab69b4a --- /dev/null +++ b/integrations/linear/README.md @@ -0,0 +1,3 @@ + +# @trigger.dev/linear + \ No newline at end of file diff --git a/integrations/linear/package.json b/integrations/linear/package.json new file mode 100644 index 00000000000..c65a4a586f6 --- /dev/null +++ b/integrations/linear/package.json @@ -0,0 +1,36 @@ +{ + "name": "@trigger.dev/linear", + "version": "2.1.3", + "description": "Trigger.dev integration for @linear/sdk", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist/index.js", + "dist/index.d.ts", + "dist/index.js.map" + ], + "devDependencies": { + "@types/node": "16.x", + "rimraf": "^3.0.2", + "tsup": "7.1.x", + "typescript": "4.9.4" + }, + "scripts": { + "clean": "rimraf dist", + "build": "npm run clean && npm run build:tsup", + "build:tsup": "tsup", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@linear/sdk": "^8.0.0", + "@trigger.dev/integration-kit": "workspace:^2.1.0", + "@trigger.dev/sdk": "workspace:^2.1.0", + "zod": "3.21.4" + }, + "engines": { + "node": ">=16.8.0" + } +} \ No newline at end of file diff --git a/integrations/linear/src/events.ts b/integrations/linear/src/events.ts new file mode 100644 index 00000000000..18dff27b58b --- /dev/null +++ b/integrations/linear/src/events.ts @@ -0,0 +1,535 @@ +import { EventSpecification } from "@trigger.dev/sdk"; +import { + AttachmentEvent, + CommentEvent, + CycleEvent, + IssueEvent, + IssueLabelEvent, + IssueSLAEvent, + ProjectEvent, + ProjectUpdateEvent, + ReactionEvent, +} from "./schemas"; +import { GetLinearPayload } from "./types"; +import { + attachmentCreated, + attachmentRemoved, + attachmentUpdated, + commentCreated, + commentRemoved, + commentUpdated, + cycleCreated, + cycleRemoved, + cycleUpdated, + issueCreated, + issueRemoved, + issueUpdated, + issueLabelCreated, + issueLabelRemoved, + issueLabelUpdated, + projectCreated, + projectRemoved, + projectUpdated, + projectUpdateCreated, + projectUpdateRemoved, + projectUpdateUpdated, + reactionCreated, + reactionRemoved, + reactionUpdated, +} from "./payload-examples"; +import { onCommentProperties, onIssueProperties, updatedFromProperties } from "./utils"; + +/** **WARNING:** Still in alpha - use with caution! */ +export const onAttachment: EventSpecification> = { + name: "Attachment", + title: "On Attachment", + source: "linear.app", + icon: "linear", + examples: [attachmentCreated, attachmentRemoved, attachmentUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "Attachment ID", text: payload.data.id }, + ], +}; + +/** **WARNING:** Still in alpha - use with caution! */ +export const onAttachmentCreated: EventSpecification> = + { + name: "Attachment", + title: "On Attachment Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [attachmentCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Attachment ID", text: payload.data.id }], + }; + +/** **WARNING:** Still in alpha - use with caution! */ +export const onAttachmentRemoved: EventSpecification> = + { + name: "Attachment", + title: "On Attachment Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [attachmentRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Attachment ID", text: payload.data.id }], + }; + +/** **WARNING:** Still in alpha - use with caution! */ +export const onAttachmentUpdated: EventSpecification> = + { + name: "Attachment", + title: "On Attachment Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [attachmentUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Attachment ID", text: payload.data.id }], + }; + +export const onComment: EventSpecification> = { + name: "Comment", + title: "On Comment", + source: "linear.app", + icon: "linear", + examples: [commentCreated, commentRemoved, commentUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + ...onCommentProperties(payload), + ...updatedFromProperties(payload), + ], +}; + +export const onCommentCreated: EventSpecification> = { + name: "Comment", + title: "On Comment Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [commentCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => onCommentProperties(payload), +}; + +export const onCommentRemoved: EventSpecification> = { + name: "Comment", + title: "On Comment Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [commentRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => onCommentProperties(payload), +}; + +export const onCommentUpdated: EventSpecification> = { + name: "Comment", + title: "On Comment Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [commentUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [...onCommentProperties(payload), ...updatedFromProperties(payload)], +}; + +export const onCycle: EventSpecification> = { + name: "Cycle", + title: "On Cycle", + source: "linear.app", + icon: "linear", + examples: [cycleCreated, cycleRemoved, cycleUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "Cycle ID", text: payload.data.id }, + ], +}; + +export const onCycleCreated: EventSpecification> = { + name: "Cycle", + title: "On Cycle Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [cycleCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Cycle ID", text: payload.data.id }], +}; + +export const onCycleRemoved: EventSpecification> = { + name: "Cycle", + title: "On Cycle Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [cycleRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Cycle ID", text: payload.data.id }], +}; + +export const onCycleUpdated: EventSpecification> = { + name: "Cycle", + title: "On Cycle Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [cycleUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Cycle ID", text: payload.data.id }], +}; + +export const onIssue: EventSpecification> = { + name: "Issue", + title: "On Issue", + source: "linear.app", + icon: "linear", + examples: [issueCreated, issueRemoved, issueUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + ...onIssueProperties(payload), + ...updatedFromProperties(payload), + ], +}; + +export const onIssueCreated: EventSpecification> = { + name: "Issue", + title: "On Issue Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [issueCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => onIssueProperties(payload), +}; + +export const onIssueRemoved: EventSpecification> = { + name: "Issue", + title: "On Issue Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [issueRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => onIssueProperties(payload), +}; + +export const onIssueUpdated: EventSpecification> = { + name: "Issue", + title: "On Issue Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [issueUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [...onIssueProperties(payload), ...updatedFromProperties(payload)], +}; + +export const onIssueLabel: EventSpecification> = { + name: "IssueLabel", + title: "On IssueLabel", + source: "linear.app", + icon: "linear", + examples: [issueLabelCreated, issueLabelRemoved, issueLabelUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "IssueLabel ID", text: payload.data.id }, + ], +}; + +export const onIssueLabelCreated: EventSpecification> = + { + name: "IssueLabel", + title: "On IssueLabel Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [issueLabelCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "IssueLabel ID", text: payload.data.id }], + }; + +export const onIssueLabelRemoved: EventSpecification> = + { + name: "IssueLabel", + title: "On IssueLabel Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [issueLabelRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "IssueLabel ID", text: payload.data.id }], + }; + +export const onIssueLabelUpdated: EventSpecification> = + { + name: "IssueLabel", + title: "On IssueLabel Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [issueLabelUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "IssueLabel ID", text: payload.data.id }], + }; + +// TODO: this needs to be tested +export const onIssueSLA: EventSpecification> = { + name: "IssueSLA", + title: "On Issue SLA", + source: "linear.app", + icon: "linear", + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "SLA action", text: payload.action }, + { label: "Issue ID", text: payload.issueData.id }, + ], +}; + +export const onIssueSLASet: EventSpecification> = { + name: "IssueSLA", + title: "On Issue SLA Set", + source: "linear.app", + icon: "linear", + filter: { + action: ["set"], + }, + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Issue ID", text: payload.issueData.id }], +}; + +export const onIssueSLABreached: EventSpecification> = { + name: "IssueSLA", + title: "On Issue SLA Breached", + source: "linear.app", + icon: "linear", + filter: { + action: ["breached"], + }, + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Issue ID", text: payload.issueData.id }], +}; + +export const onIssueSLAHighRisk: EventSpecification> = { + name: "IssueSLA", + title: "On Issue SLA High Risk", + source: "linear.app", + icon: "linear", + filter: { + action: ["highRisk"], + }, + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Issue ID", text: payload.issueData.id }], +}; + +export const onProject: EventSpecification> = { + name: "Project", + title: "On Project", + source: "linear.app", + icon: "linear", + examples: [projectCreated, projectRemoved, projectUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "Project ID", text: payload.data.id }, + { label: "Project Name", text: payload.data.name, url: payload.url ?? undefined }, + ...updatedFromProperties(payload), + ], +}; + +export const onProjectCreated: EventSpecification> = { + name: "Project", + title: "On Project Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [projectCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Project ID", text: payload.data.id }, + { label: "Project Name", text: payload.data.name, url: payload.url ?? undefined }, + ], +}; + +export const onProjectRemoved: EventSpecification> = { + name: "Project", + title: "On Project Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [projectRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Project ID", text: payload.data.id }, + { label: "Project Name", text: payload.data.name, url: payload.url ?? undefined }, + ], +}; + +export const onProjectUpdated: EventSpecification> = { + name: "Project", + title: "On Project Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [projectUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Project ID", text: payload.data.id }, + { label: "Project Name", text: payload.data.name, url: payload.url ?? undefined }, + ...updatedFromProperties(payload), + ], +}; + +export const onProjectUpdate: EventSpecification> = { + name: "ProjectUpdate", + title: "On ProjectUpdate", + source: "linear.app", + icon: "linear", + examples: [projectUpdateCreated, projectUpdateRemoved, projectUpdateUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "ProjectUpdate ID", text: payload.data.id }, + ], +}; + +export const onProjectUpdateCreated: EventSpecification< + GetLinearPayload +> = { + name: "ProjectUpdate", + title: "On ProjectUpdate Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [projectUpdateCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "ProjectUpdate ID", text: payload.data.id }], +}; + +export const onProjectUpdateRemoved: EventSpecification< + GetLinearPayload +> = { + name: "ProjectUpdate", + title: "On ProjectUpdate Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [projectUpdateRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "ProjectUpdate ID", text: payload.data.id }], +}; + +export const onProjectUpdateUpdated: EventSpecification< + GetLinearPayload +> = { + name: "ProjectUpdate", + title: "On ProjectUpdate Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [projectUpdateUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "ProjectUpdate ID", text: payload.data.id }], +}; + +export const onReaction: EventSpecification> = { + name: "Reaction", + title: "On Reaction", + source: "linear.app", + icon: "linear", + examples: [reactionCreated, reactionRemoved, reactionUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [ + { label: "Event action", text: payload.action }, + { label: "Reaction ID", text: payload.data.id }, + ], +}; + +export const onReactionCreated: EventSpecification> = { + name: "Reaction", + title: "On Reaction Created", + source: "linear.app", + icon: "linear", + filter: { + action: ["create"], + }, + examples: [reactionCreated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Reaction ID", text: payload.data.id }], +}; + +export const onReactionRemoved: EventSpecification> = { + name: "Reaction", + title: "On Reaction Removed", + source: "linear.app", + icon: "linear", + filter: { + action: ["remove"], + }, + examples: [reactionRemoved], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Reaction ID", text: payload.data.id }], +}; + +export const onReactionUpdated: EventSpecification> = { + name: "Reaction", + title: "On Reaction Updated", + source: "linear.app", + icon: "linear", + filter: { + action: ["update"], + }, + examples: [reactionUpdated], + parsePayload: (payload) => payload as GetLinearPayload, + runProperties: (payload) => [{ label: "Reaction ID", text: payload.data.id }], +}; diff --git a/integrations/linear/src/index.ts b/integrations/linear/src/index.ts new file mode 100644 index 00000000000..b9f7d218b90 --- /dev/null +++ b/integrations/linear/src/index.ts @@ -0,0 +1,2029 @@ +import { + ConnectionAuth, + IO, + IOTask, + IntegrationTaskKey, + Json, + Prettify, + RunTaskErrorCallback, + RunTaskOptions, + TriggerIntegration, + retry, +} from "@trigger.dev/sdk"; +import { + Attachment, + AttachmentConnection, + AttachmentPayload, + Comment, + CommentConnection, + CommentPayload, + Connection, + CreateOrJoinOrganizationResponse, + CycleArchivePayload, + CyclePayload, + DeletePayload, + Document, + DocumentConnection, + DocumentPayload, + DocumentSearchPayload, + Favorite, + FavoriteConnection, + FavoritePayload, + FrontAttachmentPayload, + Issue, + IssueArchivePayload, + IssueConnection, + IssueLabel, + IssueLabelConnection, + IssueLabelPayload, + IssuePayload, + IssuePriorityValue, + IssueRelation, + IssueRelationConnection, + IssueRelationPayload, + IssueSearchPayload, + LinearClient, + LinearDocument as L, + LinearError, + Notification, + NotificationArchivePayload, + NotificationConnection, + NotificationSubscriptionPayload, + Organization, + OrganizationInvitePayload, + Project, + ProjectArchivePayload, + ProjectConnection, + ProjectLink, + ProjectLinkConnection, + ProjectLinkPayload, + ProjectMilestonePayload, + ProjectPayload, + ProjectSearchPayload, + ProjectUpdate, + ProjectUpdateConnection, + ProjectUpdatePayload, + RatelimitedLinearError, + ReactionPayload, + RoadmapArchivePayload, + RoadmapPayload, + Team, + TeamConnection, + TeamMembership, + TeamMembershipConnection, + TeamMembershipPayload, + TeamPayload, + Template, + User, + UserConnection, + UserPayload, + WorkflowState, + WorkflowStateArchivePayload, + WorkflowStateConnection, + WorkflowStatePayload, +} from "@linear/sdk"; + +import * as events from "./events"; +import { AwaitNested, LinearReturnType, SerializedLinearOutput } from "./types"; +import { Nullable, QueryVariables, queryProperties } from "./utils"; +import { TriggerParams, Webhooks, createTrigger, createWebhookEventSource } from "./webhooks"; + +export type LinearIntegrationOptions = { + id: string; + apiKey?: string; +}; + +export type LinearRunTask = InstanceType["runTask"]; + +export class Linear implements TriggerIntegration { + private _options: LinearIntegrationOptions; + private _client?: LinearClient; + private _io?: IO; + private _connectionKey?: string; + + constructor(private options: LinearIntegrationOptions) { + if (Object.keys(options).includes("apiKey") && !options.apiKey) { + throw `Can't create Linear integration (${options.id}) as apiKey was undefined`; + } + + this._options = options; + } + + get authSource() { + return this._options.apiKey ? "LOCAL" : "HOSTED"; + } + + get id() { + return this._options.id; + } + + get metadata() { + return { id: "linear", name: "Linear" }; + } + + get source() { + return createWebhookEventSource(this); + } + + cloneForRun(io: IO, connectionKey: string, auth?: ConnectionAuth) { + const linear = new Linear(this._options); + linear._io = io; + linear._connectionKey = connectionKey; + linear._client = this.createClient(auth); + return linear; + } + + createClient(auth?: ConnectionAuth) { + if (auth) { + return new LinearClient({ + accessToken: auth.accessToken, + }); + } + + if (this._options.apiKey) { + return new LinearClient({ + apiKey: this._options.apiKey, + }); + } + + throw new Error("No auth"); + } + + runTask | void>( + key: IntegrationTaskKey, + callback: (client: LinearClient, task: IOTask, io: IO) => Promise, + options?: RunTaskOptions, + errorCallback?: RunTaskErrorCallback + ): Promise { + if (!this._io) throw new Error("No IO"); + if (!this._connectionKey) throw new Error("No connection key"); + + return this._io.runTask( + key, + (task, io) => { + if (!this._client) throw new Error("No client"); + return callback(this._client, task, io); + }, + { + icon: "linear", + retry: retry.standardBackoff, + ...(options ?? {}), + connectionKey: this._connectionKey, + }, + errorCallback ?? onError + ); + } + + async getAll< + TTask extends ( + key: IntegrationTaskKey, + params: Partial> + ) => LinearReturnType>, + >( + task: TTask, + key: IntegrationTaskKey, + params: Nullable = {} + ): Promise>["nodes"]> { + const boundTask = task.bind(this); + + let edges = await boundTask(`${key}-0`, params); + let nodes = edges.nodes; + + for (let i = 1; edges.pageInfo.hasNextPage; i++) { + edges = await boundTask(`${key}-${i}`, { ...params, after: edges.pageInfo.endCursor }); + nodes = nodes.concat(edges.nodes); + } + + return nodes; + } + + attachment(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.attachment(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Attachment", + params, + properties: [{ label: "Attachment ID", text: params.id }], + } + ); + } + + attachments( + key: IntegrationTaskKey, + params: L.AttachmentsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.attachments(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Attachments", + params, + properties: queryProperties(params), + } + ); + } + + createAttachment( + key: IntegrationTaskKey, + params: L.AttachmentCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createAttachment(params); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Create Attachment", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Title", text: params.title }, + { label: "URL", text: params.url }, + ], + } + ); + } + + deleteAttachment(key: IntegrationTaskKey, params: { id: string }): Promise { + return this.runTask(key, (client) => client.deleteAttachment(params.id), { + name: "Delete Attachment", + params, + properties: [{ label: "Attachment ID", text: params.id }], + }); + } + + updateAttachment( + key: IntegrationTaskKey, + params: { id: string; input: L.AttachmentUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateAttachment(params.id, params.input); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Update Attachment", + params, + properties: [{ label: "Attachment ID", text: params.id }], + } + ); + } + + attachmentLinkDiscord( + key: IntegrationTaskKey, + params: { + channelId: string; + issueId: string; + messageId: string; + url: string; + variables?: Omit< + L.AttachmentLinkDiscordMutationVariables, + "channelId" | "issueId" | "messageId" | "url" + >; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkDiscord( + params.channelId, + params.issueId, + params.messageId, + params.url, + params.variables + ); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link Discord Message", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Channel ID", text: params.channelId }, + { label: "Message ID", text: params.messageId }, + { label: "URL", text: params.url }, + ], + } + ); + } + + attachmentLinkFront( + key: IntegrationTaskKey, + params: { + conversationId: string; + issueId: string; + variables?: Omit; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkFront( + params.conversationId, + params.issueId, + params.variables + ); + return serializeLinearOutput(payload); + }, + { + name: "Link Front Conversation", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Conversation ID", text: params.conversationId }, + ], + } + ); + } + + attachmentLinkIntercom( + key: IntegrationTaskKey, + params: { + conversationId: string; + issueId: string; + variables?: Omit; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkIntercom( + params.conversationId, + params.issueId, + params.variables + ); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link Intercom Conversation", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Conversation ID", text: params.conversationId }, + ], + } + ); + } + + attachmentLinkJiraIssue( + key: IntegrationTaskKey, + params: { + issueId: string; + jiraIssueId: string; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkJiraIssue(params.issueId, params.jiraIssueId); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link Jira Issue", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Jira Issue ID", text: params.jiraIssueId }, + ], + } + ); + } + + attachmentLinkSlack( + key: IntegrationTaskKey, + params: { + channel: string; + issueId: string; + latest: string; + url: string; + variables?: Omit< + L.AttachmentLinkSlackMutationVariables, + "channel" | "issueId" | "latest" | "url" + >; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkSlack( + params.channel, + params.issueId, + params.latest, + params.url, + params.variables + ); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link Slack Message", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Channel", text: params.channel }, + { label: "Latest", text: params.latest }, + { label: "URL", text: params.url }, + ], + } + ); + } + + attachmentLinkURL( + key: IntegrationTaskKey, + params: { + issueId: string; + url: string; + variables?: Omit; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkURL( + params.issueId, + params.url, + params.variables + ); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link URL", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "URL", text: params.url }, + ], + } + ); + } + + attachmentLinkZendesk( + key: IntegrationTaskKey, + params: { + issueId: string; + ticketId: string; + variables?: Omit; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.attachmentLinkZendesk( + params.issueId, + params.ticketId, + params.variables + ); + return serializeLinearOutput(await payload.attachment); + }, + { + name: "Link Zendesk Ticket", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Ticket ID", text: params.ticketId }, + ], + } + ); + } + + comment(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.comment(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Comment", + params, + properties: [{ label: "Comment ID", text: params.id }], + } + ); + } + + comments( + key: IntegrationTaskKey, + params: L.CommentsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.comments(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Comments", + params, + properties: queryProperties(params), + } + ); + } + + createComment( + key: IntegrationTaskKey, + params: L.CommentCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createComment(params); + return serializeLinearOutput(await payload.comment); + }, + { + name: "Create Comment", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Body", text: params.body ?? "" }, + ], + } + ); + } + + deleteComment(key: IntegrationTaskKey, params: { id: string }): Promise { + return this.runTask(key, (client) => client.deleteComment(params.id), { + name: "Delete Comment", + params, + properties: [{ label: "Comment ID", text: params.id }], + }); + } + + updateComment( + key: IntegrationTaskKey, + params: { id: string; input: L.CommentUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateComment(params.id, params.input); + return serializeLinearOutput(await payload.comment); + }, + { + name: "Update Comment", + params, + properties: [{ label: "Comment ID", text: params.id }], + } + ); + } + + archiveCycle( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType> { + return this.runTask( + key, + async (client) => { + const payload = await client.archiveCycle(params.id); + return serializeLinearOutput({ + ...payload, + entity: await payload.entity, + }); + }, + { + name: "Archive Cycle", + params, + properties: [{ label: "Cycle ID", text: params.id }], + } + ); + } + + createCycle( + key: IntegrationTaskKey, + params: L.CycleCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createCycle(params); + return serializeLinearOutput(await payload.cycle); + }, + { + name: "Create Cycle", + params, + properties: [ + { label: "Team ID", text: params.teamId }, + { label: "Start at", text: params.startsAt.toISOString() }, + { label: "Ends at", text: params.endsAt.toISOString() }, + ], + } + ); + } + + // deleteCycle() does not exist + + updateCycle( + key: IntegrationTaskKey, + params: { id: string; input: L.CycleUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateCycle(params.id, params.input); + return serializeLinearOutput(await payload.cycle); + }, + { + name: "Update Cycle", + params, + properties: [{ label: "Cycle ID", text: params.id }], + } + ); + } + + document(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.document(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Document", + params, + properties: [{ label: "Document ID", text: params.id }], + } + ); + } + + documents( + key: IntegrationTaskKey, + params: L.DocumentsQueryVariables + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.documents(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Documents", + params, + properties: queryProperties(params), + } + ); + } + + createDocument( + key: IntegrationTaskKey, + params: L.DocumentCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createDocument(params); + return serializeLinearOutput(await payload.document); + }, + { + name: "Create Document", + params, + properties: [ + { label: "Project ID", text: params.projectId }, + { label: "Title", text: params.title }, + ], + } + ); + } + + searchDocuments( + key: IntegrationTaskKey, + params: { + term: string; + variables?: L.SearchDocumentsQueryVariables; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.searchDocuments(params.term, params.variables); + return serializeLinearOutput(payload); + }, + { + name: "Search Documents", + params, + properties: [{ label: "Search Term", text: params.term }], + } + ); + } + + favorite(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.favorite(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Favorite", + params, + properties: [{ label: "Favorite ID", text: params.id }], + } + ); + } + + favorites( + key: IntegrationTaskKey, + params: L.FavoritesQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.favorites(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Favorites", + params, + properties: queryProperties(params), + } + ); + } + + createFavorite( + key: IntegrationTaskKey, + params: L.FavoriteCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createFavorite(params); + return serializeLinearOutput(await payload.favorite); + }, + { + name: "Create Favorite", + params, + } + ); + } + + issue(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.issue(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Issue", + params, + properties: [{ label: "Issue ID", text: params.id }], + } + ); + } + + issues( + key: IntegrationTaskKey, + params: L.IssuesQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.issues(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Issues", + params, + properties: queryProperties(params), + } + ); + } + + archiveIssue( + key: IntegrationTaskKey, + params: { + id: string; + variables?: Omit; + } + ): LinearReturnType> { + return this.runTask( + key, + async (client) => { + const payload = await client.archiveIssue(params.id, params.variables); + return serializeLinearOutput({ + ...payload, + entity: await payload.entity, + }); + }, + { + name: "Archive Issue", + params, + properties: [{ label: "Issue ID", text: params.id }], + } + ); + } + + createIssue( + key: IntegrationTaskKey, + params: L.IssueCreateInput & { title: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createIssue(params); + return serializeLinearOutput(await payload.issue); + }, + { + name: "Create Issue", + params, + properties: [ + { label: "Team ID", text: params.teamId }, + { label: "Title", text: params.title }, + ], + } + ); + } + + deleteIssue( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.deleteIssue(params.id); + return serializeLinearOutput(await payload.entity); + }, + { + name: "Delete Issue", + params, + properties: [{ label: "Issue ID", text: params.id }], + } + ); + } + + searchIssues( + key: IntegrationTaskKey, + params: { + term: string; + variables?: L.SearchIssuesQueryVariables; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.searchIssues(params.term, params.variables); + return serializeLinearOutput(payload); + }, + { + name: "Search Issues", + params, + properties: [{ label: "Search Term", text: params.term }], + } + ); + } + + updateIssue( + key: IntegrationTaskKey, + params: { id: string; input: L.IssueUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateIssue(params.id, params.input); + return serializeLinearOutput(await payload.issue); + }, + { + name: "Update Issue", + params, + properties: [{ label: "Issue ID", text: params.id }], + } + ); + } + + issueLabel(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.issueLabel(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get IssueLabel", + params, + properties: [{ label: "IssueLabel ID", text: params.id }], + } + ); + } + + issueLabels( + key: IntegrationTaskKey, + params: L.IssueLabelsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.issueLabels(params); + return serializeLinearOutput(edges); + }, + { + name: "Get IssueLabels", + params, + properties: queryProperties(params), + } + ); + } + + createIssueLabel( + key: IntegrationTaskKey, + params: L.IssueLabelCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createIssueLabel(params); + return serializeLinearOutput(await payload.issueLabel); + }, + { + name: "Create IssueLabel", + params, + properties: [{ label: "Label name", text: params.name }], + } + ); + } + + deleteIssueLabel(key: IntegrationTaskKey, params: { id: string }): Promise { + return this.runTask(key, (client) => client.deleteIssueLabel(params.id), { + name: "Delete IssueLabel", + params, + properties: [{ label: "Label ID", text: params.id }], + }); + } + + updateIssueLabel( + key: IntegrationTaskKey, + params: { id: string; input: L.IssueLabelUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateIssueLabel(params.id, params.input); + return serializeLinearOutput(await payload.issueLabel); + }, + { + name: "Update IssueLabel", + params, + properties: [{ label: "Label ID", text: params.id }], + } + ); + } + + issuePriorityValues(key: IntegrationTaskKey): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.issuePriorityValues; + return serializeLinearOutput(entity); + }, + { + name: "Get Issue Priority Values", + } + ); + } + + issueRelation(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.issueRelation(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get IssueRelation", + params, + properties: [{ label: "IssueRelation ID", text: params.id }], + } + ); + } + + issueRelations( + key: IntegrationTaskKey, + params: L.IssueRelationsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.issueRelations(params); + return serializeLinearOutput(edges); + }, + { + name: "Get IssueRelations", + params, + properties: queryProperties(params), + } + ); + } + + createIssueRelation( + key: IntegrationTaskKey, + params: L.IssueRelationCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createIssueRelation(params); + return serializeLinearOutput(await payload.issueRelation); + }, + { + name: "Create IssueRelation", + params, + properties: [ + { label: "Issue ID", text: params.issueId }, + { label: "Related Issue ID", text: params.relatedIssueId }, + { label: "Relation Type", text: params.type }, + ], + } + ); + } + + notification(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.notification(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Notification", + params, + properties: [{ label: "Notification ID", text: params.id }], + } + ); + } + + notifications( + key: IntegrationTaskKey, + params: L.NotificationsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.notifications(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Notifications", + params, + properties: queryProperties(params), + } + ); + } + + archiveNotification( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.archiveNotification(params.id); + return serializeLinearOutput(payload); + }, + { + name: "Archive Notification", + params, + properties: [{ label: "Notification ID", text: params.id }], + } + ); + } + + createNotificationSubscription( + key: IntegrationTaskKey, + params: { + input: L.NotificationSubscriptionCreateInput; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createNotificationSubscription(params.input); + return serializeLinearOutput(payload); + }, + { + name: "Create Notification Subscription", + params, + } + ); + } + + organization(key: IntegrationTaskKey): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.organization; + return serializeLinearOutput(entity); + }, + { + name: "Get Viewer's Organization", + } + ); + } + + createOrganizationFromOnboarding( + key: IntegrationTaskKey, + params: { + input: L.CreateOrganizationInput; + variables?: Omit; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createOrganizationFromOnboarding( + params.input, + params.variables + ); + return serializeLinearOutput(await payload.organization); + }, + { + name: "Create Organization", + params, + properties: [ + { label: "Name", text: params.input.name }, + { label: "URL Key", text: params.input.urlKey }, + ], + } + ); + } + + /** WARNING: Causes internal server errors on Linear's side, regardless of input. */ + createOrganizationInvite( + key: IntegrationTaskKey, + params: { + input: L.OrganizationInviteCreateInput; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createOrganizationInvite(params.input); + return serializeLinearOutput(await payload.organizationInvite); + }, + { + name: "Create Organization Invite", + params, + properties: [{ label: "Invitee Email", text: params.input.email }], + } + ); + } + + project(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.project(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Project", + params, + properties: [{ label: "Project ID", text: params.id }], + } + ); + } + + projects( + key: IntegrationTaskKey, + params: L.ProjectsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.projects(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Projects", + params, + properties: queryProperties(params), + } + ); + } + + archiveProject( + key: IntegrationTaskKey, + params: { + id: string; + variables?: Omit; + } + ): LinearReturnType> { + return this.runTask( + key, + async (client) => { + const payload = await client.archiveProject(params.id, params.variables); + return serializeLinearOutput({ + ...payload, + entity: await payload.entity, + }); + }, + { + name: "Archive Project", + params, + properties: [{ label: "Project ID", text: params.id }], + } + ); + } + + createProject( + key: IntegrationTaskKey, + params: L.ProjectCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createProject(params); + return serializeLinearOutput(await payload.project); + }, + { + name: "Create Project", + params, + properties: [ + { label: "Team IDs", text: params.teamIds.join(", ") }, + { label: "Project name", text: params.name }, + ], + } + ); + } + + deleteProject( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.deleteProject(params.id); + return serializeLinearOutput(await payload.entity); + }, + { + name: "Delete Project", + params, + properties: [{ label: "Project ID", text: params.id }], + } + ); + } + + searchProjects( + key: IntegrationTaskKey, + params: { + term: string; + variables?: L.SearchProjectsQueryVariables; + } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.searchProjects(params.term, params.variables); + return serializeLinearOutput(payload); + }, + { + name: "Search Projects", + params, + properties: [{ label: "Search Term", text: params.term }], + } + ); + } + + updateProject( + key: IntegrationTaskKey, + params: { id: string; input: L.ProjectUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateProject(params.id, params.input); + return serializeLinearOutput(await payload.project); + }, + { + name: "Update Project", + params, + properties: [{ label: "Project ID", text: params.id }], + } + ); + } + + projectLink(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.projectLink(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get ProjectLink", + params, + properties: [{ label: "ProjectLink ID", text: params.id }], + } + ); + } + + projectLinks( + key: IntegrationTaskKey, + params: L.ProjectLinksQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.projectLinks(params); + return serializeLinearOutput(edges); + }, + { + name: "Get ProjectLinks", + params, + properties: queryProperties(params), + } + ); + } + + createProjectLink( + key: IntegrationTaskKey, + params: L.ProjectLinkCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createProjectLink(params); + return serializeLinearOutput(await payload.projectLink); + }, + { + name: "Create ProjectLink", + params, + properties: [ + { label: "Project ID", text: params.projectId }, + { label: "Link Label", text: params.label }, + { label: "Link URL", text: params.url }, + ], + } + ); + } + + createProjectMilestone( + key: IntegrationTaskKey, + params: L.ProjectMilestoneCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createProjectMilestone(params); + return serializeLinearOutput(await payload.projectMilestone); + }, + { + name: "Create ProjectMilestone", + params, + properties: [ + { label: "Project ID", text: params.projectId }, + { label: "Milestone Name", text: params.name }, + ], + } + ); + } + + projectUpdate(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.projectUpdate(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get ProjectUpdate", + params, + properties: [{ label: "ProjectUpdate ID", text: params.id }], + } + ); + } + + projectUpdates( + key: IntegrationTaskKey, + params: L.ProjectUpdatesQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.projectUpdates(params); + return serializeLinearOutput(edges); + }, + { + name: "Get ProjectUpdates", + params, + properties: queryProperties(params), + } + ); + } + + createProjectUpdate( + key: IntegrationTaskKey, + params: L.ProjectUpdateCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createProjectUpdate(params); + return serializeLinearOutput(await payload.projectUpdate); + }, + { + name: "Create ProjectUpdate", + params, + properties: [{ label: "Project ID", text: params.projectId }], + } + ); + } + + deleteProjectUpdate(key: IntegrationTaskKey, params: { id: string }): Promise { + return this.runTask(key, (client) => client.deleteProjectUpdate(params.id), { + name: "Delete ProjectUpdate", + params, + properties: [{ label: "ProjectUpdate ID", text: params.id }], + }); + } + + updateProjectUpdate( + key: IntegrationTaskKey, + params: { id: string; input: L.ProjectUpdateUpdateInput } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.updateProjectUpdate(params.id, params.input); + return serializeLinearOutput(await payload.projectUpdate); + }, + { + name: "Update ProjectUpdate", + params, + properties: [{ label: "ProjectUpdate ID", text: params.id }], + } + ); + } + + createReaction( + key: IntegrationTaskKey, + params: L.ReactionCreateInput & { emoji: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createReaction(params); + return serializeLinearOutput(await payload.reaction); + }, + { + name: "Create Reaction", + params, + properties: [ + ...(params.commentId ? [{ label: "Comment ID", text: params.commentId }] : []), + ...(params.issueId ? [{ label: "Issue ID", text: params.issueId }] : []), + ...(params.projectUpdateId + ? [{ label: "ProjectUpdate ID", text: params.projectUpdateId }] + : []), + { label: "Emoji", text: params.emoji }, + ], + } + ); + } + + deleteReaction(key: IntegrationTaskKey, params: { id: string }): Promise { + return this.runTask(key, (client) => client.deleteReaction(params.id), { + name: "Delete Reaction", + params, + properties: [{ label: "Reaction ID", text: params.id }], + }); + } + + archiveRoadmap( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType> { + return this.runTask( + key, + async (client) => { + const payload = await client.archiveRoadmap(params.id); + return serializeLinearOutput({ + ...payload, + entity: await payload.entity, + }); + }, + { + name: "Archive Roadmap", + params, + properties: [{ label: "Roadmap ID", text: params.id }], + } + ); + } + + createRoadmap( + key: IntegrationTaskKey, + params: L.RoadmapCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createRoadmap(params); + return serializeLinearOutput(await payload.roadmap); + }, + { + name: "Create Roadmap", + params, + properties: [{ label: "Roadmap Name", text: params.name }], + } + ); + } + + team(key: IntegrationTaskKey, params: { id: string }): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.team(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get Team", + params, + properties: [{ label: "Team ID", text: params.id }], + } + ); + } + + teams( + key: IntegrationTaskKey, + params: L.TeamsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.teams(params); + return serializeLinearOutput(edges); + }, + { + name: "Get Teams", + params, + properties: queryProperties(params), + } + ); + } + + createTeam( + key: IntegrationTaskKey, + params: L.TeamCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createTeam(params); + return serializeLinearOutput(await payload.team); + }, + { + name: "Create Team", + params, + properties: [{ label: "Team Name", text: params.name }], + } + ); + } + + teamMembership( + key: IntegrationTaskKey, + params: { id: string } + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const entity = await client.teamMembership(params.id); + return serializeLinearOutput(entity); + }, + { + name: "Get TeamMembership", + params, + properties: [{ label: "TeamMembership ID", text: params.id }], + } + ); + } + + teamMemberships( + key: IntegrationTaskKey, + params: L.TeamMembershipsQueryVariables = {} + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const edges = await client.teamMemberships(params); + return serializeLinearOutput(edges); + }, + { + name: "Get TeamMemberships", + params, + properties: queryProperties(params), + } + ); + } + + createTeamMembership( + key: IntegrationTaskKey, + params: L.TeamMembershipCreateInput + ): LinearReturnType { + return this.runTask( + key, + async (client) => { + const payload = await client.createTeamMembership(params); + return serializeLinearOutput(await payload.teamMembership); + }, + { + name: "Create TeamMembership", + params, + properties: [ + { label: "Team ID", text: params.teamId }, + { label: "User ID", text: params.userId }, + ], + } + ); + } + + template(key: IntegrationTaskKey, params: { id: string }): LinearReturnType