diff --git a/.changeset/ninety-boats-tap.md b/.changeset/ninety-boats-tap.md new file mode 100644 index 0000000000..94525b134b --- /dev/null +++ b/.changeset/ninety-boats-tap.md @@ -0,0 +1,29 @@ +--- +"@trigger.dev/integration-kit": minor +"@trigger.dev/replicate": minor +"@trigger.dev/airtable": minor +"@trigger.dev/sendgrid": minor +"@trigger.dev/supabase": minor +"@trigger.dev/typeform": minor +"@trigger.dev/core-backend": minor +"@trigger.dev/shopify": minor +"@trigger.dev/sdk": minor +"@trigger.dev/github": minor +"@trigger.dev/linear": minor +"@trigger.dev/openai": minor +"@trigger.dev/resend": minor +"@trigger.dev/stripe": minor +"@trigger.dev/plain": minor +"@trigger.dev/slack": minor +"@trigger.dev/sveltekit": minor +"@trigger.dev/express": minor +"@trigger.dev/testing": minor +"@trigger.dev/nestjs": minor +"@trigger.dev/nextjs": minor +"@trigger.dev/remix": minor +"@trigger.dev/core": minor +--- + +Support for Deno, Bun and Cloudflare workers, as well as conditionally exporting ESM versions of the package instead of just commonjs. + +Cloudflare worker support requires the node compat flag turned on (https://developers.cloudflare.com/workers/runtime-apis/nodejs/) diff --git a/.changeset/shaggy-crabs-sneeze.md b/.changeset/shaggy-crabs-sneeze.md new file mode 100644 index 0000000000..41527cd357 --- /dev/null +++ b/.changeset/shaggy-crabs-sneeze.md @@ -0,0 +1,6 @@ +--- +"@trigger.dev/hono": patch +"@trigger.dev/cli": patch +--- + +Added hono framework support diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index f90f81fab9..39fc79d666 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -22,6 +22,16 @@ jobs: node-version: 18 cache: "pnpm" + - name: ⎔ Setup Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v1.x + + - name: ⎔ Setup bun + uses: oven-sh/setup-bun@v1 + with: + bun-version: "1.0.15" + - name: 📥 Download deps run: pnpm install --frozen-lockfile diff --git a/.vscode/settings.json b/.vscode/settings.json index f7666be0e3..000318d27c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { - "deno.enablePaths": ["references/deno-reference"], + "deno.enablePaths": ["references/deno-reference", "runtime_tests/tests/deno"], "debug.toolBarLocation": "commandCenter" } diff --git a/apps/webapp/app/components/run/RunOverview.tsx b/apps/webapp/app/components/run/RunOverview.tsx index bfb4ab4dcf..385219ed4a 100644 --- a/apps/webapp/app/components/run/RunOverview.tsx +++ b/apps/webapp/app/components/run/RunOverview.tsx @@ -150,7 +150,7 @@ export function RunOverview({ run, trigger, showRerun, paths }: RunOverviewProps {run.executionCount}} /> diff --git a/apps/webapp/app/consts.ts b/apps/webapp/app/consts.ts index f81d961096..1c2abef0a6 100644 --- a/apps/webapp/app/consts.ts +++ b/apps/webapp/app/consts.ts @@ -8,4 +8,4 @@ export const EXECUTE_JOB_RETRY_LIMIT = 10; export const MAX_RUN_YIELDED_EXECUTIONS = 100; export const RUN_CHUNK_EXECUTION_BUFFER = 350; export const MAX_RUN_CHUNK_EXECUTION_LIMIT = 120000; // 2 minutes -export const RESPONSE_TIMEOUT_STATUS_CODES = [408, 504]; +export const VERCEL_RESPONSE_TIMEOUT_STATUS_CODES = [408, 504]; diff --git a/apps/webapp/app/models/endpoint.server.ts b/apps/webapp/app/models/endpoint.server.ts index 25c7aa9453..e5c1c21dda 100644 --- a/apps/webapp/app/models/endpoint.server.ts +++ b/apps/webapp/app/models/endpoint.server.ts @@ -1,4 +1,4 @@ -import { RESPONSE_TIMEOUT_STATUS_CODES } from "~/consts"; +import { VERCEL_RESPONSE_TIMEOUT_STATUS_CODES } from "~/consts"; import { prisma } from "~/db.server"; import { Prettify } from "~/lib.es5"; @@ -20,13 +20,33 @@ export async function findEndpoint(id: string) { }); } -export function detectResponseIsTimeout(response?: Response) { +export function detectResponseIsTimeout(rawBody: string, response?: Response) { if (!response) { return false; } return ( - RESPONSE_TIMEOUT_STATUS_CODES.includes(response.status) || + isResponseVercelTimeout(response) || + isResponseDenoDeployTimeout(rawBody, response) || + isResponseCloudflareTimeout(rawBody, response) + ); +} + +function isResponseCloudflareTimeout(rawBody: string, response: Response) { + return ( + response.status === 503 && + rawBody.includes("Worker exceeded resource limits") && + typeof response.headers.get("cf-ray") === "string" + ); +} + +function isResponseVercelTimeout(response: Response) { + return ( + VERCEL_RESPONSE_TIMEOUT_STATUS_CODES.includes(response.status) || response.headers.get("x-vercel-error") === "FUNCTION_INVOCATION_TIMEOUT" ); } + +function isResponseDenoDeployTimeout(rawBody: string, response: Response) { + return response.status === 502 && rawBody.includes("TIME_LIMIT"); +} diff --git a/apps/webapp/app/services/endpointApi.server.ts b/apps/webapp/app/services/endpointApi.server.ts index 1f64fbbdcf..4ae09dee24 100644 --- a/apps/webapp/app/services/endpointApi.server.ts +++ b/apps/webapp/app/services/endpointApi.server.ts @@ -444,6 +444,7 @@ function addStandardRequestOptions(options: RequestInit) { ...options.headers, "user-agent": "triggerdotdev-server/2.0.0", "x-trigger-version": API_VERSIONS.LAZY_LOADED_CACHED_TASKS, + accept: "application/json", }, }; } diff --git a/apps/webapp/app/services/endpoints/probeEndpoint.server.ts b/apps/webapp/app/services/endpoints/probeEndpoint.server.ts index ad8726d74f..c8571b0249 100644 --- a/apps/webapp/app/services/endpoints/probeEndpoint.server.ts +++ b/apps/webapp/app/services/endpoints/probeEndpoint.server.ts @@ -1,4 +1,4 @@ -import { MAX_RUN_CHUNK_EXECUTION_LIMIT, RESPONSE_TIMEOUT_STATUS_CODES } from "~/consts"; +import { MAX_RUN_CHUNK_EXECUTION_LIMIT } from "~/consts"; import { prisma, PrismaClient } from "~/db.server"; import { EndpointApi } from "../endpointApi.server"; import { logger } from "../logger.server"; @@ -46,8 +46,10 @@ export class ProbeEndpointService { }, }); + const rawBody = await response.text(); + // If the response is a 200, or it was a timeout, we can assume the endpoint is up and update the runChunkExecutionLimit - if (response.status === 200 || detectResponseIsTimeout(response)) { + if (response.status === 200 || detectResponseIsTimeout(rawBody, response)) { await this.#prismaClient.endpoint.update({ where: { id, diff --git a/apps/webapp/app/services/externalApis/integrations/supabase.ts b/apps/webapp/app/services/externalApis/integrations/supabase.ts index caa82e2891..b0036aaf6b 100644 --- a/apps/webapp/app/services/externalApis/integrations/supabase.ts +++ b/apps/webapp/app/services/externalApis/integrations/supabase.ts @@ -9,7 +9,7 @@ const supabase = new SupabaseManagement({ id: "__SLUG__", }); -new Job(client, { +client.defineJob({ id: "on-new-todos", name: "On New Todos", version: "0.1.1", @@ -32,7 +32,7 @@ const supabase = new SupabaseManagement({ apiKey: process.env.SUPABASE_API_KEY!, }); -new Job(client, { +client.defineJob({ id: "on-new-todos", name: "On New Todos", version: "0.1.1", @@ -136,7 +136,7 @@ const supabase = new Supabase({ supabaseKey: process.env.SUPABASE_API_KEY!, }); -new Job(client, { +client.defineJob({ id: "on-new-users", name: "On New Users", version: "0.1.1", diff --git a/apps/webapp/app/services/runs/performRunExecutionV3.server.ts b/apps/webapp/app/services/runs/performRunExecutionV3.server.ts index 779013fbb0..e96a1d339b 100644 --- a/apps/webapp/app/services/runs/performRunExecutionV3.server.ts +++ b/apps/webapp/app/services/runs/performRunExecutionV3.server.ts @@ -202,9 +202,14 @@ export class PerformRunExecutionV3Service { forceYieldCoordinator.deregisterRun(run.id); if (!response) { - return await this.#failRunExecutionWithRetry(run, input.lastAttempt, { - message: `Connection could not be established to the endpoint (${run.endpoint.url})`, - }); + return await this.#failRunExecutionWithRetry( + run, + input.lastAttempt, + { + message: `Connection could not be established to the endpoint (${run.endpoint.url})`, + }, + durationInMs + ); } // Update the endpoint version if it has changed @@ -285,6 +290,8 @@ export class PerformRunExecutionV3Service { status: response.status, runId: run.id, endpoint: run.endpoint.url, + headers: rawHeaders, + rawBody, }); const errorBody = safeJsonZodParse(errorParser, rawBody); @@ -294,7 +301,12 @@ export class PerformRunExecutionV3Service { if (response.status >= 400 && response.status <= 499) { return await this.#failRunExecution(this.#prismaClient, run, errorBody.data); } else { - return await this.#failRunExecutionWithRetry(run, input.lastAttempt, errorBody.data); + return await this.#failRunExecutionWithRetry( + run, + input.lastAttempt, + errorBody.data, + durationInMs + ); } } @@ -311,7 +323,7 @@ export class PerformRunExecutionV3Service { ); } else { // If the error is a timeout, we should mark this execution as succeeded (by not throwing an error) and enqueue a new execution - if (detectResponseIsTimeout(response)) { + if (detectResponseIsTimeout(rawBody, response)) { return await this.#resumeRunExecutionAfterTimeout( this.#prismaClient, run, @@ -319,9 +331,14 @@ export class PerformRunExecutionV3Service { durationInMs ); } else { - return await this.#failRunExecutionWithRetry(run, input.lastAttempt, { - message: `Endpoint responded with ${response.status} status code`, - }); + return await this.#failRunExecutionWithRetry( + run, + input.lastAttempt, + { + message: `Endpoint responded with ${response.status} status code`, + }, + durationInMs + ); } } } @@ -996,6 +1013,9 @@ export class PerformRunExecutionV3Service { executionDuration: { increment: durationInMs, }, + executionCount: { + increment: 1, + }, endpoint: { update: { // Never allow the execution limit to be less than 10 seconds or more than MAX_RUN_CHUNK_EXECUTION_LIMIT @@ -1018,7 +1038,8 @@ export class PerformRunExecutionV3Service { async #failRunExecutionWithRetry( run: FoundRun, lastAttempt: boolean, - output: Record + output: Record, + durationInMs: number = 0 ): Promise { if (lastAttempt) { return await this.#failRunExecution(this.#prismaClient, run, output); @@ -1028,10 +1049,16 @@ export class PerformRunExecutionV3Service { where: { id: run.id }, data: { status: "WAITING_TO_EXECUTE", + executionDuration: { + increment: durationInMs, + }, + executionCount: { + increment: 1, + }, }, }); - throw new Error(JSON.stringify(output)); + await ResumeRunService.enqueue(run, this.#prismaClient); } async #failRunExecution( @@ -1052,6 +1079,9 @@ export class PerformRunExecutionV3Service { executionDuration: { increment: durationInMs, }, + executionCount: { + increment: 1, + }, tasks: { updateMany: { where: { diff --git a/config-packages/tsconfig/integration.json b/config-packages/tsconfig/integration.json index ff9d795e59..d012312713 100644 --- a/config-packages/tsconfig/integration.json +++ b/config-packages/tsconfig/integration.json @@ -1,19 +1,37 @@ { "extends": "./node18.json", "compilerOptions": { - "lib": ["DOM", "DOM.Iterable", "ES2019"], + "lib": [ + "DOM", + "DOM.Iterable", + "ES2019" + ], "paths": { - "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], - "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"], - "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], - "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], - "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/tsup/*": [ + "../../config-packages/tsup/src/*" + ], + "@trigger.dev/tsup": [ + "../../config-packages/tsup/src/index" + ], + "@trigger.dev/sdk/*": [ + "../../packages/trigger-sdk/src/*" + ], + "@trigger.dev/sdk": [ + "../../packages/trigger-sdk/src/index" + ], + "@trigger.dev/integration-kit/*": [ + "../../packages/integration-kit/src/*" + ], + "@trigger.dev/integration-kit": [ + "../../packages/integration-kit/src/index" + ] }, "declaration": false, "declarationMap": false, "baseUrl": ".", "stripInternal": true }, - "exclude": ["node_modules"] -} + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/config-packages/tsup/package.json b/config-packages/tsup/package.json index 8af32c7ae5..fca78c6a82 100644 --- a/config-packages/tsup/package.json +++ b/config-packages/tsup/package.json @@ -3,7 +3,17 @@ "version": "0.0.0", "private": true, "license": "MIT", + "main": "./src/index.ts", + "types": "./src/index.ts", + "dependencies": { + "esbuild": "^0.19.2", + "tsup": "^8.0.1" + }, "devDependencies": { - "tsup": "7.1.x" + "@types/node": "18", + "typescript": "^5.3.0" + }, + "engines": { + "node": ">=18.0.0" } -} +} \ No newline at end of file diff --git a/config-packages/tsup/src/index.ts b/config-packages/tsup/src/index.ts index 661e53cca3..a28a5c2fd6 100644 --- a/config-packages/tsup/src/index.ts +++ b/config-packages/tsup/src/index.ts @@ -1,3 +1,4 @@ export { defineConfig } from "tsup"; export { deepMergeOptions } from "./utils"; export { options as integrationOptions } from "./integration"; +export { options as packageOptions, defineConfig as defineConfigPackage } from "./package"; diff --git a/config-packages/tsup/src/package.ts b/config-packages/tsup/src/package.ts new file mode 100644 index 0000000000..eb2a0734a8 --- /dev/null +++ b/config-packages/tsup/src/package.ts @@ -0,0 +1,39 @@ +import { Plugin } from "esbuild"; +import { Options, defineConfig as defineConfigTSUP } from "tsup"; + +const restoreNodeProtocolPlugin = (): Plugin => { + return { + name: "node-protocol-plugin-restorer", + setup(build) { + build.onResolve( + { + filter: /node:/, + }, + async (args) => { + return { path: args.path, external: true }; + } + ); + }, + }; +}; + +export const options: Options = { + name: "main", + config: "tsconfig.json", + entry: ["./src/index.ts"], + outDir: "./dist", + platform: "node", + format: ["cjs", "esm"], + legacyOutput: false, + sourcemap: true, + clean: true, + bundle: true, + splitting: false, + dts: true, + treeshake: { + preset: "recommended", + }, + esbuildPlugins: [restoreNodeProtocolPlugin()], +}; + +export const defineConfig = defineConfigTSUP(options); diff --git a/docs/_snippets/manual-setup-remix.mdx b/docs/_snippets/manual-setup-remix.mdx index d6f7d20e52..a8e1a490a6 100644 --- a/docs/_snippets/manual-setup-remix.mdx +++ b/docs/_snippets/manual-setup-remix.mdx @@ -5,15 +5,15 @@ To begin, install the necessary packages in your Remix project directory. You ca ```bash npm -npm i @trigger.dev/sdk @trigger.dev/remix +npm i @trigger.dev/sdk@latest @trigger.dev/remix@latest ``` ```bash pnpm -pnpm install @trigger.dev/sdk @trigger.dev/remix +pnpm install @trigger.dev/sdk@latest @trigger.dev/remix@latest ``` ```bash yarn -yarn add @trigger.dev/sdk @trigger.dev/remix +yarn add @trigger.dev/sdk@latest @trigger.dev/remix@latest ``` diff --git a/docs/documentation/quickstarts/hono.mdx b/docs/documentation/quickstarts/hono.mdx new file mode 100644 index 0000000000..1d77a0d5e4 --- /dev/null +++ b/docs/documentation/quickstarts/hono.mdx @@ -0,0 +1,433 @@ +--- +title: "Hono Quick Start" +sidebarTitle: "Hono.dev" +description: "Start creating Jobs in 5 minutes in your Hono project." +icon: "fire" +--- + +Hono is a fast & lightweight web framework built on top of Web Standards, and we support using Hono with Trigger.dev on Cloudflare Workers, Bun, Deno, and Node.js. + +## Installing Required Packages + +To begin, install the necessary packages in your Hono project: + + + +```bash npm +npm add @trigger.dev/sdk@latest @trigger.dev/hono@latest +``` + +```bash pnpm +pnpm add @trigger.dev/sdk@latest @trigger.dev/hono@latest +``` + +```bash yarn +yarn add @trigger.dev/sdk@latest @trigger.dev/hono@latest +``` + + + +## Obtain the Development Server API Key + +To locate your development Server 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 Server API Key from the field at the top of this page. +(Your development key will start with `tr_dev_`). + +## Configure Environment Variables + +Add the following environment variables to your `.env` file (or `.dev.vars` file if you are using Cloudflare Workers): + +```bash +TRIGGER_API_KEY= +TRIGGER_API_URL=https://api.trigger.dev # change this if you are self-hosting +``` + +Replace `` with the actual API key obtained from the previous step. + +## Enable Node.js compatibility + +If you are using Cloudflare Workers, you'll need to enable Node.js compatibility mode in your `wrangler.toml` file: + +```toml +compatibility_flags = ["nodejs_compat"] +``` + +## Add Middelware to Your Hono app + +Our `@trigger.dev/hono` package provides two different ways of configuring the necessary middleware needed to connect your Hono app to Trigger.dev. `addMiddleware` which should be used for Cloudflare Workers, and `createMiddleware` which can be used with Bun, Deno, and Node.js. + +### Cloudflare Workers + +Becase environment variables in Cloudflare Workers aren't available in the global scope, but are instead available only inside the fetch handler, we need to use the `addMiddleware` function to add the necessary middleware to your Hono app. + +```ts +import { Hono } from "hono"; +import { addMiddleware } from "@trigger.dev/hono"; +import { TriggerClient } from "@trigger.dev/sdk"; + +const app = new Hono<{ + Bindings: { + TRIGGER_API_KEY: string; + TRIGGER_API_URL: string; + }; +}>(); + +addMiddleware(app, (env) => { + const client = new TriggerClient({ + id: "hono-client", + apiKey: env.TRIGGER_API_KEY, + apiUrl: env.TRIGGER_API_URL, + }); + + return client; +}); + +// Your other routes here + +export default app; +``` + +The second argument to `addMiddleware` is a function that receives the environment variables (either from `.dev.vars` in development or from Cloudflare when deployed), and returns a `TriggerClient` instance. This function will be called once per request. + +If you want, you can extract our the function that creates the `TriggerClient` instance into a separate file, and import it into your `index.ts` file: + + + +```ts trigger-client.ts +import { TriggerClient } from "@trigger.dev/sdk"; + +export function triggerClient(apiKey: string, apiUrl: string) { + const client = new TriggerClient({ + id: "hono-client", + apiKey, + apiUrl, + }); + + return client; +} +``` + +```ts index.ts +import { Hono } from "hono"; +import { addMiddleware } from "@trigger.dev/hono"; +import { triggerClient } from "./trigger-client"; + +const app = new Hono<{ + Bindings: { + TRIGGER_API_KEY: string; + TRIGGER_API_URL: string; + }; +}>(); + +addMiddleware(app, (env) => triggerClient(env.TRIGGER_API_KEY, env.TRIGGER_API_URL)); + +// Your other routes here + +export default app; +``` + + + +Now that you've created the `TriggerClient` and setup the middleware, you can add your first job: + + + +```ts trigger-client.ts +import { TriggerClient } from "@trigger.dev/sdk"; +import { exampleJob } from "./jobs"; + +export function triggerClient(apiKey: string, apiUrl: string) { + const client = new TriggerClient({ + id: "hono-client", + apiKey, + apiUrl, + }); + + exampleJob.attachToClient(client); + + return client; +} +``` + +```ts jobs.ts +import { Job, invokeTrigger } from "@trigger.dev/sdk"; + +export const exampleJob = new Job({ + id: "example-job", + name: "Example Job", + version: "0.0.1", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => { + await io.logger.info("Hello world!", { payload }); + + return { + message: "Hello world!", + }; + }, +}); +``` + + + +As you can see above in `jobs.ts`, we define our first job using the `new Job` constructor from `@trigger.dev/sdk`, and then in `trigger-client.ts` we attach the job to the `TriggerClient` instance. + +### Bun + +If you are using Bun, you can use the `createMiddleware` function to create the necessary middleware to connect your Hono app to Trigger.dev and define your `TriggerClient` and jobs in the global scope: + +```ts +import { createMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; +import { Hono } from "hono"; + +const app = new Hono(); + +const client = new TriggerClient({ + id: "hono-client", + apiKey: Bun.env.TRIGGER_API_KEY, // Bun.env is available in the global scope + apiUrl: Bun.env.TRIGGER_API_URL, // Bun.env is available in the global scope +}); + +client.defineJob({ + id: "example-job", + name: "Example Job", + version: "0.0.1", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => { + await io.logger.info("Hello world!", { payload }); + + return { + message: "Hello world!", + }; + }, +}); + +app.use("/api/trigger", createMiddleware(client)); + +// The rest of your routes here + +export default app; +``` + +### Deno + +Deno works similarly to Bun, but the imports are slightly different. First, import the `@trigger.dev/sdk` and `@trigger.dev/hono` packages using [npm: specifiers](https://docs.deno.com/runtime/manual/node/npm_specifiers) + +```ts index.ts +import { createMiddleware } from "npm:@trigger.dev/hono@latest"; +import { TriggerClient, invokeTrigger } from "npm:@trigger.dev/sdk@latest"; +import { Hono } from "npm:hono"; // Make sure to use the npm specifier for hono as well +``` + +Deno doesn't automatically load environment variables from a `.env` file, so you'll need to load them manually using the `dotenv` package: + +```ts index.ts +import { load } from "https://deno.land/std@0.208.0/dotenv/mod.ts"; +const env = await load(); +``` + +Now we can create the `TriggerClient`, define our jobs, and create the middleware: + +```ts index.ts +const app = new Hono(); + +const client = new TriggerClient({ + id: "hono-client", + apiKey: env["TRIGGER_API_KEY"], + apiUrl: env["TRIGGER_API_URL"], +}); + +client.defineJob({ + id: "example-job", + name: "Example Job", + version: "0.0.1", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => { + await io.logger.info("Hello world!", { payload }); + + return { + message: "Hello world!", + }; + }, +}); + +app.use("/api/trigger", createMiddleware(client)); + +// The rest of your routes here + +Deno.serve(app.fetch); +``` + +### Node.js + +Node.js works very similarly to Deno and Bun, in that you can define the `TriggerClient` and jobs in the global scope, and then create the middleware and add it to your Hono app: + +```ts index.ts +import "dotenv/config"; +import { serve } from "@hono/node-server"; +import { Hono } from "hono"; +import { createMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; + +const app = new Hono(); + +const client = new TriggerClient({ + id: "hono-client", + apiKey: process.env.TRIGGER_API_KEY!, + apiUrl: process.env.TRIGGER_API_URL!, +}); + +client.defineJob({ + id: "example-job", + name: "Example Job", + version: "0.0.1", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => { + await io.logger.info("Hello world!", { payload }); + + return { + message: "Hello world!", + }; + }, +}); + +app.use("/api/trigger", createMiddleware(client)); + +// Your other routes here + +serve(app, (info) => { + console.log(`Listening on port ${info.port}`); +}); +``` + +## Running + +### Cloudflare Workers + +Run your Hono app locally, like you normally would. For example: + + + +```bash npm +npm run dev +``` + +```bash pnpm +pnpm run dev +``` + +```bash yarn +yarn run dev +``` + + + +In a **_separate terminal window or tab_** run: + + + +```bash npm +npx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + +```bash pnpm +pnpm dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + +```bash yarn +yarn dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + + + +### Bun + +Run your Hono app locally, like you normally would. For example: + +```bash +bun run index.ts +``` + +In a **_separate terminal window or tab_** run: + + + +```bash npm +npx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + +```bash pnpm +pnpm dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + +```bash yarn +yarn dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 -H localhost +``` + + + +### Deno + +Run your Hono app locally, like you normally would. For example: + +```bash +deno run --allow-net --allow-read --watch index.ts +``` + +In a **_separate terminal window or tab_** run: + + + +```bash npm +npx @trigger.dev/cli@latest dev --client-id hono-client -p 8000 -H 127.0.0.1 +``` + +```bash pnpm +pnpm dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8000 -H 127.0.0.1 +``` + +```bash yarn +yarn dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8000 -H 127.0.0.1 +``` + + + +### Node.js + +Run your Hono app locally, like you normally would. For example: + + + +```bash npm +npm run dev +``` + +```bash pnpm +pnpm run dev +``` + +```bash yarn +yarn run dev +``` + + + +In a **_separate terminal window or tab_** run: + + + +```bash npm +npx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 +``` + +```bash pnpm +pnpm dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 +``` + +```bash yarn +yarn dlx @trigger.dev/cli@latest dev --client-id hono-client -p 8787 +``` + + diff --git a/docs/mint.json b/docs/mint.json index b48bd8080b..a3d12c3e65 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -91,6 +91,7 @@ "documentation/quickstarts/astro", "documentation/quickstarts/nuxt", "documentation/quickstarts/sveltekit", + "documentation/quickstarts/hono", "documentation/quickstarts/fastify" ] }, @@ -141,7 +142,7 @@ "group": "Guides", "pages": [ { - "group": "Platforms", + "group": "Frameworks", "pages": [ "documentation/guides/platforms/nextjs", "documentation/guides/platforms/express", diff --git a/docs/sdk/job.mdx b/docs/sdk/job.mdx index 67c0b99080..6d9c313f2f 100644 --- a/docs/sdk/job.mdx +++ b/docs/sdk/job.mdx @@ -9,8 +9,8 @@ You can define a job by using the `TriggerClient.defineJob` instance method: -```ts client.defineJob -client.defineJob({ +```ts Example +new Job({ id: "github-integration-on-issue", name: "GitHub Integration - On Issue", version: "0.1.0", @@ -23,11 +23,11 @@ client.defineJob({ await io.logger.info("This is a simple log info message"); return { payload, ctx }; }, -}); +}).attachToClient(client); ``` ```ts notifications -client.defineJob({ +new Job({ id: "github-integration-on-issue", name: "GitHub Integration - On Issue", version: "0.1.0", @@ -46,7 +46,7 @@ client.defineJob({ await io.logger.info("This is a simple log info message"); return { payload, ctx }; }, -}); +}).attachToClient(client); ``` @@ -55,10 +55,6 @@ client.defineJob({ ## Parameters - - An instance of [TriggerClient](/sdk/triggerclient) that is used to send events to the Trigger API. - - ## Returns diff --git a/integrations/airtable/package.json b/integrations/airtable/package.json index b79462e075..8720cd3c84 100644 --- a/integrations/airtable/package.json +++ b/integrations/airtable/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -33,5 +30,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/airtable/src/webhooks.ts b/integrations/airtable/src/webhooks.ts index bc3d0fbe58..5c80b2d6f9 100644 --- a/integrations/airtable/src/webhooks.ts +++ b/integrations/airtable/src/webhooks.ts @@ -6,6 +6,7 @@ import { Airtable, AirtableRunTask } from "./index"; import { ListWebhooksResponse, ListWebhooksResponseSchema } from "./schemas"; import { WebhookSource, WebhookTrigger } from "@trigger.dev/sdk/triggers/webhook"; import { registerJobNamespace } from "@trigger.dev/integration-kit/webhooks"; +import { Buffer } from "node:buffer"; const WebhookFromSourceSchema = z.union([ z.literal("formSubmission"), diff --git a/integrations/airtable/tsconfig.json b/integrations/airtable/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/airtable/tsconfig.json +++ b/integrations/airtable/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/airtable/tsup.config.ts b/integrations/airtable/tsup.config.ts index 0869b21486..1d1b59a08b 100644 --- a/integrations/airtable/tsup.config.ts +++ b/integrations/airtable/tsup.config.ts @@ -1,24 +1,3 @@ +import { defineConfigPackage } from "@trigger.dev/tsup"; -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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); - +export default defineConfigPackage; diff --git a/integrations/github/package.json b/integrations/github/package.json index cfe94d27dd..4616a1530d 100644 --- a/integrations/github/package.json +++ b/integrations/github/package.json @@ -7,18 +7,16 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@octokit/types": "^9.2.3", "@octokit/webhooks-types": "^6.10.0", "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18", "rimraf": "^3.0.2", - "tsup": "^6.5.0" + "tsup": "8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -36,5 +34,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/github/src/sources.ts b/integrations/github/src/sources.ts index a65a0a00e1..adcd8fdaee 100644 --- a/integrations/github/src/sources.ts +++ b/integrations/github/src/sources.ts @@ -4,6 +4,7 @@ import type { Logger } from "@trigger.dev/sdk"; import { ExternalSource, HandlerEvent } from "@trigger.dev/sdk"; import { z } from "zod"; import { Github } from "./index"; +import { Buffer } from "node:buffer"; type WebhookData = { id: number; diff --git a/integrations/github/tsconfig.json b/integrations/github/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/github/tsconfig.json +++ b/integrations/github/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/github/tsup.config.ts b/integrations/github/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/github/tsup.config.ts +++ b/integrations/github/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/linear/package.json b/integrations/linear/package.json index 60af21c1a4..58fdbcd0ff 100644 --- a/integrations/linear/package.json +++ b/integrations/linear/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -33,5 +30,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/linear/src/webhooks.ts b/integrations/linear/src/webhooks.ts index d31f909d5d..0a16f5b1bb 100644 --- a/integrations/linear/src/webhooks.ts +++ b/integrations/linear/src/webhooks.ts @@ -21,6 +21,7 @@ import { Linear, LinearRunTask, serializeLinearOutput } from "./index"; import { WebhookPayloadSchema } from "./schemas"; import { LinearReturnType } from "./types"; import { queryProperties } from "./utils"; +import { Buffer } from "node:buffer"; export class Webhooks { runTask: LinearRunTask; @@ -43,7 +44,10 @@ export class Webhooks { ); } - webhooks(key: IntegrationTaskKey, params?: L.WebhooksQueryVariables): LinearReturnType { + webhooks( + key: IntegrationTaskKey, + params?: L.WebhooksQueryVariables + ): LinearReturnType { return this.runTask( key, async (client, task, io) => { diff --git a/integrations/linear/tsconfig.json b/integrations/linear/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/linear/tsconfig.json +++ b/integrations/linear/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/linear/tsup.config.ts b/integrations/linear/tsup.config.ts index 0869b21486..1d1b59a08b 100644 --- a/integrations/linear/tsup.config.ts +++ b/integrations/linear/tsup.config.ts @@ -1,24 +1,3 @@ +import { defineConfigPackage } from "@trigger.dev/tsup"; -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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); - +export default defineConfigPackage; diff --git a/integrations/openai/package.json b/integrations/openai/package.json index 069b5e0d85..01ce88864c 100644 --- a/integrations/openai/package.json +++ b/integrations/openai/package.json @@ -4,20 +4,31 @@ "description": "The official OpenAI integration for Trigger.dev", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", "publishConfig": { "access": "public" }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" + "dist" ], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18", "rimraf": "^3.0.2", - "tsup": "^6.5.0", - "typescript": "^4.9.4", + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0", "@types/jest": "^29.5.3", "jest": "^29.6.2", "ts-jest": "^29.1.1" diff --git a/integrations/openai/src/files.ts b/integrations/openai/src/files.ts index 52a9e7c77c..dfde807647 100644 --- a/integrations/openai/src/files.ts +++ b/integrations/openai/src/files.ts @@ -1,4 +1,4 @@ -import { fileFromString } from "@trigger.dev/integration-kit"; +import { Buffer } from "node:buffer"; import { IntegrationTaskKey } from "@trigger.dev/sdk"; import OpenAI from "openai"; import { OpenAIRunTask } from "./index"; @@ -9,7 +9,7 @@ import { createTaskOutputProperties, handleOpenAIError, } from "./taskUtils"; -import { Uploadable } from "openai/uploads"; +import { Uploadable, toFile } from "openai/uploads"; type CreateFileRequest = { file: string | File | Uploadable; @@ -42,7 +42,7 @@ export class Files { let file: Uploadable; if (typeof params.file === "string") { - file = await fileFromString(params.file, params.fileName ?? "file.txt"); + file = await toFile(Buffer.from(params.file), params.fileName ?? "file.txt"); } else { file = params.file; } @@ -81,7 +81,7 @@ export class Files { let file: Uploadable; if (typeof params.file === "string") { - file = await fileFromString(params.file, params.fileName ?? "file.txt"); + file = await toFile(Buffer.from(params.file), params.fileName ?? "file.txt"); } else { file = params.file; } @@ -242,8 +242,8 @@ export class Files { return this.runTask( key, async (client, task) => { - const file = await fileFromString( - params.examples.map((d) => JSON.stringify(d)).join("\n"), + const file = await toFile( + Buffer.from(params.examples.map((d) => JSON.stringify(d)).join("\n")), params.fileName ); diff --git a/integrations/openai/src/images.ts b/integrations/openai/src/images.ts index dce760efd4..3da7454b4b 100644 --- a/integrations/openai/src/images.ts +++ b/integrations/openai/src/images.ts @@ -1,4 +1,4 @@ -import { FetchRetryOptions, FetchTimeoutOptions, fileFromUrl } from "@trigger.dev/integration-kit"; +import { FetchRetryOptions, FetchTimeoutOptions } from "@trigger.dev/integration-kit"; import { IntegrationTaskKey, Prettify } from "@trigger.dev/sdk"; import OpenAI from "openai"; import { OpenAIRunTask } from "./index"; @@ -209,9 +209,8 @@ export class Images { return this.runTask( key, async (client, task) => { - const file = - typeof params.image === "string" ? await fileFromUrl(params.image) : params.image; - const mask = typeof params.mask === "string" ? await fileFromUrl(params.mask) : params.mask; + const file = typeof params.image === "string" ? await fetch(params.image) : params.image; + const mask = typeof params.mask === "string" ? await fetch(params.mask) : params.mask; const { data, response } = await client.images .edit( @@ -288,8 +287,7 @@ export class Images { return this.runTask( key, async (client, task) => { - const file = - typeof params.image === "string" ? await fileFromUrl(params.image) : params.image; + const file = typeof params.image === "string" ? await fetch(params.image) : params.image; const { data, response } = await client.images .createVariation( diff --git a/integrations/openai/tsconfig.json b/integrations/openai/tsconfig.json index c93d1b6081..036e5eb7cd 100644 --- a/integrations/openai/tsconfig.json +++ b/integrations/openai/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/openai/tsup.config.ts b/integrations/openai/tsup.config.ts index 483aba1d59..d47821095a 100644 --- a/integrations/openai/tsup.config.ts +++ b/integrations/openai/tsup.config.ts @@ -1,22 +1,4 @@ -import { defineConfig } from "tsup"; +import { packageOptions } from "@trigger.dev/tsup"; +import { defineConfig } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfig({ ...packageOptions, config: "tsconfig.build.json" }); diff --git a/integrations/plain/package.json b/integrations/plain/package.json index 53b6a8fa18..b12f27c991 100644 --- a/integrations/plain/package.json +++ b/integrations/plain/package.json @@ -7,16 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18", "rimraf": "^3.0.2", - "tsup": "^6.5.0" + "tsup": "8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -30,5 +28,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/plain/tsconfig.json b/integrations/plain/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/plain/tsconfig.json +++ b/integrations/plain/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/plain/tsup.config.ts b/integrations/plain/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/plain/tsup.config.ts +++ b/integrations/plain/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/replicate/package.json b/integrations/replicate/package.json index 0218253387..23fb1fac2c 100644 --- a/integrations/replicate/package.json +++ b/integrations/replicate/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -33,5 +30,17 @@ }, "engines": { "node": ">=16.8.0" - } -} \ No newline at end of file + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" +} diff --git a/integrations/replicate/tsconfig.json b/integrations/replicate/tsconfig.json index 36ae307e42..26ae70a15e 100644 --- a/integrations/replicate/tsconfig.json +++ b/integrations/replicate/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "@trigger.dev/tsconfig/integration.json", - "include": ["./src/**/*.ts", "tsup.config.ts"], + "include": ["./src/**/*.ts", "tsup.config.ts"] } diff --git a/integrations/replicate/tsup.config.ts b/integrations/replicate/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/replicate/tsup.config.ts +++ b/integrations/replicate/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/resend/package.json b/integrations/resend/package.json index cb4b9bc850..1d2a7151b0 100644 --- a/integrations/resend/package.json +++ b/integrations/resend/package.json @@ -7,16 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18", "rimraf": "^3.0.2", - "tsup": "^6.5.0" + "tsup": "8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -30,5 +28,17 @@ }, "engines": { "node": ">=18.0.0" - } -} \ No newline at end of file + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" +} diff --git a/integrations/resend/tsconfig.json b/integrations/resend/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/resend/tsconfig.json +++ b/integrations/resend/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/resend/tsup.config.ts b/integrations/resend/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/resend/tsup.config.ts +++ b/integrations/resend/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/sendgrid/package.json b/integrations/sendgrid/package.json index 18e08d17e8..878ee58614 100644 --- a/integrations/sendgrid/package.json +++ b/integrations/sendgrid/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -32,5 +29,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/sendgrid/tsconfig.json b/integrations/sendgrid/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/sendgrid/tsconfig.json +++ b/integrations/sendgrid/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/sendgrid/tsup.config.ts b/integrations/sendgrid/tsup.config.ts index 0869b21486..1d1b59a08b 100644 --- a/integrations/sendgrid/tsup.config.ts +++ b/integrations/sendgrid/tsup.config.ts @@ -1,24 +1,3 @@ +import { defineConfigPackage } from "@trigger.dev/tsup"; -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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); - +export default defineConfigPackage; diff --git a/integrations/shopify/package.json b/integrations/shopify/package.json index 7d634df5b4..a13089c095 100644 --- a/integrations/shopify/package.json +++ b/integrations/shopify/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -33,5 +30,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/shopify/tsup.config.ts b/integrations/shopify/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/shopify/tsup.config.ts +++ b/integrations/shopify/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/slack/package.json b/integrations/slack/package.json index 80c2ed8d88..558df37301 100644 --- a/integrations/slack/package.json +++ b/integrations/slack/package.json @@ -7,16 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18", "rimraf": "^3.0.2", - "tsup": "^6.5.0" + "tsup": "8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -30,5 +28,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/slack/tsconfig.json b/integrations/slack/tsconfig.json index 1ab3bda72d..e9bfea28cb 100644 --- a/integrations/slack/tsconfig.json +++ b/integrations/slack/tsconfig.json @@ -5,7 +5,9 @@ "lib": ["DOM", "DOM.Iterable", "ES2019"], "paths": { "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], - "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"] + "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/slack/tsup.config.ts b/integrations/slack/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/slack/tsup.config.ts +++ b/integrations/slack/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/stripe/package.json b/integrations/stripe/package.json index deb58e656f..5e20ef9236 100644 --- a/integrations/stripe/package.json +++ b/integrations/stripe/package.json @@ -7,17 +7,14 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@types/node": "16.x", "rimraf": "^3.0.2", "stripe-event-types": "^2.4.0", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -33,5 +30,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/stripe/tsconfig.json b/integrations/stripe/tsconfig.json index e57743ca1f..96a6e07903 100644 --- a/integrations/stripe/tsconfig.json +++ b/integrations/stripe/tsconfig.json @@ -18,9 +18,13 @@ "sourceMap": true, "resolveJsonModule": true, "lib": ["es2019"], - "module": "commonjs", + "module": "node16", "target": "es2021", - "stripInternal": true + "stripInternal": true, + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "include": ["./src/**/*.ts", "tsup.config.ts"], "exclude": ["node_modules"] diff --git a/integrations/stripe/tsup.config.ts b/integrations/stripe/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/stripe/tsup.config.ts +++ b/integrations/stripe/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/supabase/package.json b/integrations/supabase/package.json index a7829bf3a6..8d68d7b484 100644 --- a/integrations/supabase/package.json +++ b/integrations/supabase/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/supabase", - "version": "2.2.11", + "version": "2.2.10", "description": "Trigger.dev integration for @supabase/supabase-js", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -8,16 +8,15 @@ "access": "public" }, "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" + "dist" ], "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "18.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -27,12 +26,24 @@ }, "dependencies": { "@supabase/supabase-js": "^2.26.0", - "@trigger.dev/integration-kit": "workspace:^2.2.11", - "@trigger.dev/sdk": "workspace:^2.2.11", - "supabase-management-js": "^0.1.4", + "@trigger.dev/integration-kit": "workspace:^2.2.10", + "@trigger.dev/sdk": "workspace:^2.2.10", + "supabase-management-js": "^1.0.0", "zod": "3.22.3" }, "engines": { "node": ">=18.0.0" - } -} + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" +} \ No newline at end of file diff --git a/integrations/supabase/src/management/index.ts b/integrations/supabase/src/management/index.ts index 6d638abf00..4ff259ae89 100644 --- a/integrations/supabase/src/management/index.ts +++ b/integrations/supabase/src/management/index.ts @@ -31,7 +31,7 @@ import { } from "supabase-management-js"; import { z } from "zod"; import { Prettify, safeParseBody } from "@trigger.dev/integration-kit"; -import { randomUUID } from "crypto"; +import { randomUUID } from "node:crypto"; import { GenericSchema } from "../database/types"; export type SupabaseManagementIntegrationOptions = diff --git a/integrations/supabase/tsconfig.json b/integrations/supabase/tsconfig.json index d1b7924087..a816ed3943 100644 --- a/integrations/supabase/tsconfig.json +++ b/integrations/supabase/tsconfig.json @@ -7,7 +7,9 @@ "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], "@trigger.dev/integration-kit/*": ["../../packages/integration-kit/src/*"], - "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"] + "@trigger.dev/integration-kit": ["../../packages/integration-kit/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "declaration": false, "declarationMap": false, diff --git a/integrations/supabase/tsup.config.ts b/integrations/supabase/tsup.config.ts index 4ffd7367eb..1d1b59a08b 100644 --- a/integrations/supabase/tsup.config.ts +++ b/integrations/supabase/tsup.config.ts @@ -1,23 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - noExternal: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/integrations/typeform/package.json b/integrations/typeform/package.json index 4e899b0b5a..c46987a533 100644 --- a/integrations/typeform/package.json +++ b/integrations/typeform/package.json @@ -7,16 +7,13 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist/index.js", - "dist/index.d.ts", - "dist/index.js.map" - ], + "files": ["dist"], "devDependencies": { "@types/node": "16.x", "rimraf": "^3.0.2", - "tsup": "7.1.x", - "typescript": "4.9.4" + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -32,5 +29,17 @@ }, "engines": { "node": ">=16.8.0" - } + }, + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "module": "./dist/index.mjs" } diff --git a/integrations/typeform/tsconfig.json b/integrations/typeform/tsconfig.json index e57743ca1f..e5a1e7f0df 100644 --- a/integrations/typeform/tsconfig.json +++ b/integrations/typeform/tsconfig.json @@ -7,7 +7,7 @@ "forceConsistentCasingInFileNames": true, "inlineSources": false, "isolatedModules": true, - "moduleResolution": "node16", + "moduleResolution": "node", "noUnusedLocals": false, "noUnusedParameters": false, "preserveWatchOutput": true, @@ -20,7 +20,11 @@ "lib": ["es2019"], "module": "commonjs", "target": "es2021", - "stripInternal": true + "stripInternal": true, + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "include": ["./src/**/*.ts", "tsup.config.ts"], "exclude": ["node_modules"] diff --git a/integrations/typeform/tsup.config.ts b/integrations/typeform/tsup.config.ts index 483aba1d59..1d1b59a08b 100644 --- a/integrations/typeform/tsup.config.ts +++ b/integrations/typeform/tsup.config.ts @@ -1,22 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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, - treeshake: { - preset: "smallest", - }, - esbuildPlugins: [], - external: ["http", "https", "util", "events", "tty", "os", "timers"], - }, -]); +export default defineConfigPackage; diff --git a/package.json b/package.json index bc6e0834c8..e09024e784 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,8 @@ }, "pnpm": { "patchedDependencies": { - "@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch" + "@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch", + "tsup@8.0.1": "patches/tsup@8.0.1.patch" } } } \ No newline at end of file diff --git a/packages/cli/src/frameworks/hono/index.ts b/packages/cli/src/frameworks/hono/index.ts new file mode 100644 index 0000000000..f47b7883d1 --- /dev/null +++ b/packages/cli/src/frameworks/hono/index.ts @@ -0,0 +1,51 @@ +import { Framework, ProjectInstallOptions } from ".."; +import { InstallPackage } from "../../utils/addDependencies"; +import { PackageManager } from "../../utils/getUserPkgManager"; +import { logger } from "../../utils/logger"; +import { readPackageJson } from "../../utils/readPackageJson"; +import { standardWatchFilePaths } from "../watchConfig"; +import boxen from "boxen"; + +export class Hono implements Framework { + id = "hono"; + name = "Hono.dev"; + + async isMatch(path: string, packageManager: PackageManager): Promise { + //check for the express package + const packageJsonContent = await readPackageJson(path); + if (packageJsonContent?.dependencies?.hono) { + return true; + } + + return false; + } + + async dependencies(): Promise { + return [ + { name: "@trigger.dev/sdk", tag: "latest" }, + { name: "@trigger.dev/hono", tag: "latest" }, + ]; + } + + possibleEnvFilenames(): string[] { + return [".dev.vars", ".env"]; + } + + async install(path: string, { typescript, endpointSlug }: ProjectInstallOptions): Promise {} + + async postInstall(path: string, options: ProjectInstallOptions): Promise {} + + async printInstallationComplete(projectUrl: string): Promise { + logger.info( + boxen( + "Automatic installation isn't currently supported for Hono.dev. \nFollow the steps in our quickstart installation guide: https://trigger.dev/docs/documentation/quickstarts/hono", + { padding: 1, margin: 1, borderStyle: "double", borderColor: "magenta" } + ) + ); + } + + defaultHostnames = ["127.0.0.1", "localhost", "[::]"]; + defaultPorts = [3000, 8000, 80, 8080]; + watchFilePaths = standardWatchFilePaths; + watchIgnoreRegex = /(node_modules)/; +} diff --git a/packages/cli/src/frameworks/index.ts b/packages/cli/src/frameworks/index.ts index fac03e077c..5cdcb47c77 100644 --- a/packages/cli/src/frameworks/index.ts +++ b/packages/cli/src/frameworks/index.ts @@ -2,6 +2,7 @@ import { InstallPackage } from "../utils/addDependencies"; import { PackageManager } from "../utils/getUserPkgManager"; import { Astro } from "./astro"; import { Express } from "./express"; +import { Hono } from "./hono"; import { NextJs } from "./nextjs"; import { Remix } from "./remix"; @@ -53,7 +54,7 @@ export interface Framework { } /** The order of these matters. The first one that matches the folder will be used, so stricter ones should be first. */ -const frameworks: Framework[] = [new NextJs(), new Remix(), new Astro(), new Express()]; +const frameworks: Framework[] = [new NextJs(), new Remix(), new Astro(), new Express(), new Hono()]; export const getFramework = async ( path: string, diff --git a/packages/cli/src/utils/triggerApi.ts b/packages/cli/src/utils/triggerApi.ts index d900a00e4d..a8708f56de 100644 --- a/packages/cli/src/utils/triggerApi.ts +++ b/packages/cli/src/utils/triggerApi.ts @@ -1,7 +1,6 @@ import fetch from "./fetchUseProxy"; import { z } from "zod"; -import core from "@trigger.dev/core"; -const { GetEndpointIndexResponseSchema } = core; +import { GetEndpointIndexResponseSchema } from "@trigger.dev/core"; export type CreateEndpointOptions = { id: string; diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 4db6257736..38cc83bd31 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -5,6 +5,7 @@ "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", "publishConfig": { "access": "public" }, @@ -13,8 +14,12 @@ ], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -33,8 +38,9 @@ "jest": "^29.6.2", "rimraf": "^3.0.2", "ts-jest": "^29.1.1", - "tsup": "^7.1.0", - "typescript": "^5.1.0" + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "engines": { "node": ">=18.0.0" diff --git a/packages/core-backend/tsconfig.json b/packages/core-backend/tsconfig.json index efef46673f..34072687b3 100644 --- a/packages/core-backend/tsconfig.json +++ b/packages/core-backend/tsconfig.json @@ -6,7 +6,11 @@ "emitDecoratorMetadata": true, "declaration": false, "declarationMap": false, - "types": ["jest"] + "types": ["jest"], + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "exclude": ["node_modules"] } diff --git a/packages/core-backend/tsup.config.ts b/packages/core-backend/tsup.config.ts index ec5c6d83df..1914192e58 100644 --- a/packages/core-backend/tsup.config.ts +++ b/packages/core-backend/tsup.config.ts @@ -1,20 +1,6 @@ -import { defineConfig } from "tsup"; +import { packageOptions, defineConfig } from "@trigger.dev/tsup"; -export default defineConfig([ - { - name: "main", - config: "tsconfig.build.json", - entry: ["./src/index.ts"], - outDir: "./dist", - platform: "neutral", - format: ["cjs"], - legacyOutput: true, - sourcemap: true, - clean: true, - bundle: true, - splitting: false, - dts: true, - external: ["http", "https", "util", "events", "tty", "os", "timers"], - esbuildPlugins: [], - }, -]); +export default defineConfig({ + ...packageOptions, + config: "tsconfig.build.json", +}); diff --git a/packages/core/package.json b/packages/core/package.json index 9896ab6511..65345e221c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,6 +5,7 @@ "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", "publishConfig": { "access": "public" }, @@ -13,8 +14,12 @@ ], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -38,10 +43,11 @@ "jest": "^29.6.2", "rimraf": "^3.0.2", "ts-jest": "^29.1.1", - "tsup": "^7.1.0", - "typescript": "^4.9.4" + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "engines": { "node": ">=18.0.0" } -} +} \ No newline at end of file diff --git a/packages/core/src/logger.ts b/packages/core/src/logger.ts index 9353461b3b..c83ad131e0 100644 --- a/packages/core/src/logger.ts +++ b/packages/core/src/logger.ts @@ -8,6 +8,9 @@ * - `"info"`: Info, Warnings, Errors and essential messages. * - `"debug"`: Everything. */ +import { env } from "node:process"; +import { Buffer } from "node:buffer"; + export type LogLevel = "log" | "error" | "warn" | "info" | "debug"; const logLevels: Array = ["log", "error", "warn", "info", "debug"]; @@ -27,7 +30,7 @@ export class Logger { additionalFields?: () => Record ) { this.#name = name; - this.#level = logLevels.indexOf((process.env.TRIGGER_LOG_LEVEL ?? level) as LogLevel); + this.#level = logLevels.indexOf((env.TRIGGER_LOG_LEVEL ?? level) as LogLevel); this.#filteredKeys = filteredKeys; this.#jsonReplacer = createReplacer(jsonReplacer); this.#additionalFields = additionalFields ?? (() => ({})); @@ -169,7 +172,7 @@ function filterKeys(obj: unknown, keys: string[]): any { } function prettyPrintBytes(value: unknown): string { - if (process.env.NODE_ENV === "production") { + if (env.NODE_ENV === "production") { return "skipped size"; } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 080f4687ec..aa110b9ab4 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -7,7 +7,11 @@ "declaration": false, "declarationMap": false, "types": ["jest"], - "lib": ["DOM", "DOM.Iterable"] + "lib": ["DOM", "DOM.Iterable"], + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "exclude": ["node_modules"] } diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index ec5c6d83df..1914192e58 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,20 +1,6 @@ -import { defineConfig } from "tsup"; +import { packageOptions, defineConfig } from "@trigger.dev/tsup"; -export default defineConfig([ - { - name: "main", - config: "tsconfig.build.json", - entry: ["./src/index.ts"], - outDir: "./dist", - platform: "neutral", - format: ["cjs"], - legacyOutput: true, - sourcemap: true, - clean: true, - bundle: true, - splitting: false, - dts: true, - external: ["http", "https", "util", "events", "tty", "os", "timers"], - esbuildPlugins: [], - }, -]); +export default defineConfig({ + ...packageOptions, + config: "tsconfig.build.json", +}); diff --git a/packages/eslint-plugin/tests/lib/rules/no-duplicated-task-keys.js b/packages/eslint-plugin/tests/lib/rules/no-duplicated-task-keys.js index bc52bfccfd..193799a7e2 100644 --- a/packages/eslint-plugin/tests/lib/rules/no-duplicated-task-keys.js +++ b/packages/eslint-plugin/tests/lib/rules/no-duplicated-task-keys.js @@ -243,7 +243,7 @@ ruleTester.run("no-duplicated-task-keys", rule, { import { client } from "@/trigger"; // your first job - new Job(client, { + client.defineJob({ id: "example-job", name: "Example Job", version: "0.0.1", @@ -294,7 +294,7 @@ ruleTester.run("no-duplicated-task-keys", rule, { import { client } from "@/trigger"; // your first job - new Job(client, { + client.defineJob({ id: "example-job", name: "Example Job", version: "0.0.1", diff --git a/packages/express/package.json b/packages/express/package.json index d810d9957e..7ad266fd78 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -8,13 +8,15 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -24,8 +26,10 @@ "@types/debug": "^4.1.7", "@types/express": "^4.17.13", "rimraf": "^3.0.2", - "tsup": "^6.5.0", - "tsx": "^3.12.1" + "tsup": "8.0.1", + "tsx": "^3.12.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -41,5 +45,6 @@ }, "engines": { "node": ">=18.0.0" - } -} \ No newline at end of file + }, + "module": "./dist/index.mjs" +} diff --git a/packages/express/tsconfig.json b/packages/express/tsconfig.json index a644422483..9e1bbec3af 100644 --- a/packages/express/tsconfig.json +++ b/packages/express/tsconfig.json @@ -6,7 +6,11 @@ "emitDecoratorMetadata": true, "declaration": false, "declarationMap": false, - "lib": ["DOM"] + "lib": ["DOM"], + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "exclude": ["node_modules"] } diff --git a/packages/express/tsup.config.ts b/packages/express/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/express/tsup.config.ts +++ b/packages/express/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/hono/package.json b/packages/hono/package.json new file mode 100644 index 0000000000..ca77eea195 --- /dev/null +++ b/packages/hono/package.json @@ -0,0 +1,49 @@ +{ + "name": "@trigger.dev/hono", + "version": "2.2.10", + "description": "A Trigger.dev adapter for Hono.dev", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist" + ], + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "clean": "rimraf dist", + "build": "npm run clean && npm run build:tsup", + "build:tsup": "tsup --dts-resolve", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "hono": "3.x", + "@trigger.dev/sdk": "workspace:^2.2.10" + }, + "devDependencies": { + "@trigger.dev/tsconfig": "workspace:*", + "rimraf": "^3.0.2", + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0", + "hono": "3.10.3", + "@trigger.dev/sdk": "workspace:*" + }, + "engines": { + "node": ">=18.0.0" + } +} \ No newline at end of file diff --git a/packages/hono/src/index.ts b/packages/hono/src/index.ts new file mode 100644 index 0000000000..7bf4a25260 --- /dev/null +++ b/packages/hono/src/index.ts @@ -0,0 +1,65 @@ +import type { TriggerClient } from "@trigger.dev/sdk"; +import type { Env, Hono, HonoRequest, MiddlewareHandler } from "hono"; + +export function createMiddleware( + client: TriggerClient, + path: string = "/api/trigger" +): MiddlewareHandler { + return async (c, next) => { + if (c.req.path !== path) { + return await next(); + } + + if (c.req.method === "HEAD") { + return new Response(null, { status: 200 }); + } + + const request = convertToStandardRequest(c.req); + + const response = await client.handleRequest(request); + + return new Response(JSON.stringify(response.body), { + status: response.status, + headers: response.headers, + }); + }; +} + +export function addMiddleware( + app: Hono, + callback: (env: TEnv["Bindings"]) => TriggerClient +) { + app.use("/api/trigger", async (c, next) => { + const client = callback(c.env); + + if (c.req.method === "HEAD") { + return new Response(null, { status: 200 }); + } + + const request = convertToStandardRequest(c.req); + + const response = await client.handleRequest(request); + + return new Response(JSON.stringify(response.body), { + status: response.status, + headers: response.headers, + }); + }); +} + +function convertToStandardRequest(req: HonoRequest): Request { + const headers: Record = {}; + const entries = req.raw.headers.entries(); + + for (const [key, value] of entries) { + headers[key] = value; + } + + return new Request(req.raw.url, { + method: req.raw.method, + headers, + body: req.raw.body, + // @ts-ignore + duplex: "half", + }); +} diff --git a/packages/hono/tsconfig.json b/packages/hono/tsconfig.json new file mode 100644 index 0000000000..130be86f55 --- /dev/null +++ b/packages/hono/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "@trigger.dev/tsconfig/base.json", + "include": ["./src/**/*.ts", "tsup.config.ts"], + "compilerOptions": { + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "declaration": false, + "declarationMap": false, + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + }, + "lib": ["DOM", "DOM.Iterable"], + "downlevelIteration": true + }, + "exclude": ["node_modules"] +} diff --git a/packages/hono/tsup.config.ts b/packages/hono/tsup.config.ts new file mode 100644 index 0000000000..1d1b59a08b --- /dev/null +++ b/packages/hono/tsup.config.ts @@ -0,0 +1,3 @@ +import { defineConfigPackage } from "@trigger.dev/tsup"; + +export default defineConfigPackage; diff --git a/packages/integration-kit/package.json b/packages/integration-kit/package.json index cfeb122c92..ad3eef4ccb 100644 --- a/packages/integration-kit/package.json +++ b/packages/integration-kit/package.json @@ -5,6 +5,7 @@ "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", "publishConfig": { "access": "public" }, @@ -13,8 +14,12 @@ ], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -23,9 +28,9 @@ "@types/node": "18", "@types/uuid": "^9.0.0", "rimraf": "^3.0.2", - "tsup": "^6.5.0", - "tsx": "^3.12.1", - "typescript": "^4.8.4" + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", diff --git a/packages/integration-kit/src/file.ts b/packages/integration-kit/src/file.ts deleted file mode 100644 index 216547e2cc..0000000000 --- a/packages/integration-kit/src/file.ts +++ /dev/null @@ -1,20 +0,0 @@ -import fs, { promises } from "fs"; -import path from "path"; -import { v4 as uuidv4 } from "uuid"; - -export async function fileFromString(contents: string | Buffer, fileName: string): Promise { - const directory = path.join("tmp", uuidv4()); - await promises.mkdir(directory, { recursive: true }); - const filePath = path.join(directory, fileName); - await promises.writeFile(filePath, contents); - return fs.createReadStream(filePath) as unknown as File; -} - -export async function fileFromUrl(url: string) { - const response = await fetch(url); - const arrayBuffer = await response.arrayBuffer(); - const content = Buffer.from(arrayBuffer); - const fileName = path.basename(url); - - return fileFromString(content, fileName); -} diff --git a/packages/integration-kit/src/index.ts b/packages/integration-kit/src/index.ts index f24d4af3b9..4c92d48807 100644 --- a/packages/integration-kit/src/index.ts +++ b/packages/integration-kit/src/index.ts @@ -2,7 +2,6 @@ export * from "./json"; export * from "./webhooks"; export * from "./omit"; export * from "./properties"; -export * from "./file"; export * from "./prettify"; export * from "./types"; export * from "./utils"; diff --git a/packages/integration-kit/src/webhooks.ts b/packages/integration-kit/src/webhooks.ts index 8d0b586f7e..6e18a1c6dc 100644 --- a/packages/integration-kit/src/webhooks.ts +++ b/packages/integration-kit/src/webhooks.ts @@ -1,6 +1,7 @@ // Parses the body of a request import { safeJsonParse } from "./json"; +import { Buffer } from "node:buffer"; // If it's a Buffer, it will be parsed as JSON export function safeParseBody(body: any) { diff --git a/packages/integration-kit/tsconfig.json b/packages/integration-kit/tsconfig.json index e5b64c11cd..4bda8f174e 100644 --- a/packages/integration-kit/tsconfig.json +++ b/packages/integration-kit/tsconfig.json @@ -6,7 +6,9 @@ "emitDecoratorMetadata": true, "paths": { "@trigger.dev/core/*": ["../core/src/*"], - "@trigger.dev/core": ["../core/src/index"] + "@trigger.dev/core": ["../core/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "lib": ["DOM", "DOM.Iterable"], "declaration": false, diff --git a/packages/integration-kit/tsup.config.ts b/packages/integration-kit/tsup.config.ts index 34e51098a7..1d1b59a08b 100644 --- a/packages/integration-kit/tsup.config.ts +++ b/packages/integration-kit/tsup.config.ts @@ -1,20 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - noExternal: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index 93497964fe..dd8baaf593 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -8,13 +8,15 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -25,8 +27,10 @@ "@types/express": "^4.17.13", "fastify": "^4.23.2", "rimraf": "^3.0.2", - "tsup": "^6.5.0", - "tsx": "^3.12.1" + "tsup": "8.0.1", + "tsx": "^3.12.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -44,5 +48,6 @@ }, "engines": { "node": ">=18.0.0" - } + }, + "module": "./dist/index.mjs" } diff --git a/packages/nestjs/tsconfig.json b/packages/nestjs/tsconfig.json index 1eea77ed95..78f6246868 100644 --- a/packages/nestjs/tsconfig.json +++ b/packages/nestjs/tsconfig.json @@ -5,7 +5,11 @@ "experimentalDecorators": true, "emitDecoratorMetadata": true, "declaration": false, - "declarationMap": false + "declarationMap": false, + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "exclude": ["node_modules"] } diff --git a/packages/nestjs/tsup.config.ts b/packages/nestjs/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/nestjs/tsup.config.ts +++ b/packages/nestjs/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 6c6e5997d1..c7555b8b2b 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -8,13 +8,15 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -24,11 +26,12 @@ "@types/ws": "^8.5.3", "next": "^14.0.0", "rimraf": "^3.0.2", - "tsup": "^6.5.0", + "tsup": "8.0.1", "tsx": "^3.12.1", - "typescript": "^4.8.4", + "typescript": "^5.3.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -44,5 +47,6 @@ }, "engines": { "node": ">=18.0.0" - } -} \ No newline at end of file + }, + "module": "./dist/index.mjs" +} diff --git a/packages/nextjs/src/index.ts b/packages/nextjs/src/index.ts index 1f6660cb09..ba5d811f1e 100644 --- a/packages/nextjs/src/index.ts +++ b/packages/nextjs/src/index.ts @@ -1,6 +1,5 @@ import type { TriggerClient } from "@trigger.dev/sdk"; import type { NextApiRequest, NextApiResponse } from "next"; -import { NextResponse } from "next/server"; export function createPagesRoute(client: TriggerClient) { const handler = async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -40,10 +39,18 @@ export function createAppRoute(client: TriggerClient) { const response = await client.handleRequest(req); if (!response) { - return NextResponse.json({ error: "Not found" }, { status: 404 }); + return new Response(JSON.stringify({ error: "Not found" }), { + status: 404, + headers: { + "Content-Type": "application/json", + }, + }); } - return NextResponse.json(response.body, { status: response.status, headers: response.headers }); + return new Response(JSON.stringify(response.body), { + status: response.status, + headers: response.headers, + }); }; return { diff --git a/packages/nextjs/tsconfig.json b/packages/nextjs/tsconfig.json index f56d168f46..3e3ea197b9 100644 --- a/packages/nextjs/tsconfig.json +++ b/packages/nextjs/tsconfig.json @@ -9,7 +9,9 @@ "lib": ["DOM", "DOM.Iterable"], "paths": { "@trigger.dev/sdk": ["../trigger-sdk/src/index"], - "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"] + "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] } }, "exclude": ["node_modules"] diff --git a/packages/nextjs/tsup.config.ts b/packages/nextjs/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/nextjs/tsup.config.ts +++ b/packages/nextjs/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/remix/package.json b/packages/remix/package.json index 1ad8800047..d742e09ffd 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -8,13 +8,15 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -24,9 +26,10 @@ "@types/debug": "^4.1.7", "@types/ws": "^8.5.3", "rimraf": "^3.0.2", - "tsup": "^6.5.0", + "tsup": "8.0.1", "tsx": "^3.12.1", - "typescript": "^4.8.4" + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" }, "scripts": { "clean": "rimraf dist", @@ -42,5 +45,6 @@ }, "engines": { "node": ">=18.0.0" - } + }, + "module": "./dist/index.mjs" } diff --git a/packages/remix/tsconfig.json b/packages/remix/tsconfig.json index f56d168f46..3e3ea197b9 100644 --- a/packages/remix/tsconfig.json +++ b/packages/remix/tsconfig.json @@ -9,7 +9,9 @@ "lib": ["DOM", "DOM.Iterable"], "paths": { "@trigger.dev/sdk": ["../trigger-sdk/src/index"], - "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"] + "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] } }, "exclude": ["node_modules"] diff --git a/packages/remix/tsup.config.ts b/packages/remix/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/remix/tsup.config.ts +++ b/packages/remix/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index fc1319e0eb..179c6d3ed2 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -9,13 +9,15 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -25,7 +27,9 @@ "@types/debug": "^4.1.7", "@types/ws": "^8.5.3", "rimraf": "^3.0.2", - "tsup": "^6.5.0" + "tsup": "8.0.1", + "@trigger.dev/tsup": "workspace:*", + "typescript": "^5.3.0" }, "scripts": { "clean": "rimraf dist", @@ -40,5 +44,6 @@ }, "engines": { "node": ">=18.0.0" - } + }, + "module": "./dist/index.mjs" } diff --git a/packages/sveltekit/tsconfig.json b/packages/sveltekit/tsconfig.json index 3421bbad1f..f05051beff 100644 --- a/packages/sveltekit/tsconfig.json +++ b/packages/sveltekit/tsconfig.json @@ -9,9 +9,11 @@ "lib": ["DOM", "DOM.Iterable"], "paths": { "@trigger.dev/sdk": ["../trigger-sdk/src/index"], - "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"], + "@trigger.dev/sdk/*": ["../trigger-sdk/src/*"], "@trigger.dev/core": ["../core/src/index"], - "@trigger.dev/core/*": ["../core/src/*"] + "@trigger.dev/core/*": ["../core/src/*"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] } }, "exclude": ["node_modules"] diff --git a/packages/sveltekit/tsup.config.ts b/packages/sveltekit/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/sveltekit/tsup.config.ts +++ b/packages/sveltekit/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/packages/testing/package.json b/packages/testing/package.json index cac58c9331..eecff40c40 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -5,12 +5,13 @@ "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", - "files": [ - "dist" - ], + "files": ["dist"], "exports": { ".": { - "import": "./dist/esm/index.js", + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, "require": "./dist/index.js", "types": "./dist/index.d.ts" }, @@ -43,7 +44,9 @@ "devDependencies": { "@trigger.dev/stripe": "workspace:*", "@trigger.dev/tsconfig": "workspace:*", - "tsup": "^7.2.0", - "typescript": "^5.2.2" - } + "tsup": "8.0.1", + "typescript": "^5.3.0", + "@trigger.dev/tsup": "workspace:*" + }, + "module": "./dist/index.mjs" } diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts index 80a8ddff08..e6ae342349 100644 --- a/packages/testing/src/index.ts +++ b/packages/testing/src/index.ts @@ -160,8 +160,8 @@ export const createJobTester = const { client, trigger } = job; - mockSendEvent(client); - const eventLog = await client.sendEvent({ + mockSendEvent(client!); + const eventLog = await client!.sendEvent({ name: typeof trigger.event.name === "string" ? trigger.event.name : trigger.event.name[0], payload: opts.payload, }); @@ -192,11 +192,11 @@ export const createJobTester = return run(payload, io, ctx); }; - const request = buildRequest("EXECUTE_JOB", client.apiKey() ?? "", { + const request = buildRequest("EXECUTE_JOB", client!.apiKey() ?? "", { body: buildRequestBody(eventLog, job), jobId: job.id, }); - const requestResult = await client.handleRequest(request); + const requestResult = await client!.handleRequest(request); const { output, status, ...rest } = requestResult.body; diff --git a/packages/testing/tsconfig.json b/packages/testing/tsconfig.json index bc5cb49c30..59fb3fa41b 100644 --- a/packages/testing/tsconfig.json +++ b/packages/testing/tsconfig.json @@ -2,7 +2,11 @@ "extends": "@trigger.dev/tsconfig/node18.json", "compilerOptions": { "noEmit": true, - "lib": ["dom"] + "lib": ["dom"], + "paths": { + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] + } }, "paths": { "@/*": ["./src/*"], diff --git a/packages/testing/tsup.config.ts b/packages/testing/tsup.config.ts index d2d3f08a23..1d1b59a08b 100644 --- a/packages/testing/tsup.config.ts +++ b/packages/testing/tsup.config.ts @@ -1,18 +1,3 @@ -import { defineConfig } from "tsup" +import { defineConfigPackage } from "@trigger.dev/tsup"; -export default defineConfig([ - { - name: "main", - entry: ["./src/index.ts"], - outDir: "./dist", - platform: "node", - format: ["cjs", "esm"], - legacyOutput: true, - sourcemap: true, - clean: true, - bundle: true, - splitting: false, - dts: true, - esbuildPlugins: [], - }, -]) +export default defineConfigPackage; diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 147100ccc4..95aa3635b7 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -5,6 +5,7 @@ "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", "publishConfig": { "access": "public" }, @@ -13,8 +14,12 @@ ], "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.js" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": "./dist/index.js", + "types": "./dist/index.d.ts" }, "./package.json": "./package.json" }, @@ -28,7 +33,6 @@ "@trigger.dev/core": "workspace:^2.2.11", "@trigger.dev/core-backend": "workspace:^2.2.11", "chalk": "^5.2.0", - "colorette": "^2.0.20", "cronstrue": "^2.21.0", "debug": "^4.3.4", "evt": "^2.4.13", @@ -51,12 +55,12 @@ "@types/ws": "^8.5.3", "encoding": "^0.1.13", "rimraf": "^3.0.2", - "tsup": "^6.5.0", - "tsx": "^3.12.1", + "tsup": "^8.0.1", + "@trigger.dev/tsup": "workspace:*", "typed-emitter": "^2.1.0", - "typescript": "^4.8.4" + "typescript": "^5.3.0" }, "engines": { "node": ">=18.0.0" } -} +} \ No newline at end of file diff --git a/packages/trigger-sdk/src/apiClient.ts b/packages/trigger-sdk/src/apiClient.ts index b5e94a55c6..951aadada3 100644 --- a/packages/trigger-sdk/src/apiClient.ts +++ b/packages/trigger-sdk/src/apiClient.ts @@ -1,46 +1,46 @@ import { + API_VERSIONS, ApiEventLog, ApiEventLogSchema, CancelRunsForEventSchema, + CompleteTaskBodyV2Input, ConnectionAuthSchema, + EphemeralEventDispatcherRequestBody, + EphemeralEventDispatcherResponseBodySchema, FailTaskBodyInput, GetEventSchema, GetRunOptionsWithTaskDetails, GetRunSchema, + GetRunStatusesSchema, GetRunsOptions, GetRunsSchema, + InvokeJobRequestBody, + InvokeJobResponseSchema, + InvokeOptions, + JobRunStatusRecordSchema, + KeyValueStoreResponseBody, + KeyValueStoreResponseBodySchema, LogLevel, Logger, RegisterScheduleResponseBodySchema, RegisterSourceEventSchemaV2, RegisterSourceEventV2, + RegisterTriggerBodyV2, RunTaskBodyInput, + RunTaskResponseWithCachedTasksBodySchema, ScheduleMetadata, SendEvent, SendEventOptions, ServerTaskSchema, + StatusUpdate, TriggerSource, TriggerSourceSchema, UpdateTriggerSourceBodyV2, - RegisterTriggerBodyV2, - GetRunStatusesSchema, - JobRunStatusRecordSchema, - StatusUpdate, - urlWithSearchParams, - RunTaskResponseWithCachedTasksBodySchema, - API_VERSIONS, - InvokeJobResponseSchema, - InvokeOptions, - InvokeJobRequestBody, - CompleteTaskBodyV2Input, - EphemeralEventDispatcherRequestBody, - EphemeralEventDispatcherResponseBodySchema, UpdateWebhookBody, - KeyValueStoreResponseBodySchema, - KeyValueStoreResponseBody, assertExhaustive, - HttpMethod, + urlWithSearchParams, } from "@trigger.dev/core"; +import { env } from "node:process"; import { z } from "zod"; import { KeyValueStoreClient } from "./store/keyValueStoreClient"; @@ -83,7 +83,7 @@ export class ApiClient { constructor(options: ApiClientOptions) { this.#options = options; - this.#apiUrl = this.#options.apiUrl ?? process.env.TRIGGER_API_URL ?? "https://api.trigger.dev"; + this.#apiUrl = this.#options.apiUrl ?? env.TRIGGER_API_URL ?? "https://api.trigger.dev"; this.#logger = new Logger("trigger.dev", this.#options.logLevel); this.#storeClient = new KeyValueStoreClient(this.#queryKeyValueStore.bind(this)); @@ -708,7 +708,7 @@ export class ApiClient { } function getApiKey(key?: string) { - const apiKey = key ?? process.env.TRIGGER_API_KEY; + const apiKey = key ?? env.TRIGGER_API_KEY; if (!apiKey) { return { status: "missing" as const }; @@ -765,7 +765,7 @@ async function zodfetchWithVersions< ? VersionedResponseBody | undefined : VersionedResponseBody > { - const response = await fetch(url, { ...requestInit, cache: "no-cache" }); + const response = await fetch(url, requestInitWithCache(requestInit)); if ( (!requestInit || requestInit.method === "GET") && @@ -827,6 +827,21 @@ async function zodfetchWithVersions< }; } +function requestInitWithCache(requestInit?: RequestInit): RequestInit { + try { + const withCache: RequestInit = { + ...requestInit, + cache: "no-cache", + }; + + const _ = new Request("http://localhost", withCache); + + return withCache; + } catch (error) { + return requestInit ?? {}; + } +} + async function fetchHead( url: string, requestInitWithoutMethod?: Omit, @@ -836,7 +851,7 @@ async function fetchHead( ...requestInitWithoutMethod, method: "HEAD", }; - const response = await fetch(url, { ...requestInit, cache: "no-cache" }); + const response = await fetch(url, requestInitWithCache(requestInit)); if (response.status >= 500 && retryCount < 6) { // retry with exponential backoff and jitter @@ -862,7 +877,7 @@ async function zodfetch | undefined : z.infer > { - const response = await fetch(url, { ...requestInit, cache: "no-cache" }); + const response = await fetch(url, requestInitWithCache(requestInit)); if ( (!requestInit || requestInit.method === "GET") && diff --git a/packages/trigger-sdk/src/io.ts b/packages/trigger-sdk/src/io.ts index 43624411f6..909f847394 100644 --- a/packages/trigger-sdk/src/io.ts +++ b/packages/trigger-sdk/src/io.ts @@ -53,6 +53,7 @@ import { } from "./types"; import { z } from "zod"; import { KeyValueStore } from "./store/keyValueStore"; +import { Buffer } from "node:buffer"; export type IOTask = ServerTask; diff --git a/packages/trigger-sdk/src/job.ts b/packages/trigger-sdk/src/job.ts index da5f7423b1..639f1b50fd 100644 --- a/packages/trigger-sdk/src/job.ts +++ b/packages/trigger-sdk/src/job.ts @@ -4,11 +4,13 @@ import { InvokeOptions, JobMetadata, LogLevel, - QueueOptions, + Prettify, RunNotification, SuccessfulRunNotification, } from "@trigger.dev/core"; +import { ConcurrencyLimit } from "./concurrencyLimit"; import { IOWithIntegrations, TriggerIntegration } from "./integrations"; +import { runLocalStorage } from "./runLocalStorage"; import { TriggerClient } from "./triggerClient"; import type { EventSpecification, @@ -18,9 +20,6 @@ import type { TriggerInvokeType, } from "./types"; import { slugifyId } from "./utils"; -import { runLocalStorage } from "./runLocalStorage"; -import { Prettify } from "@trigger.dev/core"; -import { ConcurrencyLimit } from "./concurrencyLimit"; export type JobOptions< TTrigger extends Trigger>, @@ -111,19 +110,19 @@ export class Job< > { readonly options: JobOptions; - client: TriggerClient; + client?: TriggerClient; - constructor( - /** An instance of [TriggerClient](/sdk/triggerclient) that is used to send events - to the Trigger API. */ - client: TriggerClient, - options: JobOptions - ) { - this.client = client; + constructor(options: JobOptions) { this.options = options; this.#validate(); + } - client.attach(this); + /** + * Attaches the job to a client. This is called automatically when you define a job using `client.defineJob()`. + */ + attachToClient(client: TriggerClient) { + this.client = client; + this.trigger.attachToJob(client, this); } get id() { @@ -205,6 +204,14 @@ export class Job< param2: TriggerInvokeType | InvokeOptions | undefined = undefined, param3: InvokeOptions | undefined = undefined ): Promise<{ id: string }> { + const triggerClient = this.client; + + if (!triggerClient) { + throw new Error( + "Cannot invoke a job that is not attached to a client. Make sure you attach the job to a client before invoking it." + ); + } + const runStore = runLocalStorage.getStore(); if (typeof param1 === "string") { @@ -219,7 +226,7 @@ export class Job< return await runStore.io.runTask( param1, async (task) => { - const result = await this.client.invokeJob(this.id, param2, { + const result = await triggerClient.invokeJob(this.id, param2, { idempotencyKey: task.idempotencyKey, ...options, }); @@ -256,7 +263,7 @@ export class Job< throw new Error("Cannot invoke a job from within a run without a cacheKey."); } - return await this.client.invokeJob(this.id, param1, param3); + return await triggerClient.invokeJob(this.id, param1, param3); } async invokeAndWaitForCompletion( @@ -265,6 +272,14 @@ export class Job< timeoutInSeconds: number = 60 * 60, // 1 hour options: Prettify> = {} ): Promise> { + const triggerClient = this.client; + + if (!triggerClient) { + throw new Error( + "Cannot invoke a job that is not attached to a client. Make sure you attach the job to a client before invoking it." + ); + } + const runStore = runLocalStorage.getStore(); if (!runStore) { @@ -284,7 +299,7 @@ export class Job< : undefined : payload; - const result = await this.client.invokeJob(this.id, parsedPayload, { + const result = await triggerClient.invokeJob(this.id, parsedPayload, { idempotencyKey: task.idempotencyKey, callbackUrl: task.callbackUrl ?? undefined, ...options, diff --git a/packages/trigger-sdk/src/security.ts b/packages/trigger-sdk/src/security.ts index eaf1da0af1..3bfc788988 100644 --- a/packages/trigger-sdk/src/security.ts +++ b/packages/trigger-sdk/src/security.ts @@ -1,4 +1,4 @@ -import crypto from "crypto"; +import crypto from "node:crypto"; import type { BinaryToTextEncoding, BinaryLike, KeyObject } from "crypto"; import { VerifyResult } from "./types"; diff --git a/packages/trigger-sdk/src/triggerClient.ts b/packages/trigger-sdk/src/triggerClient.ts index a64897e759..a93681244c 100644 --- a/packages/trigger-sdk/src/triggerClient.ts +++ b/packages/trigger-sdk/src/triggerClient.ts @@ -46,7 +46,7 @@ import { WebhookMetadata, WebhookSourceRequestHeadersSchema, } from "@trigger.dev/core"; -import { yellow } from "colorette"; +import { env } from "node:process"; import { ApiClient } from "./apiClient"; import { AutoYieldExecutionError, @@ -119,9 +119,9 @@ const registerSourceEvent: EventSpecification = { import EventEmitter from "node:events"; import * as packageJson from "../package.json"; import { ConcurrencyLimit, ConcurrencyLimitOptions } from "./concurrencyLimit"; -import { formatSchemaErrors } from "./utils/formatSchemaErrors"; -import { WebhookDeliveryContext, WebhookSource } from "./triggers/webhook"; import { KeyValueStore } from "./store/keyValueStore"; +import { WebhookDeliveryContext, WebhookSource } from "./triggers/webhook"; +import { formatSchemaErrors } from "./utils/formatSchemaErrors"; export type TriggerClientOptions = { /** The `id` property is used to uniquely identify the client. @@ -691,13 +691,15 @@ export class TriggerClient { if (existingRegisteredJob) { console.warn( - yellow( - `[@trigger.dev/sdk] Warning: The Job "${existingRegisteredJob.id}" you're attempting to define has already been defined. Please assign a different ID to the job.` - ) + `[@trigger.dev/sdk] Warning: The Job "${existingRegisteredJob.id}" you're attempting to define has already been defined. Please assign a different ID to the job.` ); } - return new Job(this, options); + const job = new Job(options); + + this.attach(job); + + return job; } defineAuthResolver( @@ -732,9 +734,7 @@ export class TriggerClient { const existingHttpEndpoint = this.#registeredHttpEndpoints[options.id]; if (!suppressWarnings && existingHttpEndpoint) { console.warn( - yellow( - `[@trigger.dev/sdk] Warning: The HttpEndpoint "${existingHttpEndpoint.id}" you're attempting to define has already been defined. Please assign a different ID to the HttpEndpoint.` - ) + `[@trigger.dev/sdk] Warning: The HttpEndpoint "${existingHttpEndpoint.id}" you're attempting to define has already been defined. Please assign a different ID to the HttpEndpoint.` ); } @@ -749,7 +749,7 @@ export class TriggerClient { attach(job: Job, any>): void { this.#registeredJobs[job.id] = job; - job.trigger.attachToJob(this, job); + job.attachToClient(this); } attachDynamicTrigger(trigger: DynamicTrigger): void { @@ -834,7 +834,7 @@ export class TriggerClient { this.#registeredSources[options.key] = registeredSource; - new Job(this, { + this.defineJob({ id: options.key, name: options.key, version: options.source.version, @@ -916,57 +916,7 @@ export class TriggerClient { this.#registeredWebhooks[options.key] = registeredWebhook; - // new Job(this, { - // id: `webhook.deliver.${options.key}`, - // name: `webhook.deliver.${options.key}`, - // version: source.version, - // trigger: new EventTrigger({ - // event: deliverWebhookEvent(options.key), - // // verify: source.verify.bind(source), - // }), - // integrations: { - // integration: source.integration, - // }, - // run: async (request, io, ctx) => { - // this.#internalLogger.debug("[webhook.deliver]"); - - // const webhookContextMetadata = WebhookContextMetadataSchema.parse(ctx.source?.metadata); - - // const webhookContext = { - // ...ctx, - // webhook: webhookContextMetadata, - // }; - - // const verifyResult = await io.runTask( - // "verify", - // async () => { - // return await source.verify(request, io, webhookContext); - // }, - // { - // name: "Verify Signature", - // icon: "certificate", - // } - // ); - - // if (!verifyResult.success) { - // throw new Error(verifyResult.reason); - // } - - // return await io.runTask( - // "generate-events", - // async () => { - // return await source.generateEvents(request, io, webhookContext); - // }, - // { - // name: "Generate Events", - // icon: "building-factory-2", - // } - // ); - // }, - // __internal: true, - // }); - - new Job(this, { + this.defineJob({ id: `webhook.register.${options.key}`, name: `webhook.register.${options.key}`, version: source.version, @@ -1141,7 +1091,7 @@ export class TriggerClient { return "missing-header"; } - const localApiKey = this.#options.apiKey ?? process.env.TRIGGER_API_KEY; + const localApiKey = this.#options.apiKey ?? env.TRIGGER_API_KEY; if (!localApiKey) { return "missing-client"; @@ -1151,7 +1101,7 @@ export class TriggerClient { } apiKey() { - return this.#options.apiKey ?? process.env.TRIGGER_API_KEY; + return this.#options.apiKey ?? env.TRIGGER_API_KEY; } async #preprocessRun(body: PreprocessRunBody, job: Job>, any>) { diff --git a/packages/trigger-sdk/src/triggers/externalSource.ts b/packages/trigger-sdk/src/triggers/externalSource.ts index ba0d18d678..7602147b2e 100644 --- a/packages/trigger-sdk/src/triggers/externalSource.ts +++ b/packages/trigger-sdk/src/triggers/externalSource.ts @@ -19,6 +19,7 @@ import { slugifyId } from "../utils"; import { SerializableJson } from "@trigger.dev/core"; import { ConnectionAuth } from "@trigger.dev/core"; import { Prettify } from "@trigger.dev/core"; +import type { Buffer } from "buffer"; export type HttpSourceEvent = { url: string; diff --git a/packages/trigger-sdk/tsconfig.json b/packages/trigger-sdk/tsconfig.json index 8e3bd63ef4..e7065dc075 100644 --- a/packages/trigger-sdk/tsconfig.json +++ b/packages/trigger-sdk/tsconfig.json @@ -8,7 +8,9 @@ "@trigger.dev/core/*": ["../core/src/*"], "@trigger.dev/core": ["../core/src/index"], "@trigger.dev/core-backend/*": ["../core-backend/src/*"], - "@trigger.dev/core-backend": ["../core-backend/src/index"] + "@trigger.dev/core-backend": ["../core-backend/src/index"], + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"] }, "lib": ["DOM", "DOM.Iterable"], "declaration": false, diff --git a/packages/trigger-sdk/tsup.config.ts b/packages/trigger-sdk/tsup.config.ts index 74c4f4dc14..1d1b59a08b 100644 --- a/packages/trigger-sdk/tsup.config.ts +++ b/packages/trigger-sdk/tsup.config.ts @@ -1,19 +1,3 @@ -import { defineConfig } from "tsup"; +import { defineConfigPackage } from "@trigger.dev/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: [], - }, -]); +export default defineConfigPackage; diff --git a/patches/tsup@8.0.1.patch b/patches/tsup@8.0.1.patch new file mode 100644 index 0000000000..0b4e6b92f7 --- /dev/null +++ b/patches/tsup@8.0.1.patch @@ -0,0 +1,12 @@ +diff --git a/dist/index.js b/dist/index.js +index 96cbf7b0eca2641ca074a4d21dbfdd77d4e5e1fa..11393d917632c6953474c5b1289879f30a9aa829 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -1643,7 +1643,6 @@ async function runEsbuild(options, { + }); + await pluginContainer.buildStarted(); + const esbuildPlugins = [ +- format === "cjs" && nodeProtocolPlugin(), + { + name: "modify-options", + setup(build2) { \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be38ff2dc7..efcc3e3b75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,9 @@ lockfileVersion: 5.4 patchedDependencies: + tsup@8.0.1: + hash: a5ztaafw5l4qfghy2hjjuynb34 + path: patches/tsup@8.0.1.patch '@changesets/assemble-release-plan@5.2.4': hash: 3wuhjtl4hjck4itk3w32z4cd5u path: patches/@changesets__assemble-release-plan@5.2.4.patch @@ -406,9 +409,16 @@ importers: config-packages/tsup: specifiers: - tsup: 7.1.x + '@types/node': '18' + esbuild: ^0.19.2 + tsup: ^8.0.1 + typescript: ^5.3.0 + dependencies: + esbuild: 0.19.2 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 devDependencies: - tsup: 7.1.0 + '@types/node': 18.17.1 + typescript: 5.3.2 docs: specifiers: {} @@ -418,11 +428,12 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 16.x airtable: ^0.12.1 rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit @@ -431,10 +442,11 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/github: specifiers: @@ -446,10 +458,12 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': '18' octokit: ^2.0.14 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@octokit/request': 6.2.5 @@ -463,9 +477,11 @@ importers: '@octokit/types': 9.2.3 '@octokit/webhooks-types': 6.10.0 '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.14.0 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/linear: specifiers: @@ -473,10 +489,11 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 16.x rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@linear/sdk': 8.0.0 @@ -485,37 +502,40 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/openai: specifiers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/jest': ^29.5.3 '@types/node': '18' jest: ^29.6.2 openai: ^4.16.1 rimraf: ^3.0.2 ts-jest: ^29.1.1 - tsup: ^6.5.0 - typescript: ^4.9.4 + tsup: ^8.0.1 + typescript: ^5.3.0 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk openai: 4.20.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/jest': 29.5.3 '@types/node': 18.15.13 jest: 29.6.2_@types+node@18.15.13 rimraf: 3.0.2 - ts-jest: 29.1.1_xlkreayjyan5lfqjb5gzdqf3my - tsup: 6.6.3_typescript@4.9.5 - typescript: 4.9.5 + ts-jest: 29.1.1_3tyr5rkhps22cjyuxtwz6gzoky + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/plain: specifiers: @@ -523,29 +543,34 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': '18' rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 + typescript: ^5.3.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 + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.15.13 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/replicate: specifiers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 16.x replicate: ^0.18.1 rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit @@ -554,29 +579,34 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/resend: specifiers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': '18' resend: ^2.0.0 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 + typescript: ^5.3.0 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk resend: 2.0.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.15.13 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/sendgrid: specifiers: @@ -584,20 +614,22 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 16.x rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 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 + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/shopify: specifiers: @@ -605,10 +637,11 @@ importers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 16.x rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@shopify/shopify-api': 8.0.2 @@ -617,19 +650,22 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/slack: specifiers: '@slack/web-api': ^6.8.1 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': '18' rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@slack/web-api': 6.8.1 @@ -637,20 +673,23 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.15.13 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/stripe: specifiers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 + '@trigger.dev/tsup': workspace:* '@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 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit @@ -658,46 +697,50 @@ importers: stripe: 12.14.0 zod: 3.22.3 devDependencies: + '@trigger.dev/tsup': link:../../config-packages/tsup '@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 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/supabase: specifiers: '@supabase/supabase-js': ^2.26.0 - '@trigger.dev/integration-kit': workspace:^2.2.11 - '@trigger.dev/sdk': workspace:^2.2.11 + '@trigger.dev/integration-kit': workspace:^2.2.10 + '@trigger.dev/sdk': workspace:^2.2.10 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': 18.x rimraf: ^3.0.2 - supabase-management-js: ^0.1.4 - tsup: 7.1.x - typescript: 4.9.4 + supabase-management-js: ^1.0.0 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 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 + supabase-management-js: 1.0.0 zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.15.13 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 integrations/typeform: specifiers: '@trigger.dev/integration-kit': workspace:^2.2.11 '@trigger.dev/sdk': workspace:^2.2.11 + '@trigger.dev/tsup': workspace:* '@typeform/api-client': ^1.8.0 '@types/node': 16.x rimraf: ^3.0.2 - tsup: 7.1.x - typescript: 4.9.4 + tsup: 8.0.1 + typescript: ^5.3.0 zod: 3.22.3 dependencies: '@trigger.dev/integration-kit': link:../../packages/integration-kit @@ -705,10 +748,11 @@ importers: '@typeform/api-client': 1.8.0 zod: 3.22.3 devDependencies: + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 16.18.11 rimraf: 3.0.2 - tsup: 7.1.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/astro: specifiers: @@ -823,13 +867,14 @@ importers: packages/core: specifiers: '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/jest': ^29.5.3 '@types/node': '16' jest: ^29.6.2 rimraf: ^3.0.2 ts-jest: ^29.1.1 - tsup: ^7.1.0 - typescript: ^4.9.4 + tsup: ^8.0.1 + typescript: ^5.3.0 ulidx: ^2.2.1 zod: 3.22.3 zod-error: 1.5.0 @@ -839,33 +884,36 @@ importers: zod-error: 1.5.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/jest': 29.5.3 '@types/node': 16.18.11 jest: 29.6.2_@types+node@16.18.11 rimraf: 3.0.2 - ts-jest: 29.1.1_xlkreayjyan5lfqjb5gzdqf3my - tsup: 7.1.0_typescript@4.9.5 - typescript: 4.9.5 + ts-jest: 29.1.1_3tyr5rkhps22cjyuxtwz6gzoky + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/core-backend: specifiers: '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/jest': ^29.5.3 '@types/node': '18' jest: ^29.6.2 rimraf: ^3.0.2 ts-jest: ^29.1.1 - tsup: ^7.1.0 - typescript: ^5.1.0 + tsup: ^8.0.1 + typescript: ^5.3.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/jest': 29.5.3 '@types/node': 18.17.1 jest: 29.6.2_@types+node@18.17.1 rimraf: 3.0.2 - ts-jest: 29.1.1_uvjn2wawyirmlmi655a42v3ske - tsup: 7.2.0_typescript@5.2.2 - typescript: 5.2.2 + ts-jest: 29.1.1_3tyr5rkhps22cjyuxtwz6gzoky + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/database: specifiers: @@ -948,47 +996,69 @@ importers: specifiers: '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/express': ^4.17.13 debug: ^4.3.4 express: ^4.18.2 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 tsx: ^3.12.1 + typescript: ^5.3.0 dependencies: debug: 4.3.4 express: 4.18.2 devDependencies: '@trigger.dev/sdk': link:../trigger-sdk '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/express': 4.17.15 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 tsx: 3.12.2 + typescript: 5.3.2 + + packages/hono: + specifiers: + '@trigger.dev/sdk': workspace:* + '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* + hono: 3.10.3 + rimraf: ^3.0.2 + tsup: ^8.0.1 + typescript: ^5.3.0 + devDependencies: + '@trigger.dev/sdk': link:../trigger-sdk + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup + hono: 3.10.3 + rimraf: 3.0.2 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/integration-kit: specifiers: '@trigger.dev/core': workspace:* '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/node': '18' '@types/uuid': ^9.0.0 rimraf: ^3.0.2 - tsup: ^6.5.0 - tsx: ^3.12.1 - typescript: ^4.8.4 + tsup: ^8.0.1 + typescript: ^5.3.0 uuid: ^9.0.0 dependencies: '@trigger.dev/core': link:../core uuid: 9.0.0 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/node': 18.15.13 '@types/uuid': 9.0.0 rimraf: 3.0.2 - tsup: 6.6.3_typescript@4.9.5 - tsx: 3.12.2 - typescript: 4.9.5 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/nestjs: specifiers: @@ -996,13 +1066,15 @@ importers: '@remix-run/web-fetch': ^4.3.5 '@trigger.dev/sdk': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/express': ^4.17.13 debug: ^4.3.4 fastify: ^4.23.2 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 tsx: ^3.12.1 + typescript: ^5.3.0 dependencies: '@nestjs/common': 10.2.7 '@remix-run/web-fetch': 4.3.6 @@ -1010,16 +1082,19 @@ importers: devDependencies: '@trigger.dev/sdk': link:../trigger-sdk '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/express': 4.17.15 fastify: 4.23.2 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 tsx: 3.12.2 + typescript: 5.3.2 packages/nextjs: specifiers: '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/ws': ^8.5.3 debug: ^4.3.4 @@ -1027,22 +1102,23 @@ importers: react: ^18.2.0 react-dom: ^18.2.0 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 tsx: ^3.12.1 - typescript: ^4.8.4 + typescript: ^5.3.0 dependencies: debug: 4.3.4 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/ws': 8.5.4 next: 14.0.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 rimraf: 3.0.2 - tsup: 6.6.3_typescript@4.9.5 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 tsx: 3.12.2 - typescript: 4.9.5 + typescript: 5.3.2 packages/react: specifiers: @@ -1081,43 +1157,49 @@ importers: specifiers: '@remix-run/server-runtime': ^2.0.0 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/ws': ^8.5.3 debug: ^4.3.4 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 tsx: ^3.12.1 - typescript: ^4.8.4 + typescript: ^5.3.0 dependencies: debug: 4.3.4 devDependencies: - '@remix-run/server-runtime': 2.0.1_typescript@4.9.5 + '@remix-run/server-runtime': 2.0.1_typescript@5.3.2 '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/ws': 8.5.4 rimraf: 3.0.2 - tsup: 6.6.3_typescript@4.9.5 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 tsx: 3.12.2 - typescript: 4.9.5 + typescript: 5.3.2 packages/sveltekit: specifiers: '@sveltejs/kit': ^1.20.4 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/ws': ^8.5.3 debug: ^4.3.4 rimraf: ^3.0.2 - tsup: ^6.5.0 + tsup: 8.0.1 + typescript: ^5.3.0 dependencies: debug: 4.3.4 devDependencies: '@sveltejs/kit': 1.25.1 '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/ws': 8.5.4 rimraf: 3.0.2 - tsup: 6.6.3 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/testing: specifiers: @@ -1125,8 +1207,9 @@ importers: '@trigger.dev/sdk': workspace:* '@trigger.dev/stripe': workspace:* '@trigger.dev/tsconfig': workspace:* - tsup: ^7.2.0 - typescript: ^5.2.2 + '@trigger.dev/tsup': workspace:* + tsup: 8.0.1 + typescript: ^5.3.0 vitest: ^0.34.3 zod: 3.22.3 dependencies: @@ -1137,21 +1220,22 @@ importers: 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 + '@trigger.dev/tsup': link:../../config-packages/tsup + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 + typescript: 5.3.2 packages/trigger-sdk: specifiers: '@trigger.dev/core': workspace:^2.2.11 '@trigger.dev/core-backend': workspace:^2.2.11 '@trigger.dev/tsconfig': workspace:* + '@trigger.dev/tsup': workspace:* '@types/debug': ^4.1.7 '@types/node': '18' '@types/slug': ^5.0.3 '@types/uuid': ^9.0.0 '@types/ws': ^8.5.3 chalk: ^5.2.0 - colorette: ^2.0.20 cronstrue: ^2.21.0 debug: ^4.3.4 encoding: ^0.1.13 @@ -1162,10 +1246,9 @@ importers: rimraf: ^3.0.2 slug: ^6.0.0 terminal-link: ^3.0.0 - tsup: ^6.5.0 - tsx: ^3.12.1 + tsup: ^8.0.1 typed-emitter: ^2.1.0 - typescript: ^4.8.4 + typescript: ^5.3.0 ulid: ^2.3.0 uuid: ^9.0.0 ws: ^8.11.0 @@ -1174,7 +1257,6 @@ importers: '@trigger.dev/core': link:../core '@trigger.dev/core-backend': link:../core-backend chalk: 5.2.0 - colorette: 2.0.20 cronstrue: 2.21.0 debug: 4.3.4 evt: 2.4.13 @@ -1189,6 +1271,7 @@ importers: zod: 3.22.3 devDependencies: '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@trigger.dev/tsup': link:../../config-packages/tsup '@types/debug': 4.1.7 '@types/node': 18.14.0 '@types/slug': 5.0.3 @@ -1196,10 +1279,9 @@ importers: '@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 + tsup: 8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2 typed-emitter: 2.1.0 - typescript: 4.9.5 + typescript: 5.3.2 perf: specifiers: @@ -1263,6 +1345,27 @@ importers: devDependencies: '@trigger.dev/cli': link:../../packages/cli + references/hono-reference: + specifiers: + '@hono/node-server': ^1.3.1 + '@trigger.dev/cli': workspace:* + '@trigger.dev/hono': workspace:* + '@trigger.dev/openai': workspace:* + '@trigger.dev/sdk': workspace:* + dotenv: ^16.3.1 + hono: ^3.10.2 + tsx: ^3.12.2 + dependencies: + '@hono/node-server': 1.3.1 + '@trigger.dev/hono': link:../../packages/hono + '@trigger.dev/openai': link:../../integrations/openai + '@trigger.dev/sdk': link:../../packages/trigger-sdk + dotenv: 16.3.1 + hono: 3.10.3 + devDependencies: + '@trigger.dev/cli': link:../../packages/cli + tsx: 3.12.2 + references/job-catalog: specifiers: '@clerk/backend': ^0.29.1 @@ -1613,6 +1716,35 @@ importers: vitest: 0.34.4 zod: 3.22.3 + runtime_tests: + specifiers: + '@cloudflare/workers-types': ^4.20221111.1 + '@hono/node-server': ^1.3.1 + '@trigger.dev/hono': workspace:* + '@trigger.dev/sdk': workspace:* + '@types/node': '18' + '@types/supertest': ^2.0.12 + bun-types: ^1.0.15 + hono: ^3.10.3 + supertest: ^6.3.3 + typescript: ^5.3.0 + vitest: ^0.34.3 + wrangler: ^3.18.0 + dependencies: + '@hono/node-server': 1.3.1 + '@trigger.dev/hono': link:../packages/hono + '@trigger.dev/sdk': link:../packages/trigger-sdk + hono: 3.10.3 + devDependencies: + '@cloudflare/workers-types': 4.20231121.0 + '@types/node': 18.17.1 + '@types/supertest': 2.0.14 + bun-types: 1.0.15 + supertest: 6.3.3 + typescript: 5.3.2 + vitest: 0.34.4 + wrangler: 3.18.0 + packages: /@aashutoshrathi/word-wrap/1.2.6: @@ -2276,13 +2408,6 @@ packages: tslib: 2.6.2 dev: false - /@babel/code-frame/7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.13 - dev: true - /@babel/code-frame/7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -2322,7 +2447,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.13 '@babel/generator': 7.21.5 '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.21.8 '@babel/helper-module-transforms': 7.21.5 @@ -2454,26 +2579,6 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin/7.21.8_@babel+core@7.20.12: - resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.21.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-create-class-features-plugin/7.21.8_@babel+core@7.21.8: resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} engines: {node: '>=6.9.0'} @@ -2514,17 +2619,6 @@ packages: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.12: - resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.2.2 - dev: true - /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.21.8: resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} engines: {node: '>=6.9.0'} @@ -2547,22 +2641,6 @@ packages: 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: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.20.12 - '@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-define-polyfill-provider/0.3.3_@babel+core@7.21.8: resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: @@ -2712,21 +2790,6 @@ packages: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@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-remap-async-to-generator/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} @@ -2790,11 +2853,6 @@ packages: dependencies: '@babel/types': 7.22.17 - /@babel/helper-string-parser/7.21.5: - resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-string-parser/7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} @@ -2863,16 +2921,6 @@ packages: dependencies: '@babel/types': 7.22.17 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@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.21.8: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} @@ -2893,18 +2941,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.20.12 - '@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.20.12 - dev: true - /@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'} @@ -2929,22 +2965,6 @@ packages: '@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: - 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: - '@babel/core': 7.20.12 - '@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.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: true - /@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'} @@ -2977,20 +2997,6 @@ packages: - 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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: true - /@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'} @@ -3019,21 +3025,6 @@ packages: - supports-color dev: true - /@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: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} @@ -3064,18 +3055,6 @@ packages: - 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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - dev: true - /@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'} @@ -3100,18 +3079,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - dev: true - /@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'} @@ -3136,18 +3103,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - dev: true - /@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'} @@ -3172,18 +3127,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - dev: true - /@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'} @@ -3208,18 +3151,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - dev: true - /@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'} @@ -3244,18 +3175,6 @@ packages: '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.17 dev: true - /@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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - dev: true - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} @@ -3280,21 +3199,6 @@ packages: '@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'} - 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: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.20.12 - '@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.20.12 - '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.20.12 - dev: true - /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} @@ -3325,18 +3229,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - dev: true - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} @@ -3361,19 +3253,6 @@ packages: '@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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - dev: true - /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} @@ -3400,20 +3279,6 @@ packages: '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.17 dev: true - /@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: - '@babel/core': 7.20.12 - '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} @@ -3442,22 +3307,6 @@ packages: - 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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: true - /@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'} @@ -3490,18 +3339,6 @@ packages: - 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'} - 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: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} @@ -3526,15 +3363,6 @@ packages: '@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: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.8: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -3562,15 +3390,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.8: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -3589,16 +3408,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - 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-syntax-class-static-block/7.14.5_@babel+core@7.21.8: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} @@ -3629,15 +3438,6 @@ packages: '@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: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -3656,15 +3456,6 @@ packages: '@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: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -3702,16 +3493,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12: - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} - 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-syntax-import-assertions/7.20.0_@babel+core@7.21.8: resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} @@ -3732,15 +3513,6 @@ packages: '@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: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.21.8: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -3759,15 +3531,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -3786,23 +3549,23 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} 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-syntax-jsx/7.18.6_@babel+core@7.21.8: + /@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.21.8 + '@babel/core': 7.22.17 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -3824,15 +3587,6 @@ packages: '@babel/core': 7.22.17 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.8: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -3851,15 +3605,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: @@ -3878,15 +3623,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.8: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -3905,15 +3641,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -3932,15 +3659,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -3959,15 +3677,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.8: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -3986,16 +3695,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - 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-syntax-private-property-in-object/7.14.5_@babel+core@7.21.8: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} @@ -4016,16 +3715,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.8: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -4056,16 +3745,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions/7.21.5_@babel+core@7.20.12: - resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} - 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-arrow-functions/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} engines: {node: '>=6.9.0'} @@ -4086,20 +3765,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@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.20.12 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} @@ -4128,16 +3793,6 @@ packages: - 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'} - 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-block-scoped-functions/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} @@ -4158,16 +3813,6 @@ packages: '@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'} - 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-block-scoping/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} engines: {node: '>=6.9.0'} @@ -4188,26 +3833,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@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-classes/7.21.0_@babel+core@7.21.8: resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} engines: {node: '>=6.9.0'} @@ -4248,17 +3873,6 @@ packages: - 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/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'} @@ -4281,16 +3895,6 @@ packages: '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring/7.21.3_@babel+core@7.20.12: - resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} - 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-destructuring/7.21.3_@babel+core@7.21.8: resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} engines: {node: '>=6.9.0'} @@ -4311,17 +3915,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} @@ -4344,16 +3937,6 @@ packages: '@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'} - 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-duplicate-keys/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} @@ -4374,17 +3957,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} @@ -4428,16 +4000,6 @@ packages: '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.22.17 dev: true - /@babel/plugin-transform-for-of/7.21.5_@babel+core@7.20.12: - resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} - 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-for-of/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} engines: {node: '>=6.9.0'} @@ -4458,18 +4020,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@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-function-name/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} @@ -4494,16 +4044,6 @@ packages: '@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'} - 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-literals/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} @@ -4524,16 +4064,6 @@ packages: '@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'} - 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-member-expression-literals/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} @@ -4554,17 +4084,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.22.17_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.21.8: resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} @@ -4587,18 +4106,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.22.17_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - /@babel/plugin-transform-modules-commonjs/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} engines: {node: '>=6.9.0'} @@ -4623,19 +4130,6 @@ packages: '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12: - resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.17_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.15 - dev: true - /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.21.8: resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} engines: {node: '>=6.9.0'} @@ -4662,17 +4156,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-module-transforms': 7.22.17_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} @@ -4695,17 +4178,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.21.8: resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} @@ -4728,16 +4200,6 @@ packages: '@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'} - 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-new-target/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} @@ -4758,19 +4220,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.21.5 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} @@ -4797,16 +4246,6 @@ packages: - 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'} - 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-parameters/7.21.3_@babel+core@7.21.8: resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} engines: {node: '>=6.9.0'} @@ -4827,16 +4266,6 @@ packages: '@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'} - 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-property-literals/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} @@ -4895,31 +4324,31 @@ packages: '@babel/plugin-transform-react-jsx': 7.22.15_@babel+core@7.22.17 dev: true - /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.12: + /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} 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-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.20.12 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.21.8 '@babel/types': 7.20.7 dev: true - /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.21.8: + /@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.21.8 + '@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.21.8 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.22.17 '@babel/types': 7.20.7 dev: true @@ -4970,17 +4399,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.1 - dev: true - /@babel/plugin-transform-regenerator/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} engines: {node: '>=6.9.0'} @@ -5003,16 +4421,6 @@ packages: 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'} - 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-reserved-words/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} @@ -5033,16 +4441,6 @@ packages: '@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'} - 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-shorthand-properties/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} @@ -5063,17 +4461,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: true - /@babel/plugin-transform-spread/7.20.7_@babel+core@7.21.8: resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} @@ -5096,16 +4483,6 @@ packages: '@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'} - 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-sticky-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} @@ -5126,16 +4503,6 @@ packages: '@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'} @@ -5156,16 +4523,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - 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-typeof-symbol/7.18.9_@babel+core@7.21.8: resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} @@ -5201,16 +4558,6 @@ packages: - supports-color dev: true - /@babel/plugin-transform-unicode-escapes/7.21.5_@babel+core@7.20.12: - 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.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-unicode-escapes/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} engines: {node: '>=6.9.0'} @@ -5231,17 +4578,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.8: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} @@ -5264,93 +4600,6 @@ packages: '@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'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.9 - '@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/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 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - '@babel/plugin-transform-arrow-functions': 7.21.5_@babel+core@7.20.12 - '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.20.12 - '@babel/plugin-transform-computed-properties': 7.21.5_@babel+core@7.20.12 - '@babel/plugin-transform-destructuring': 7.21.3_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-for-of': 7.21.5_@babel+core@7.20.12 - '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12 - '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.20.12 - '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12 - '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12 - '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-parameters': 7.21.3_@babel+core@7.20.12 - '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-regenerator': 7.21.5_@babel+core@7.20.12 - '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 - '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 - '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12 - '@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-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 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-env/7.21.5_@babel+core@7.21.8: resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} engines: {node: '>=6.9.0'} @@ -5548,19 +4797,6 @@ packages: '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.22.17 dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.20.12: - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 - '@babel/types': 7.22.17 - esutils: 2.0.3 - dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.21.8: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: @@ -5723,7 +4959,7 @@ packages: resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.21.5 + '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 dev: true @@ -6240,15 +5476,6 @@ packages: dev: false optional: true - /@esbuild/android-arm/0.17.10: - resolution: {integrity: sha512-7YEBfZ5lSem9Tqpsz+tjbdsEshlO9j/REJrfv4DXgKTt1+/MHqGwbtlyxQuaSlMeUZLxUKBaX8wdzlTfHkmnLw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm/0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -6301,15 +5528,6 @@ packages: dev: false optional: true - /@esbuild/android-arm64/0.17.10: - resolution: {integrity: sha512-ht1P9CmvrPF5yKDtyC+z43RczVs4rrHpRqrmIuoSvSdn44Fs1n6DGlpZKdK6rM83pFLbVaSUwle8IN+TPmkv7g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64/0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -6362,15 +5580,6 @@ packages: dev: false optional: true - /@esbuild/android-x64/0.17.10: - resolution: {integrity: sha512-CYzrm+hTiY5QICji64aJ/xKdN70IK8XZ6iiyq0tZkd3tfnwwSWTYH1t3m6zyaaBxkuj40kxgMyj1km/NqdjQZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64/0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -6423,15 +5632,6 @@ packages: dev: false optional: true - /@esbuild/darwin-arm64/0.17.10: - resolution: {integrity: sha512-3HaGIowI+nMZlopqyW6+jxYr01KvNaLB5znXfbyyjuo4lE0VZfvFGcguIJapQeQMS4cX/NEispwOekJt3gr5Dg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64/0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -6484,15 +5684,6 @@ packages: dev: false optional: true - /@esbuild/darwin-x64/0.17.10: - resolution: {integrity: sha512-J4MJzGchuCRG5n+B4EHpAMoJmBeAE1L3wGYDIN5oWNqX0tEr7VKOzw0ymSwpoeSpdCa030lagGUfnfhS7OvzrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64/0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -6545,15 +5736,6 @@ packages: dev: false optional: true - /@esbuild/freebsd-arm64/0.17.10: - resolution: {integrity: sha512-ZkX40Z7qCbugeK4U5/gbzna/UQkM9d9LNV+Fro8r7HA7sRof5Rwxc46SsqeMvB5ZaR0b1/ITQ/8Y1NmV2F0fXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64/0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -6606,15 +5788,6 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64/0.17.10: - resolution: {integrity: sha512-0m0YX1IWSLG9hWh7tZa3kdAugFbZFFx9XrvfpaCMMvrswSTvUZypp0NFKriUurHpBA3xsHVE9Qb/0u2Bbi/otg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64/0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -6667,15 +5840,6 @@ packages: dev: false optional: true - /@esbuild/linux-arm/0.17.10: - resolution: {integrity: sha512-whRdrrl0X+9D6o5f0sTZtDM9s86Xt4wk1bf7ltx6iQqrIIOH+sre1yjpcCdrVXntQPCNw/G+XqsD4HuxeS+2QA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm/0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -6728,15 +5892,6 @@ packages: dev: false optional: true - /@esbuild/linux-arm64/0.17.10: - resolution: {integrity: sha512-g1EZJR1/c+MmCgVwpdZdKi4QAJ8DCLP5uTgLWSAVd9wlqk9GMscaNMEViG3aE1wS+cNMzXXgdWiW/VX4J+5nTA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64/0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -6789,15 +5944,6 @@ packages: dev: false optional: true - /@esbuild/linux-ia32/0.17.10: - resolution: {integrity: sha512-1vKYCjfv/bEwxngHERp7huYfJ4jJzldfxyfaF7hc3216xiDA62xbXJfRlradiMhGZbdNLj2WA1YwYFzs9IWNPw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32/0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -6859,15 +6005,6 @@ packages: dev: false optional: true - /@esbuild/linux-loong64/0.17.10: - resolution: {integrity: sha512-mvwAr75q3Fgc/qz3K6sya3gBmJIYZCgcJ0s7XshpoqIAIBszzfXsqhpRrRdVFAyV1G9VUjj7VopL2HnAS8aHFA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64/0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -6920,15 +6057,6 @@ packages: dev: false optional: true - /@esbuild/linux-mips64el/0.17.10: - resolution: {integrity: sha512-XilKPgM2u1zR1YuvCsFQWl9Fc35BqSqktooumOY2zj7CSn5czJn279j9TE1JEqSqz88izJo7yE4x3LSf7oxHzg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el/0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -6981,15 +6109,6 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64/0.17.10: - resolution: {integrity: sha512-kM4Rmh9l670SwjlGkIe7pYWezk8uxKHX4Lnn5jBZYBNlWpKMBCVfpAgAJqp5doLobhzF3l64VZVrmGeZ8+uKmQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64/0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -7042,15 +6161,6 @@ packages: dev: false optional: true - /@esbuild/linux-riscv64/0.17.10: - resolution: {integrity: sha512-r1m9ZMNJBtOvYYGQVXKy+WvWd0BPvSxMsVq8Hp4GzdMBQvfZRvRr5TtX/1RdN6Va8JMVQGpxqde3O+e8+khNJQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64/0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -7103,15 +6213,6 @@ packages: dev: false optional: true - /@esbuild/linux-s390x/0.17.10: - resolution: {integrity: sha512-LsY7QvOLPw9WRJ+fU5pNB3qrSfA00u32ND5JVDrn/xG5hIQo3kvTxSlWFRP0NJ0+n6HmhPGG0Q4jtQsb6PFoyg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x/0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -7164,15 +6265,6 @@ packages: dev: false optional: true - /@esbuild/linux-x64/0.17.10: - resolution: {integrity: sha512-zJUfJLebCYzBdIz/Z9vqwFjIA7iSlLCFvVi7glMgnu2MK7XYigwsonXshy9wP9S7szF+nmwrelNaP3WGanstEg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64/0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -7225,15 +6317,6 @@ packages: dev: false optional: true - /@esbuild/netbsd-x64/0.17.10: - resolution: {integrity: sha512-lOMkailn4Ok9Vbp/q7uJfgicpDTbZFlXlnKT2DqC8uBijmm5oGtXAJy2ZZVo5hX7IOVXikV9LpCMj2U8cTguWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64/0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -7286,15 +6369,6 @@ packages: dev: false optional: true - /@esbuild/openbsd-x64/0.17.10: - resolution: {integrity: sha512-/VE0Kx6y7eekqZ+ZLU4AjMlB80ov9tEz4H067Y0STwnGOYL8CsNg4J+cCmBznk1tMpxMoUOf0AbWlb1d2Pkbig==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64/0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -7347,15 +6421,6 @@ packages: dev: false optional: true - /@esbuild/sunos-x64/0.17.10: - resolution: {integrity: sha512-ERNO0838OUm8HfUjjsEs71cLjLMu/xt6bhOlxcJ0/1MG3hNqCmbWaS+w/8nFLa0DDjbwZQuGKVtCUJliLmbVgg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64/0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -7408,15 +6473,6 @@ packages: dev: false optional: true - /@esbuild/win32-arm64/0.17.10: - resolution: {integrity: sha512-fXv+L+Bw2AeK+XJHwDAQ9m3NRlNemG6Z6ijLwJAAVdu4cyoFbBWbEtyZzDeL+rpG2lWI51cXeMt70HA8g2MqIg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64/0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -7469,15 +6525,6 @@ packages: dev: false optional: true - /@esbuild/win32-ia32/0.17.10: - resolution: {integrity: sha512-3s+HADrOdCdGOi5lnh5DMQEzgbsFsd4w57L/eLKKjMnN0CN4AIEP0DCP3F3N14xnxh3ruNc32A0Na9zYe1Z/AQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32/0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -7530,15 +6577,6 @@ packages: dev: false optional: true - /@esbuild/win32-x64/0.17.10: - resolution: {integrity: sha512-oP+zFUjYNaMNmjTwlFtWep85hvwUu19cZklB3QsBOcZSs6y7hmH4LNCJ7075bsqzYaNvZFXJlAVaQ2ApITDXtw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64/0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -7896,6 +6934,11 @@ packages: react-dom: 18.2.0_react@18.2.0 dev: false + /@hono/node-server/1.3.1: + resolution: {integrity: sha512-eQBCDbH1Vv/TiYXNP8aGfJTuXi9xGhEd/EZg9u6dhr7zC5/WKKztcBmbrOTtixVBvvV6bfcay6KEginwiqHyXg==} + engines: {node: '>=18.14.1'} + dev: false + /@humanwhocodes/config-array/0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} @@ -8137,15 +7180,15 @@ packages: resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.21.8 + '@babel/core': 7.22.17 '@jest/types': 29.6.1 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 + jest-haste-map: 29.6.2 jest-regex-util: 29.4.3 jest-util: 29.6.2 micromatch: 4.0.5 @@ -8233,20 +7276,9 @@ packages: '@jridgewell/trace-mapping': 0.3.19 dev: true - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - /@jridgewell/sourcemap-codec/1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - /@jridgewell/trace-mapping/0.3.19: resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: @@ -11810,7 +10842,7 @@ packages: set-cookie-parser: 2.6.0 source-map: 0.7.4 - /@remix-run/server-runtime/2.0.1_typescript@4.9.5: + /@remix-run/server-runtime/2.0.1_typescript@5.3.2: resolution: {integrity: sha512-xCW2aw9EILx7F3orEHN2fcpEkNzZTRU8VzP7gS9pmHP45qteFqsY5Qg2/dnF17royWmeeBNhnXaJOgb76W1KEA==} engines: {node: '>=18.0.0'} peerDependencies: @@ -11826,7 +10858,7 @@ packages: set-cookie-parser: 2.5.1 source-map: 0.7.4 type-fest: 4.3.1 - typescript: 4.9.5 + typescript: 5.3.2 dev: true /@remix-run/server-runtime/2.1.0_typescript@5.2.2: @@ -11951,6 +10983,90 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi/4.6.1: + resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64/4.6.1: + resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64/4.6.1: + resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64/4.6.1: + resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf/4.6.1: + resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu/4.6.1: + resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl/4.6.1: + resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu/4.6.1: + resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl/4.6.1: + resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc/4.6.1: + resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc/4.6.1: + resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc/4.6.1: + resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@rushstack/eslint-patch/1.2.0: resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} @@ -11982,7 +11098,7 @@ packages: resolution: {integrity: sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==} engines: {node: '>= 6.0.0'} dependencies: - deepmerge: 4.2.2 + deepmerge: 4.3.1 dev: false /@sendgrid/mail/7.7.0: @@ -12604,9 +11720,9 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.20.12 - '@jest/transform': 29.5.0 + '@babel/core': 7.22.17 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.22.17 + '@jest/transform': 29.6.2 '@mdx-js/react': 2.3.0_react@18.2.0 '@storybook/blocks': 7.0.9_biqbaboplfbrettd7655fr4n2y '@storybook/client-logger': 7.0.9 @@ -13075,8 +12191,8 @@ packages: resolution: {integrity: sha512-x1UkqSx0kVCvt6V+QV94CivnvWWBPmi4503nB7dtGH6VBh469oWZrFA2gYzH0yl+W3IAPRmgEMTVszLxguBo/g==} hasBin: true dependencies: - '@babel/core': 7.20.12 - '@babel/preset-env': 7.21.5_@babel+core@7.20.12 + '@babel/core': 7.22.17 + '@babel/preset-env': 7.21.5_@babel+core@7.22.17 '@ndelangen/get-tarball': 3.0.7 '@storybook/codemod': 7.0.9 '@storybook/core-common': 7.0.9 @@ -13236,8 +12352,8 @@ packages: '@types/node': 16.18.11 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 - esbuild: 0.17.10 - esbuild-register: 3.4.2_esbuild@0.17.10 + esbuild: 0.17.19 + esbuild-register: 3.4.2_esbuild@0.17.19 file-system-cache: 2.1.1 find-up: 5.0.0 fs-extra: 11.1.0 @@ -16989,19 +16105,6 @@ packages: resolution: {integrity: sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw==} dev: true - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: - 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.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.21.8: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -17028,18 +16131,6 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - core-js-compat: 3.27.1 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.21.8: resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: @@ -17064,17 +16155,6 @@ packages: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.8: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: @@ -17498,35 +16578,38 @@ packages: dependencies: semver: 7.5.4 - /bundle-require/3.1.2_esbuild@0.15.18: - resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} + /bun-types/1.0.15: + resolution: {integrity: sha512-XkEvWLV1JIhcVIpf2Lu6FXnZUxRUkQVJmgY+VT7os6Tk5X1nkXx11q4Rtu6txsqpDJZfUeZXblnnD59K+6wsVA==} + dev: true + + /bundle-require/4.0.1_esbuild@0.17.19: + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.13' + esbuild: '>=0.17' dependencies: - esbuild: 0.15.18 + esbuild: 0.17.19 load-tsconfig: 0.2.3 dev: true - /bundle-require/4.0.1_esbuild@0.17.10: + /bundle-require/4.0.1_esbuild@0.18.11: resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.17.10 + esbuild: 0.18.11 load-tsconfig: 0.2.3 dev: true - /bundle-require/4.0.1_esbuild@0.18.11: + /bundle-require/4.0.1_esbuild@0.19.2: resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.18.11 + esbuild: 0.19.2 load-tsconfig: 0.2.3 - dev: true /busboy/1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -18098,6 +17181,7 @@ packages: /colorette/2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -19653,17 +18737,6 @@ packages: resolve.exports: 2.0.2 dev: true - /esbuild-register/3.4.2_esbuild@0.17.10: - resolution: {integrity: sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==} - peerDependencies: - esbuild: '>=0.12 <1' - dependencies: - debug: 4.3.4 - esbuild: 0.17.10 - transitivePeerDependencies: - - supports-color - dev: true - /esbuild-register/3.4.2_esbuild@0.17.19: resolution: {integrity: sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==} peerDependencies: @@ -19801,36 +18874,6 @@ packages: '@esbuild/win32-x64': 0.16.4 dev: false - /esbuild/0.17.10: - resolution: {integrity: sha512-n7V3v29IuZy5qgxx25TKJrEm0FHghAlS6QweUcyIgh/U0zYmQcvogWROitrTyZId1mHSkuhhuyEXtI9OXioq7A==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.10 - '@esbuild/android-arm64': 0.17.10 - '@esbuild/android-x64': 0.17.10 - '@esbuild/darwin-arm64': 0.17.10 - '@esbuild/darwin-x64': 0.17.10 - '@esbuild/freebsd-arm64': 0.17.10 - '@esbuild/freebsd-x64': 0.17.10 - '@esbuild/linux-arm': 0.17.10 - '@esbuild/linux-arm64': 0.17.10 - '@esbuild/linux-ia32': 0.17.10 - '@esbuild/linux-loong64': 0.17.10 - '@esbuild/linux-mips64el': 0.17.10 - '@esbuild/linux-ppc64': 0.17.10 - '@esbuild/linux-riscv64': 0.17.10 - '@esbuild/linux-s390x': 0.17.10 - '@esbuild/linux-x64': 0.17.10 - '@esbuild/netbsd-x64': 0.17.10 - '@esbuild/openbsd-x64': 0.17.10 - '@esbuild/sunos-x64': 0.17.10 - '@esbuild/win32-arm64': 0.17.10 - '@esbuild/win32-ia32': 0.17.10 - '@esbuild/win32-x64': 0.17.10 - dev: true - /esbuild/0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -21867,7 +20910,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.1.0 - deepmerge: 4.2.2 + deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 minimatch: 3.1.2 @@ -22817,6 +21860,10 @@ packages: resolution: {integrity: sha512-Rgx+gy0tb2tH4hNzxYi/VK5pL/msaAtaQBIy8XsPHLujdSgo5OPWO6vOdjjB7ufM1l/CI2RLmlQ+L2QZOuHBjw==} dev: false + /hono/3.10.3: + resolution: {integrity: sha512-44YzAp+rydwGWqW+VRivuOWpGWug8zCSy1Gd6gBLAlclIVlPjZAYXfSNqlhSIvd6ZyseM4aP9SDDNmwXceIy+A==} + engines: {node: '>=16.0.0'} + /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -22874,7 +21921,7 @@ packages: engines: {node: '>=14'} dependencies: '@selderee/plugin-htmlparser2': 0.10.0 - deepmerge: 4.2.2 + deepmerge: 4.3.1 dom-serializer: 2.0.0 htmlparser2: 8.0.1 selderee: 0.10.0 @@ -24213,25 +23260,6 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map/29.5.0: - resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.1 - '@types/graceful-fs': 4.1.6 - '@types/node': 20.6.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 29.4.3 - jest-util: 29.6.2 - jest-worker: 29.6.2 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /jest-haste-map/29.6.2: resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -24574,7 +23602,6 @@ packages: /joycon/3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} - dev: true /js-beautify/1.14.7: resolution: {integrity: sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==} @@ -24632,7 +23659,7 @@ packages: '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.22.17 '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.17 '@babel/plugin-transform-modules-commonjs': 7.21.5_@babel+core@7.22.17 - '@babel/preset-env': 7.21.5_@babel+core@7.20.12 + '@babel/preset-env': 7.21.5_@babel+core@7.22.17 '@babel/preset-flow': 7.18.6_@babel+core@7.22.17 '@babel/preset-typescript': 7.21.5_@babel+core@7.22.17 '@babel/register': 7.18.9_@babel+core@7.22.17 @@ -24974,7 +24001,6 @@ packages: /load-tsconfig/0.2.3: resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true /load-yaml-file/0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} @@ -25090,7 +24116,6 @@ packages: /lodash.sortby/4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true /lodash.startcase/4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -25142,6 +24167,7 @@ packages: /loupe/2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 dependencies: get-func-name: 2.0.0 @@ -26092,6 +25118,29 @@ packages: - utf-8-validate dev: true + /miniflare/3.20231030.2: + resolution: {integrity: sha512-+DYdMqWlUaY4wBylIjewNu8OVsPFquYjQkxoSb2jGIMBmlKaef65Hn2Bu8sub5tQzQ8tLO0FRklmD2Upx0HCCQ==} + engines: {node: '>=16.13'} + hasBin: true + dependencies: + acorn: 8.10.0 + acorn-walk: 8.2.0 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + source-map-support: 0.5.21 + stoppable: 1.1.0 + undici: 5.25.4 + workerd: 1.20231030.0 + ws: 8.12.0 + youch: 3.3.3 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /minimal-polyfills/2.2.2: resolution: {integrity: sha512-eEOUq/LH/DbLWihrxUP050Wi7H/N/I2dQT98Ep6SqOpmIbk4sXOI4wqalve66QoZa+6oljbZWU6I6T4dehQGmw==} dev: false @@ -28041,7 +27090,6 @@ packages: dependencies: lilconfig: 2.1.0 yaml: 2.3.1 - dev: true /postcss-load-config/4.0.1_3fojqsmttcn75cbnzsztj3o6qa: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} @@ -29979,6 +29027,25 @@ packages: optionalDependencies: fsevents: 2.3.3 + /rollup/4.6.1: + resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.6.1 + '@rollup/rollup-android-arm64': 4.6.1 + '@rollup/rollup-darwin-arm64': 4.6.1 + '@rollup/rollup-darwin-x64': 4.6.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 + '@rollup/rollup-linux-arm64-gnu': 4.6.1 + '@rollup/rollup-linux-arm64-musl': 4.6.1 + '@rollup/rollup-linux-x64-gnu': 4.6.1 + '@rollup/rollup-linux-x64-musl': 4.6.1 + '@rollup/rollup-win32-arm64-msvc': 4.6.1 + '@rollup/rollup-win32-ia32-msvc': 4.6.1 + '@rollup/rollup-win32-x64-msvc': 4.6.1 + fsevents: 2.3.3 + /rtl-css-js/1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: @@ -30695,7 +29762,6 @@ packages: engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 - dev: true /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} @@ -31168,19 +30234,6 @@ packages: resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} dev: false - /sucrase/3.29.0: - resolution: {integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==} - engines: {node: '>=8'} - hasBin: true - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - /sucrase/3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} @@ -31194,8 +30247,8 @@ packages: pirates: 4.0.5 ts-interface-checker: 0.1.13 - /supabase-management-js/0.1.4: - resolution: {integrity: sha512-yx4LxYrRl4uoXaWLDndJpjiMR+LfYZ7UGWnGP7mXzD31vyTi9XFc0cYBn6luejZuJ/plO5L64pj7rHwM8PlfkA==} + /supabase-management-js/1.0.0: + resolution: {integrity: sha512-CjtUcT1i3lsIyRwS3/HG6BUB8EaJTEdAPP0GQu8dRDi61HvJeBrswCfG/GRxebC0ZZFov+oHqFIWPe1ztyUqYA==} engines: {node: '>=18.0.0'} dependencies: openapi-fetch: 0.6.2 @@ -31273,8 +30326,8 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.1 - svelte-preprocess: 5.0.4_ihwjmfflvgyqta4xkfhaggvtwe - typescript: 5.2.2 + svelte-preprocess: 5.0.4_g4zfjko4hceksg7vzdf5xvnjhe + typescript: 5.3.2 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -31320,7 +30373,7 @@ packages: svelte: 4.2.1 dev: true - /svelte-preprocess/5.0.4_ihwjmfflvgyqta4xkfhaggvtwe: + /svelte-preprocess/5.0.4_g4zfjko4hceksg7vzdf5xvnjhe: resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -31364,7 +30417,7 @@ packages: sorcery: 0.11.0 strip-indent: 3.0.0 svelte: 4.2.1 - typescript: 5.2.2 + typescript: 5.3.2 dev: true /svelte/4.2.1: @@ -31860,7 +30913,6 @@ packages: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.2.0 - dev: true /traverse/0.3.9: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} @@ -31869,7 +30921,6 @@ packages: /tree-kill/1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - dev: true /tree-node-cli/1.6.0: resolution: {integrity: sha512-M8um5Lbl76rWU5aC8oOeEhruiCM29lFCKnwpxrwMjpRicHXJx+bb9Cak11G3zYLrMb6Glsrhnn90rHIzDJrjvg==} @@ -31912,40 +30963,7 @@ packages: /ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-jest/29.1.1_uvjn2wawyirmlmi655a42v3ske: - 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: 29.6.2_@types+node@18.17.1 - jest-util: 29.6.2 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.5.4 - typescript: 5.2.2 - yargs-parser: 21.1.1 - dev: true - - /ts-jest/29.1.1_xlkreayjyan5lfqjb5gzdqf3my: + /ts-jest/29.1.1_3tyr5rkhps22cjyuxtwz6gzoky: resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -31974,7 +30992,7 @@ packages: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.5.4 - typescript: 4.9.5 + typescript: 5.3.2 yargs-parser: 21.1.1 dev: true @@ -32207,77 +31225,6 @@ packages: /tslib/2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup/6.5.0_typescript@4.9.5: - resolution: {integrity: sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==} - engines: {node: '>=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: 3.1.2_esbuild@0.15.18 - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.15.18 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4 - resolve-from: 5.0.0 - rollup: 3.10.0 - source-map: 0.8.0-beta.0 - sucrase: 3.29.0 - tree-kill: 1.2.2 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /tsup/6.6.3: - resolution: {integrity: sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==} - engines: {node: '>=14.18'} - 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.17.10 - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.17.10 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4 - resolve-from: 5.0.0 - rollup: 3.10.0 - source-map: 0.8.0-beta.0 - sucrase: 3.32.0 - tree-kill: 1.2.2 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - /tsup/6.6.3_typescript@4.9.5: resolution: {integrity: sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==} engines: {node: '>=14.18'} @@ -32294,11 +31241,11 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1_esbuild@0.17.10 + bundle-require: 4.0.1_esbuild@0.17.19 cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.17.10 + esbuild: 0.17.19 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 @@ -32314,77 +31261,6 @@ packages: - ts-node dev: true - /tsup/7.1.0: - resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} - 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.1.0_typescript@4.9.4: - resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} - 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 - typescript: 4.9.4 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - /tsup/7.1.0_typescript@4.9.5: resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} engines: {node: '>=16.14'} @@ -32421,15 +31297,18 @@ packages: - ts-node dev: true - /tsup/7.2.0_typescript@5.2.2: - resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} - engines: {node: '>=16.14'} + /tsup/8.0.1_a5ztaafw5l4qfghy2hjjuynb34_typescript@5.3.2: + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} hasBin: true peerDependencies: + '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: '>=4.1.0' + typescript: '>=4.5.0' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true '@swc/core': optional: true postcss: @@ -32437,25 +31316,25 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1_esbuild@0.18.11 + bundle-require: 4.0.1_esbuild@0.19.2 cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.18.11 + esbuild: 0.19.2 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 + rollup: 4.6.1 source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 - typescript: 5.2.2 + typescript: 5.3.2 transitivePeerDependencies: - supports-color - ts-node - dev: true + patched: true /tsutils/3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -32743,6 +31622,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + /typescript/5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true + /ufo/1.3.0: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} @@ -33802,7 +32686,6 @@ packages: /webidl-conversions/4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true /webpack-dev-middleware/5.3.3_webpack@5.88.2: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} @@ -33946,7 +32829,6 @@ packages: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 - dev: true /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -34104,6 +32986,33 @@ packages: - utf-8-validate dev: true + /wrangler/3.18.0: + resolution: {integrity: sha512-3UrmldsD84JDBa7HRZ5ACFr1nH+ZZs+Hth37Iv/mAaW2DiQOGcrevKwn4dofmTQO2qYP01u1vtfVJxLM0mq+1w==} + engines: {node: '>=16.17.0'} + hasBin: true + dependencies: + '@cloudflare/kv-asset-handler': 0.2.0 + '@esbuild-plugins/node-globals-polyfill': 0.2.3_esbuild@0.17.19 + '@esbuild-plugins/node-modules-polyfill': 0.2.2_esbuild@0.17.19 + blake3-wasm: 2.1.5 + chokidar: 3.5.3 + esbuild: 0.17.19 + miniflare: 3.20231030.2 + nanoid: 3.3.6 + path-to-regexp: 6.2.1 + resolve.exports: 2.0.2 + selfsigned: 2.4.1 + source-map: 0.6.1 + source-map-support: 0.5.21 + xxhash-wasm: 1.0.2 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /wrap-ansi/6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ca59865249..544e2c4f42 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,3 +6,4 @@ packages: - "references/*" - "docs" - "perf" + - "runtime_tests" diff --git a/references/hono-reference/.gitignore b/references/hono-reference/.gitignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/references/hono-reference/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/references/hono-reference/README.md b/references/hono-reference/README.md new file mode 100644 index 0000000000..e12b31db70 --- /dev/null +++ b/references/hono-reference/README.md @@ -0,0 +1,8 @@ +``` +npm install +npm run dev +``` + +``` +open http://localhost:3000 +``` diff --git a/references/hono-reference/package.json b/references/hono-reference/package.json new file mode 100644 index 0000000000..d0f5ba543d --- /dev/null +++ b/references/hono-reference/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "dev": "tsx watch src/index.ts", + "dev:trigger": "trigger-cli dev --port 3000 --client-id hono-client" + }, + "dependencies": { + "@hono/node-server": "^1.3.1", + "hono": "^3.10.2", + "@trigger.dev/hono": "workspace:*", + "@trigger.dev/openai": "workspace:*", + "@trigger.dev/sdk": "workspace:*", + "dotenv": "^16.3.1" + }, + "devDependencies": { + "tsx": "^3.12.2", + "@trigger.dev/cli": "workspace:*" + } +} \ No newline at end of file diff --git a/references/hono-reference/src/index.ts b/references/hono-reference/src/index.ts new file mode 100644 index 0000000000..a7c08d7514 --- /dev/null +++ b/references/hono-reference/src/index.ts @@ -0,0 +1,40 @@ +import "dotenv/config"; +import { serve } from "@hono/node-server"; +import { Hono } from "hono"; +import { createMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; + +const client = new TriggerClient({ + id: "hono-client", + apiKey: process.env.TRIGGER_API_KEY!, + apiUrl: process.env.TRIGGER_API_URL!, +}); + +client.defineJob({ + id: "hono-job", + name: "Hono Job", + version: "1.0.0", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => { + await io.logger.info("Hello Hono!", { ctx }); + + await io.wait("1s", 1); + + await io.runTask("hono-task", async () => { + return { + status: "success", + output: "Hello Hono!", + }; + }); + }, +}); + +const app = new Hono(); + +app.use("/api/trigger", createMiddleware(client)); + +app.get("/", (c) => c.text("Hello Hono!")); + +serve(app, (info) => { + console.log(`Listening on port ${info.port}`); +}); diff --git a/references/hono-reference/tsconfig.json b/references/hono-reference/tsconfig.json new file mode 100644 index 0000000000..49228121b8 --- /dev/null +++ b/references/hono-reference/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "strict": true, + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx", + "paths": { + "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], + "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], + "@trigger.dev/hono": ["../../packages/hono/src/index"], + "@trigger.dev/hono/*": ["../../packages/hono/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/openai": ["../../integrations/openai/src/index"], + "@trigger.dev/openai/*": ["../../integrations/openai/src/*"] + } + } +} diff --git a/references/job-catalog/src/openai.ts b/references/job-catalog/src/openai.ts index c2b2c14057..b339f8a69f 100644 --- a/references/job-catalog/src/openai.ts +++ b/references/job-catalog/src/openai.ts @@ -242,7 +242,7 @@ client.defineJob({ }, run: async (payload, io, ctx) => { const assistants = await io.openai.beta.assistants.list("list", { - limit: 10 + limit: 10, }); if (payload.assistantId) { @@ -503,4 +503,35 @@ client.defineJob({ }, }); +client.defineJob({ + id: "openai-files", + name: "OpenAI Files", + version: "0.0.1", + trigger: eventTrigger({ + name: "openai.files", + }), + integrations: { + openai, + }, + run: async (payload, io, ctx) => { + const fileAsString = await io.openai.files.createAndWaitForProcessing("upload-file-as-string", { + purpose: "assistants", + file: "This is a string", + }); + + const fileAsFetch = await io.openai.files.createAndWaitForProcessing("upload-file-as-fetch", { + purpose: "assistants", + file: await fetch("https://trigger.dev"), + }); + + await io.openai.images.edit("dalle-2", { + model: "dall-e-2", + image: + "https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/497142eb-7a51-4262-de1c-da75917cb000/public", + prompt: "Can you make this image look like a painting?", + response_format: "url", + }); + }, +}); + createExpressServer(client); diff --git a/runtime_tests/package.json b/runtime_tests/package.json new file mode 100644 index 0000000000..80fa003236 --- /dev/null +++ b/runtime_tests/package.json @@ -0,0 +1,32 @@ +{ + "name": "runtime_tests", + "version": "0.0.0", + "private": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.3.1", + "@trigger.dev/hono": "workspace:*", + "@trigger.dev/sdk": "workspace:*", + "hono": "^3.10.3" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20221111.1", + "@types/node": "18", + "@types/supertest": "^2.0.12", + "bun-types": "^1.0.15", + "supertest": "^6.3.3", + "typescript": "^5.3.0", + "vitest": "^0.34.3", + "wrangler": "^3.18.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "scripts": { + "test": "pnpm run test:wrangler && pnpm run test:bun && pnpm run test:node && pnpm run test:deno", + "test:wrangler": "vitest --run --config ./tests/wrangler/vitest.config.ts", + "test:bun": "bun test tests/bun", + "test:node": "vitest --run --config ./tests/node/vitest.config.ts", + "test:deno": "deno test --no-check --no-config --allow-read --allow-env tests/deno" + } +} \ No newline at end of file diff --git a/runtime_tests/tests/bun/index.test.ts b/runtime_tests/tests/bun/index.test.ts new file mode 100644 index 0000000000..f84cbd83b6 --- /dev/null +++ b/runtime_tests/tests/bun/index.test.ts @@ -0,0 +1,50 @@ +/// +/// +import { describe, expect, it } from "bun:test"; +import { createMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; +import { Hono } from "hono"; + +function createApp() { + const client = new TriggerClient({ + id: "wrangler-test", + apiKey: "tr_dev_test-api-key", + apiUrl: "http://localhost:3030", + }); + + const app = new Hono(); + + client.defineJob({ + id: "wrangler-job", + name: "Wrangler Job", + version: "1.0.0", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => {}, + }); + + app.use("/api/trigger", createMiddleware(client)); + + return app; +} + +describe("Bun", () => { + const app = createApp(); + + it("Should be indexable at /api/trigger", async () => { + const req = new Request("http://localhost/api/trigger", { + method: "POST", + headers: { + "x-trigger-api-key": "tr_dev_test-api-key", + "x-trigger-action": "INDEX_ENDPOINT", + "x-trigger-version": "2023-11-01", + }, + }); + const res = await app.request(req); + expect(res.status).toBe(200); + + const body: any = await res.json(); + + expect(body.jobs).toHaveLength(1); + expect(body.jobs[0].id).toBe("wrangler-job"); + }); +}); diff --git a/runtime_tests/tests/bun/tsconfig.json b/runtime_tests/tests/bun/tsconfig.json new file mode 100644 index 0000000000..c360873cf3 --- /dev/null +++ b/runtime_tests/tests/bun/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "types": ["bun-types"] + } +} diff --git a/runtime_tests/tests/deno/deps.ts b/runtime_tests/tests/deno/deps.ts new file mode 100644 index 0000000000..b7251a29e7 --- /dev/null +++ b/runtime_tests/tests/deno/deps.ts @@ -0,0 +1 @@ +export { assert, assertEquals, assertMatch } from "https://deno.land/std@0.208.0/assert/mod.ts"; diff --git a/runtime_tests/tests/deno/trigger.test.ts b/runtime_tests/tests/deno/trigger.test.ts new file mode 100644 index 0000000000..e05ed47944 --- /dev/null +++ b/runtime_tests/tests/deno/trigger.test.ts @@ -0,0 +1,49 @@ +import { createMiddleware } from "npm:@trigger.dev/hono@0.0.0-cross-runtime-20231204162532"; +import { + TriggerClient, + invokeTrigger, +} from "npm:@trigger.dev/sdk@0.0.0-cross-runtime-20231204162532"; +import { Hono } from "https://deno.land/x/hono@v3.10.3/mod.ts"; +import { assertEquals } from "./deps.ts"; + +function createApp() { + const client = new TriggerClient({ + id: "wrangler-test", + apiKey: "tr_dev_test-api-key", + apiUrl: "http://localhost:3030", + }); + + const app = new Hono(); + + client.defineJob({ + id: "wrangler-job", + name: "Wrangler Job", + version: "1.0.0", + trigger: invokeTrigger(), + run: async () => {}, + }); + + app.use("/api/trigger", createMiddleware(client)); + + return app; +} + +Deno.test("Deno", async () => { + const app = createApp(); + + const req = new Request("http://localhost/api/trigger", { + method: "POST", + headers: { + "x-trigger-api-key": "tr_dev_test-api-key", + "x-trigger-action": "INDEX_ENDPOINT", + "x-trigger-version": "2023-11-01", + }, + }); + const res = await app.request(req); + assertEquals(res.status, 200); + + const body: any = await res.json(); + + assertEquals(body.jobs.length, 1); + assertEquals(body.jobs[0].id, "wrangler-job"); +}); diff --git a/runtime_tests/tests/node/index.test.ts b/runtime_tests/tests/node/index.test.ts new file mode 100644 index 0000000000..21170f61a7 --- /dev/null +++ b/runtime_tests/tests/node/index.test.ts @@ -0,0 +1,47 @@ +import { createAdaptorServer } from "@hono/node-server"; +import request from "supertest"; +import { createMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; +import { Hono } from "hono"; + +function createApp() { + const client = new TriggerClient({ + id: "wrangler-test", + apiKey: "tr_dev_test-api-key", + apiUrl: "http://localhost:3030", + }); + + const app = new Hono(); + + client.defineJob({ + id: "wrangler-job", + name: "Wrangler Job", + version: "1.0.0", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => {}, + }); + + app.use("/api/trigger", createMiddleware(client)); + + return app; +} + +describe("Node", () => { + const app = createApp(); + const server = createAdaptorServer(app); + + it("Should be indexable at /api/trigger", async () => { + const res = await request(server).post("/api/trigger").set({ + "x-trigger-api-key": "tr_dev_test-api-key", + "x-trigger-action": "INDEX_ENDPOINT", + "x-trigger-version": "2023-11-01", + }); + + expect(res.status).toBe(200); + + const body = JSON.parse(res.text); + + expect(body.jobs).toHaveLength(1); + expect(body.jobs[0].id).toBe("wrangler-job"); + }); +}); diff --git a/runtime_tests/tests/node/vitest.config.ts b/runtime_tests/tests/node/vitest.config.ts new file mode 100644 index 0000000000..f3cf6d2035 --- /dev/null +++ b/runtime_tests/tests/node/vitest.config.ts @@ -0,0 +1,10 @@ +/// +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, + include: ["**/tests/node/**/*.+(ts|tsx|js)"], + exclude: ["**/tests/node/vitest.config.ts"], + }, +}); diff --git a/runtime_tests/tests/wrangler/index.test.ts b/runtime_tests/tests/wrangler/index.test.ts new file mode 100644 index 0000000000..4e3ade111b --- /dev/null +++ b/runtime_tests/tests/wrangler/index.test.ts @@ -0,0 +1,39 @@ +import { unstable_dev } from "wrangler"; +import type { UnstableDevWorker } from "wrangler"; + +describe("Wrangler", () => { + let worker: UnstableDevWorker; + + beforeAll(async () => { + worker = await unstable_dev("./tests/wrangler/index.ts", { + vars: { + TRIGGER_API_KEY: "tr_dev_test-api-key", + TRIGGER_API_URL: "http://localhost:3030", + }, + experimental: { disableExperimentalWarning: true }, + compatibilityFlags: ["nodejs_compat"], + ip: "127.0.0.1", + }); + }); + + afterAll(async () => { + await worker.stop(); + }); + + it("Should be indexable at /api/trigger", async () => { + const res = await worker.fetch("/api/trigger", { + method: "POST", + headers: { + "x-trigger-api-key": "tr_dev_test-api-key", + "x-trigger-action": "INDEX_ENDPOINT", + "x-trigger-version": "2023-11-01", + }, + }); + expect(res.status).toBe(200); + + const body: any = await res.json(); + + expect(body.jobs).toHaveLength(1); + expect(body.jobs[0].id).toBe("wrangler-job"); + }); +}); diff --git a/runtime_tests/tests/wrangler/index.ts b/runtime_tests/tests/wrangler/index.ts new file mode 100644 index 0000000000..ebfe62a4ee --- /dev/null +++ b/runtime_tests/tests/wrangler/index.ts @@ -0,0 +1,30 @@ +import { addMiddleware } from "@trigger.dev/hono"; +import { TriggerClient, invokeTrigger } from "@trigger.dev/sdk"; +import { Hono } from "hono"; + +type Bindings = { + TRIGGER_API_KEY: string; + TRIGGER_API_URL: string; +}; + +const app = new Hono<{ Bindings: Bindings }>(); + +addMiddleware(app, (env) => { + const client = new TriggerClient({ + id: "wrangler-test", + apiKey: env.TRIGGER_API_KEY, + apiUrl: env.TRIGGER_API_URL, + }); + + client.defineJob({ + id: "wrangler-job", + name: "Wrangler Job", + version: "1.0.0", + trigger: invokeTrigger(), + run: async (payload, io, ctx) => {}, + }); + + return client; +}); + +export default app; diff --git a/runtime_tests/tests/wrangler/vitest.config.ts b/runtime_tests/tests/wrangler/vitest.config.ts new file mode 100644 index 0000000000..cd2411ed66 --- /dev/null +++ b/runtime_tests/tests/wrangler/vitest.config.ts @@ -0,0 +1,10 @@ +/// +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, + include: ["**/tests/wrangler/**/(*.)+(test).+(ts|tsx)"], + exclude: ["**/tests/wrangler/vitest.config.ts"], + }, +}); diff --git a/runtime_tests/tsconfig.json b/runtime_tests/tsconfig.json new file mode 100644 index 0000000000..615cc5be5b --- /dev/null +++ b/runtime_tests/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "declaration": true, + "moduleResolution": "Node", + "noEmit": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "allowImportingTsExtensions": true, + "types": ["vitest/globals", "node"] + }, + "include": [ + "tests/**/*.ts", + "tests/**/*.d.ts", + "tests/**/*.mts", + "tests/**/*.test.ts", + "tests/**/*.test.tsx" + ] +} diff --git a/scripts/upgrade-package.mjs b/scripts/upgrade-package.mjs new file mode 100644 index 0000000000..c1245cf9f7 --- /dev/null +++ b/scripts/upgrade-package.mjs @@ -0,0 +1,123 @@ +import { promises as fs } from "fs"; +import { join } from "path"; +import { exec } from "child_process"; +import prettier from "prettier"; + +import prettierConfig from "../prettier.config.js"; + +async function runShellCommand(command, directory) { + return new Promise((resolve, reject) => { + exec(command, { cwd: directory }, (error, stdout, stderr) => { + if (error) { + console.error(`Error: ${error.message}`); + reject(error); + return; + } + if (stderr) { + console.error(`Stderr: ${stderr}`); + reject(stderr); + return; + } + console.log(`Stdout: ${stdout}`); + resolve(stdout); + }); + }); +} + +async function updatePackage(directory) { + // Updating package.json + const packageJsonPath = join(directory, "package.json"); + const packageJson = JSON.parse(await fs.readFile(packageJsonPath, "utf8")); + + // Updating dependencies + packageJson.devDependencies = packageJson.devDependencies || {}; + packageJson.devDependencies["@trigger.dev/tsup"] = "workspace:*"; + packageJson.devDependencies["tsup"] = "8.0.1"; + packageJson.devDependencies["typescript"] = "^5.3.0"; + + // Updating exports, main, types, and module + packageJson.exports = { + ".": { + import: { + types: "./dist/index.d.mts", + default: "./dist/index.mjs", + }, + require: "./dist/index.js", + types: "./dist/index.d.ts", + }, + "./package.json": "./package.json", + }; + packageJson.main = "./dist/index.js"; + packageJson.types = "./dist/index.d.ts"; + packageJson.module = "./dist/index.mjs"; + packageJson.files = ["dist"]; + + await fs.writeFile( + packageJsonPath, + await prettier.format(JSON.stringify(packageJson, null, 2), { + parser: "json", + ...prettierConfig, + }) + ); + + console.log(`✅ Updated package.json for ${packageJson.name}`); + + // Updating tsconfig.json + const tsconfigPath = join(directory, "tsconfig.json"); + const tsconfig = JSON.parse(await fs.readFile(tsconfigPath, "utf8")); + + if (tsconfig.extends === "@trigger.dev/tsconfig/integration.json") { + console.log( + `✅ tsconfig.json for ${packageJson.name} already extends @trigger.dev/tsconfig/integration.json` + ); + } else { + tsconfig.compilerOptions = tsconfig.compilerOptions || {}; + tsconfig.compilerOptions.paths = { + ...tsconfig.compilerOptions.paths, + "@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"], + "@trigger.dev/tsup": ["../../config-packages/tsup/src/index"], + }; + + await fs.writeFile( + tsconfigPath, + await prettier.format(JSON.stringify(tsconfig, null, 2), { + parser: "json", + ...prettierConfig, + }) + ); + + console.log(`✅ Updated tsconfig.json for ${packageJson.name}`); + } + + // Updating tsup.config.ts + const tsupConfigPath = join(directory, "tsup.config.ts"); + const tsupConfigContent = `import { defineConfigPackage } from "@trigger.dev/tsup";\n\nexport default defineConfigPackage;`; + await fs.writeFile( + tsupConfigPath, + await prettier.format(tsupConfigContent, { parser: "typescript", ...prettierConfig }) + ); + + console.log(`✅ Updated tsup.config.ts for ${packageJson.name}`); + + console.log(`✅ Updated package ${packageJson.name}, now running pnpm install and build`); + + await runShellCommand("pnpm install", process.cwd()); + await runShellCommand(`pnpm run build --filter ${packageJson.name}`, process.cwd()); +} + +async function main() { + const packagePath = process.argv[2]; + + if (!packagePath) { + throw new Error("Missing package path"); + } + + console.log(`Updating package ${packagePath}`); + + await updatePackage(packagePath); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +});