diff --git a/apps/webservice/src/app/api/v1/target-providers/[providerId]/set/route.ts b/apps/webservice/src/app/api/v1/target-providers/[providerId]/set/route.ts index d9f96022a..b3ba13a00 100644 --- a/apps/webservice/src/app/api/v1/target-providers/[providerId]/set/route.ts +++ b/apps/webservice/src/app/api/v1/target-providers/[providerId]/set/route.ts @@ -61,7 +61,7 @@ export const PATCH = request() .then(takeFirstOrNull); const provider = query?.target_provider; - if (!provider) + if (provider == null) return NextResponse.json( { error: "Provider not found" }, { status: 404 }, diff --git a/apps/webservice/src/app/api/v1/targets/[targetId]/route.ts b/apps/webservice/src/app/api/v1/targets/[targetId]/route.ts new file mode 100644 index 000000000..c24fe1627 --- /dev/null +++ b/apps/webservice/src/app/api/v1/targets/[targetId]/route.ts @@ -0,0 +1,49 @@ +import { NextResponse } from "next/server"; + +import { eq } from "@ctrlplane/db"; +import * as schema from "@ctrlplane/db/schema"; +import { Permission } from "@ctrlplane/validators/auth"; + +import { authn, authz } from "~/app/api/v1/auth"; +import { request } from "~/app/api/v1/middleware"; + +function transformMetadata( + metadata: Array<{ key: string; value: string }>, +): Record { + return metadata.reduce>((acc, m) => { + acc[m.key] = m.value; + return acc; + }, {}); +} + +export const GET = request() + .use(authn) + .use( + authz(({ can, extra }) => { + return can + .perform(Permission.TargetGet) + .on({ type: "target", id: extra.params.targetId }); + }), + ) + .handle(async ({ db }, { params }: { params: { targetId: string } }) => { + const { targetId } = params; + + const target = await db.query.target.findFirst({ + where: eq(schema.target.id, targetId), + with: { + metadata: true, + variables: true, + provider: true, + }, + }); + + if (!target) + return NextResponse.json({ error: "Target not found" }, { status: 404 }); + + const metadata = transformMetadata(target.metadata); + + return NextResponse.json({ + ...target, + metadata, + }); + }); diff --git a/apps/webservice/src/app/api/v1/targets/[targetId]/set/route.ts b/apps/webservice/src/app/api/v1/targets/[targetId]/set/route.ts new file mode 100644 index 000000000..d64ccf999 --- /dev/null +++ b/apps/webservice/src/app/api/v1/targets/[targetId]/set/route.ts @@ -0,0 +1,48 @@ +import type { z } from "zod"; +import { NextResponse } from "next/server"; + +import { eq } from "@ctrlplane/db"; +import { db } from "@ctrlplane/db/client"; +import * as schema from "@ctrlplane/db/schema"; +import { upsertTargets } from "@ctrlplane/job-dispatch"; +import { Permission } from "@ctrlplane/validators/auth"; + +import { authn, authz } from "~/app/api/v1/auth"; +import { parseBody } from "~/app/api/v1/body-parser"; +import { request } from "~/app/api/v1/middleware"; +import { bodySchema } from "~/app/api/v1/targets/workspaces/[workspaceId]/route"; + +export const PATCH = request() + .use(authn) + .use(parseBody(bodySchema)) + .use( + authz(({ can, extra }) => { + return can + .perform(Permission.TargetUpdate) + .on({ type: "target", id: extra.params.targetId }); + }), + ) + .handle< + { body: z.infer }, + { params: { targetId: string } } + >(async (ctx, { params }) => { + const { body } = ctx; + + console.log(body); + console.log(params.targetId); + + const existingTarget = await db.query.target.findFirst({ + where: eq(schema.target.id, params.targetId), + }); + + if (existingTarget == null) + return NextResponse.json({ error: "Target not found" }, { status: 404 }); + + const targetData = { + ...existingTarget, + ...body.target, + }; + + const target = await upsertTargets(db, [targetData]); + return NextResponse.json(target); + }); diff --git a/apps/webservice/src/app/api/v1/targets/workspaces/[workspaceId]/route.ts b/apps/webservice/src/app/api/v1/targets/workspaces/[workspaceId]/route.ts new file mode 100644 index 000000000..2d6f6f1ee --- /dev/null +++ b/apps/webservice/src/app/api/v1/targets/workspaces/[workspaceId]/route.ts @@ -0,0 +1,61 @@ +import { NextResponse } from "next/server"; +import { z } from "zod"; + +import { db } from "@ctrlplane/db/client"; +import * as schema from "@ctrlplane/db/schema"; +import { upsertTargets } from "@ctrlplane/job-dispatch"; +import { Permission } from "@ctrlplane/validators/auth"; + +import { authn, authz } from "~/app/api/v1/auth"; +import { parseBody } from "~/app/api/v1/body-parser"; +import { request } from "~/app/api/v1/middleware"; + +export const bodySchema = z.object({ + target: schema.createTarget.extend({ + metadata: z.record(z.string()).optional(), + variables: z + .array( + z.object({ + key: z.string(), + value: z.union([z.string(), z.number(), z.boolean(), z.null()]), + sensitive: z.boolean(), + }), + ) + .optional() + .refine( + (vars) => + vars == null || new Set(vars.map((v) => v.key)).size === vars.length, + "Duplicate variable keys are not allowed", + ), + }), +}); + +export const POST = request() + .use(authn) + .use(parseBody(bodySchema)) + .use( + authz(({ can, extra }) => { + return can + .perform(Permission.TargetCreate) + .on({ type: "workspace", id: extra.params.workspaceId }); + }), + ) + .handle< + { body: z.infer }, + { params: { workspaceId: string } } + >(async (ctx, { params }) => { + const { body } = ctx; + + const targetData = { + ...body.target, + workspaceId: params.workspaceId, + variables: body.target.variables?.map((v) => ({ + ...v, + value: v.value ?? null, + })), + }; + + const target = await upsertTargets(db, [targetData]); + + return NextResponse.json(target); + }); diff --git a/github/get-job-inputs/index.js b/github/get-job-inputs/index.js index 8bc890b28..3c728e507 100644 --- a/github/get-job-inputs/index.js +++ b/github/get-job-inputs/index.js @@ -28298,6 +28298,119 @@ function SetTargetProvidersTargetsRequestToJSON(value) { }; } +// src/models/SetTargetRequestTarget.ts +function instanceOfSetTargetRequestTarget(value) { + return true; +} +function SetTargetRequestTargetFromJSON(json) { + return SetTargetRequestTargetFromJSONTyped(json, false); +} +function SetTargetRequestTargetFromJSONTyped(json, ignoreDiscriminator) { + if (json == null) { + return json; + } + return { + name: json["name"] == null ? void 0 : json["name"], + version: json["version"] == null ? void 0 : json["version"], + kind: json["kind"] == null ? void 0 : json["kind"], + identifier: json["identifier"] == null ? void 0 : json["identifier"], + config: json["config"] == null ? void 0 : json["config"], + metadata: json["metadata"] == null ? void 0 : json["metadata"], + variables: json["variables"] == null ? void 0 : json["variables"] + }; +} +function SetTargetRequestTargetToJSON(value) { + if (value == null) { + return value; + } + return { + name: value["name"], + version: value["version"], + kind: value["kind"], + identifier: value["identifier"], + config: value["config"], + metadata: value["metadata"], + variables: value["variables"] + }; +} + +// src/models/SetTargetRequest.ts +function instanceOfSetTargetRequest(value) { + if (!("target" in value) || value["target"] === void 0) return false; + return true; +} +function SetTargetRequestFromJSON(json) { + return SetTargetRequestFromJSONTyped(json, false); +} +function SetTargetRequestFromJSONTyped(json, ignoreDiscriminator) { + if (json == null) { + return json; + } + return { + target: SetTargetRequestTargetFromJSON(json["target"]) + }; +} +function SetTargetRequestToJSON(value) { + if (value == null) { + return value; + } + return { + target: SetTargetRequestTargetToJSON(value["target"]) + }; +} + +// src/models/Target.ts +function instanceOfTarget(value) { + if (!("id" in value) || value["id"] === void 0) return false; + if (!("name" in value) || value["name"] === void 0) return false; + if (!("version" in value) || value["version"] === void 0) return false; + if (!("kind" in value) || value["kind"] === void 0) return false; + if (!("identifier" in value) || value["identifier"] === void 0) + return false; + if (!("workspaceId" in value) || value["workspaceId"] === void 0) + return false; + if (!("config" in value) || value["config"] === void 0) return false; + if (!("metadata" in value) || value["metadata"] === void 0) return false; + return true; +} +function TargetFromJSON(json) { + return TargetFromJSONTyped(json, false); +} +function TargetFromJSONTyped(json, ignoreDiscriminator) { + if (json == null) { + return json; + } + return { + id: json["id"], + name: json["name"], + version: json["version"], + kind: json["kind"], + identifier: json["identifier"], + workspaceId: json["workspaceId"], + config: json["config"], + metadata: json["metadata"], + variables: json["variables"] == null ? void 0 : json["variables"], + provider: json["provider"] == null ? void 0 : json["provider"] + }; +} +function TargetToJSON(value) { + if (value == null) { + return value; + } + return { + id: value["id"], + name: value["name"], + version: value["version"], + kind: value["kind"], + identifier: value["identifier"], + workspaceId: value["workspaceId"], + config: value["config"], + metadata: value["metadata"], + variables: value["variables"], + provider: value["provider"] + }; +} + // src/models/UpdateJob200Response.ts function instanceOfUpdateJob200Response(value) { if (!("id" in value) || value["id"] === void 0) return false; @@ -28625,6 +28738,92 @@ var DefaultApi = class extends BaseAPI { ); return await response.value(); } + /** + * Get a target by ID + */ + async getTargetRaw(requestParameters, initOverrides) { + if (requestParameters["targetId"] == null) { + throw new RequiredError( + "targetId", + 'Required parameter "targetId" was null or undefined when calling getTarget().' + ); + } + const queryParameters = {}; + const headerParameters = {}; + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); + } + const response = await this.request( + { + path: `/v1/targets/{targetId}`.replace( + `{${"targetId"}}`, + encodeURIComponent(String(requestParameters["targetId"])) + ), + method: "GET", + headers: headerParameters, + query: queryParameters + }, + initOverrides + ); + return new JSONApiResponse( + response, + (jsonValue) => TargetFromJSON(jsonValue) + ); + } + /** + * Get a target by ID + */ + async getTarget(requestParameters, initOverrides) { + const response = await this.getTargetRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * Update a target + */ + async setTargetRaw(requestParameters, initOverrides) { + if (requestParameters["targetId"] == null) { + throw new RequiredError( + "targetId", + 'Required parameter "targetId" was null or undefined when calling setTarget().' + ); + } + if (requestParameters["setTargetRequest"] == null) { + throw new RequiredError( + "setTargetRequest", + 'Required parameter "setTargetRequest" was null or undefined when calling setTarget().' + ); + } + const queryParameters = {}; + const headerParameters = {}; + headerParameters["Content-Type"] = "application/json"; + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); + } + const response = await this.request( + { + path: `/v1/targets/{targetId}/set`.replace( + `{${"targetId"}}`, + encodeURIComponent(String(requestParameters["targetId"])) + ), + method: "PATCH", + headers: headerParameters, + query: queryParameters, + body: SetTargetRequestToJSON(requestParameters["setTargetRequest"]) + }, + initOverrides + ); + return new JSONApiResponse( + response, + (jsonValue) => TargetFromJSON(jsonValue) + ); + } + /** + * Update a target + */ + async setTarget(requestParameters, initOverrides) { + const response = await this.setTargetRaw(requestParameters, initOverrides); + return await response.value(); + } /** * Sets the target for a provider. */ @@ -28670,6 +28869,56 @@ var DefaultApi = class extends BaseAPI { async setTargetProvidersTargets(requestParameters, initOverrides) { await this.setTargetProvidersTargetsRaw(requestParameters, initOverrides); } + /** + * Create or update a target in a workspace + */ + async setWorkspaceTargetRaw(requestParameters, initOverrides) { + if (requestParameters["workspaceId"] == null) { + throw new RequiredError( + "workspaceId", + 'Required parameter "workspaceId" was null or undefined when calling setWorkspaceTarget().' + ); + } + if (requestParameters["setTargetRequest"] == null) { + throw new RequiredError( + "setTargetRequest", + 'Required parameter "setTargetRequest" was null or undefined when calling setWorkspaceTarget().' + ); + } + const queryParameters = {}; + const headerParameters = {}; + headerParameters["Content-Type"] = "application/json"; + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); + } + const response = await this.request( + { + path: `/v1/targets/workspaces/{workspaceId}`.replace( + `{${"workspaceId"}}`, + encodeURIComponent(String(requestParameters["workspaceId"])) + ), + method: "POST", + headers: headerParameters, + query: queryParameters, + body: SetTargetRequestToJSON(requestParameters["setTargetRequest"]) + }, + initOverrides + ); + return new JSONApiResponse( + response, + (jsonValue) => TargetFromJSON(jsonValue) + ); + } + /** + * Create or update a target in a workspace + */ + async setWorkspaceTarget(requestParameters, initOverrides) { + const response = await this.setWorkspaceTargetRaw( + requestParameters, + initOverrides + ); + return await response.value(); + } /** * Create resources from a config file */ @@ -28764,12 +29013,6 @@ var DefaultApi = class extends BaseAPI { * Upserts the agent */ async updateJobAgentRaw(requestParameters, initOverrides) { - if (requestParameters["workspace"] == null) { - throw new RequiredError( - "workspace", - 'Required parameter "workspace" was null or undefined when calling updateJobAgent().' - ); - } if (requestParameters["updateJobAgentRequest"] == null) { throw new RequiredError( "updateJobAgentRequest", @@ -28784,10 +29027,7 @@ var DefaultApi = class extends BaseAPI { } const response = await this.request( { - path: `/v1/job-agents/name`.replace( - `{${"workspace"}}`, - encodeURIComponent(String(requestParameters["workspace"])) - ), + path: `/v1/job-agents/name`, method: "PATCH", headers: headerParameters, query: queryParameters, diff --git a/openapi.v1.yaml b/openapi.v1.yaml index 706c6a47d..5db47bdf7 100644 --- a/openapi.v1.yaml +++ b/openapi.v1.yaml @@ -508,11 +508,184 @@ paths: type: string metadata: type: object + /v1/targets/{targetId}: + get: + summary: Get a target by ID + operationId: getTarget + parameters: + - name: targetId + in: path + required: true + schema: + type: string + format: uuid + description: The target ID + responses: + "200": + description: Successfully retrieved target + content: + application/json: + schema: + $ref: "#/components/schemas/Target" + "401": + description: Unauthorized + "403": + description: Permission denied + "404": + description: Target not found + + /v1/targets/{targetId}/set: + patch: + summary: Update a target + operationId: setTarget + parameters: + - name: targetId + in: path + required: true + schema: + type: string + format: uuid + description: The target ID + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + target: + type: object + properties: + name: + type: string + version: + type: string + kind: + type: string + identifier: + type: string + config: + type: object + metadata: + type: object + additionalProperties: + type: string + variables: + type: object + required: + - target + responses: + "200": + description: Successfully updated target + content: + application/json: + schema: + $ref: "#/components/schemas/Target" + "401": + description: Unauthorized + "403": + description: Permission denied + "404": + description: Target not found + + /v1/targets/workspaces/{workspaceId}: + post: + summary: Create or update a target in a workspace + operationId: setWorkspaceTarget + parameters: + - name: workspaceId + in: path + required: true + schema: + type: string + format: uuid + description: The workspace ID + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + target: + type: object + properties: + name: + type: string + version: + type: string + kind: + type: string + identifier: + type: string + config: + type: object + metadata: + type: object + additionalProperties: + type: string + variables: + type: object + required: + - target + responses: + "200": + description: Successfully created or updated target + content: + application/json: + schema: + $ref: "#/components/schemas/Target" + "401": + description: Unauthorized + "403": + description: Permission denied + "404": + description: Workspace not found + components: securitySchemes: apiKey: type: apiKey in: header name: x-api-key + schemas: + Target: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + version: + type: string + kind: + type: string + identifier: + type: string + workspaceId: + type: string + format: uuid + config: + type: object + metadata: + type: object + additionalProperties: + type: string + variables: + type: object + provider: + type: object + nullable: true + required: + - id + - name + - version + - kind + - identifier + - workspaceId + - config + - metadata + security: - apiKey: [] diff --git a/packages/node-sdk/package.json b/packages/node-sdk/package.json index eed4d006f..7c1f8907f 100644 --- a/packages/node-sdk/package.json +++ b/packages/node-sdk/package.json @@ -24,7 +24,7 @@ "@ctrlplane/eslint-config": "workspace:*", "@ctrlplane/prettier-config": "workspace:*", "@ctrlplane/tsconfig": "workspace:*", - "@openapitools/openapi-generator-cli": "^2.13.5", + "@openapitools/openapi-generator-cli": "^2.15.0", "@types/node": "catalog:node20", "eslint": "catalog:", "prettier": "catalog:", diff --git a/packages/node-sdk/src/.openapi-generator/FILES b/packages/node-sdk/src/.openapi-generator/FILES index 91a871bd7..75cd30346 100644 --- a/packages/node-sdk/src/.openapi-generator/FILES +++ b/packages/node-sdk/src/.openapi-generator/FILES @@ -17,6 +17,9 @@ models/GetNextJobs200Response.ts models/GetNextJobs200ResponseJobsInner.ts models/SetTargetProvidersTargetsRequest.ts models/SetTargetProvidersTargetsRequestTargetsInner.ts +models/SetTargetRequest.ts +models/SetTargetRequestTarget.ts +models/Target.ts models/UpdateJob200Response.ts models/UpdateJobAgent200Response.ts models/UpdateJobAgentRequest.ts diff --git a/packages/node-sdk/src/apis/DefaultApi.ts b/packages/node-sdk/src/apis/DefaultApi.ts index b96370c8b..ba3757e90 100644 --- a/packages/node-sdk/src/apis/DefaultApi.ts +++ b/packages/node-sdk/src/apis/DefaultApi.ts @@ -20,6 +20,8 @@ import type { GetJob200Response, GetNextJobs200Response, SetTargetProvidersTargetsRequest, + SetTargetRequest, + Target, UpdateJob200Response, UpdateJobAgent200Response, UpdateJobAgentRequest, @@ -40,6 +42,10 @@ import { GetNextJobs200ResponseToJSON, SetTargetProvidersTargetsRequestFromJSON, SetTargetProvidersTargetsRequestToJSON, + SetTargetRequestFromJSON, + SetTargetRequestToJSON, + TargetFromJSON, + TargetToJSON, UpdateJob200ResponseFromJSON, UpdateJob200ResponseToJSON, UpdateJobAgent200ResponseFromJSON, @@ -71,11 +77,25 @@ export interface GetNextJobsRequest { agentId: string; } +export interface GetTargetRequest { + targetId: string; +} + +export interface SetTargetOperationRequest { + targetId: string; + setTargetRequest: SetTargetRequest; +} + export interface SetTargetProvidersTargetsOperationRequest { providerId: string; setTargetProvidersTargetsRequest: SetTargetProvidersTargetsRequest; } +export interface SetWorkspaceTargetRequest { + workspaceId: string; + setTargetRequest: SetTargetRequest; +} + export interface UpdateConfigRequest { workspace: string; body: string; @@ -373,6 +393,120 @@ export class DefaultApi extends runtime.BaseAPI { return await response.value(); } + /** + * Get a target by ID + */ + async getTargetRaw( + requestParameters: GetTargetRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise> { + if (requestParameters["targetId"] == null) { + throw new runtime.RequiredError( + "targetId", + 'Required parameter "targetId" was null or undefined when calling getTarget().', + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = + await this.configuration.apiKey("x-api-key"); // apiKey authentication + } + + const response = await this.request( + { + path: `/v1/targets/{targetId}`.replace( + `{${"targetId"}}`, + encodeURIComponent(String(requestParameters["targetId"])), + ), + method: "GET", + headers: headerParameters, + query: queryParameters, + }, + initOverrides, + ); + + return new runtime.JSONApiResponse(response, (jsonValue) => + TargetFromJSON(jsonValue), + ); + } + + /** + * Get a target by ID + */ + async getTarget( + requestParameters: GetTargetRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise { + const response = await this.getTargetRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * Update a target + */ + async setTargetRaw( + requestParameters: SetTargetOperationRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise> { + if (requestParameters["targetId"] == null) { + throw new runtime.RequiredError( + "targetId", + 'Required parameter "targetId" was null or undefined when calling setTarget().', + ); + } + + if (requestParameters["setTargetRequest"] == null) { + throw new runtime.RequiredError( + "setTargetRequest", + 'Required parameter "setTargetRequest" was null or undefined when calling setTarget().', + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters["Content-Type"] = "application/json"; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = + await this.configuration.apiKey("x-api-key"); // apiKey authentication + } + + const response = await this.request( + { + path: `/v1/targets/{targetId}/set`.replace( + `{${"targetId"}}`, + encodeURIComponent(String(requestParameters["targetId"])), + ), + method: "PATCH", + headers: headerParameters, + query: queryParameters, + body: SetTargetRequestToJSON(requestParameters["setTargetRequest"]), + }, + initOverrides, + ); + + return new runtime.JSONApiResponse(response, (jsonValue) => + TargetFromJSON(jsonValue), + ); + } + + /** + * Update a target + */ + async setTarget( + requestParameters: SetTargetOperationRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise { + const response = await this.setTargetRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Sets the target for a provider. */ @@ -434,6 +568,71 @@ export class DefaultApi extends runtime.BaseAPI { await this.setTargetProvidersTargetsRaw(requestParameters, initOverrides); } + /** + * Create or update a target in a workspace + */ + async setWorkspaceTargetRaw( + requestParameters: SetWorkspaceTargetRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise> { + if (requestParameters["workspaceId"] == null) { + throw new runtime.RequiredError( + "workspaceId", + 'Required parameter "workspaceId" was null or undefined when calling setWorkspaceTarget().', + ); + } + + if (requestParameters["setTargetRequest"] == null) { + throw new runtime.RequiredError( + "setTargetRequest", + 'Required parameter "setTargetRequest" was null or undefined when calling setWorkspaceTarget().', + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters["Content-Type"] = "application/json"; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["x-api-key"] = + await this.configuration.apiKey("x-api-key"); // apiKey authentication + } + + const response = await this.request( + { + path: `/v1/targets/workspaces/{workspaceId}`.replace( + `{${"workspaceId"}}`, + encodeURIComponent(String(requestParameters["workspaceId"])), + ), + method: "POST", + headers: headerParameters, + query: queryParameters, + body: SetTargetRequestToJSON(requestParameters["setTargetRequest"]), + }, + initOverrides, + ); + + return new runtime.JSONApiResponse(response, (jsonValue) => + TargetFromJSON(jsonValue), + ); + } + + /** + * Create or update a target in a workspace + */ + async setWorkspaceTarget( + requestParameters: SetWorkspaceTargetRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise { + const response = await this.setWorkspaceTargetRaw( + requestParameters, + initOverrides, + ); + return await response.value(); + } + /** * Create resources from a config file */ diff --git a/packages/node-sdk/src/models/GetJob200ResponseCausedBy.ts b/packages/node-sdk/src/models/GetJob200ResponseCausedBy.ts deleted file mode 100644 index da440969c..000000000 --- a/packages/node-sdk/src/models/GetJob200ResponseCausedBy.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Ctrlplane API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { mapValues } from "../runtime"; - -/** - * - * @export - * @interface GetJob200ResponseCausedBy - */ -export interface GetJob200ResponseCausedBy { - /** - * - * @type {string} - * @memberof GetJob200ResponseCausedBy - */ - id: string; - /** - * - * @type {string} - * @memberof GetJob200ResponseCausedBy - */ - name: string; - /** - * - * @type {string} - * @memberof GetJob200ResponseCausedBy - */ - email: string; -} - -/** - * Check if a given object implements the GetJob200ResponseCausedBy interface. - */ -export function instanceOfGetJob200ResponseCausedBy( - value: object, -): value is GetJob200ResponseCausedBy { - if (!("id" in value) || value["id"] === undefined) return false; - if (!("name" in value) || value["name"] === undefined) return false; - if (!("email" in value) || value["email"] === undefined) return false; - return true; -} - -export function GetJob200ResponseCausedByFromJSON( - json: any, -): GetJob200ResponseCausedBy { - return GetJob200ResponseCausedByFromJSONTyped(json, false); -} - -export function GetJob200ResponseCausedByFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetJob200ResponseCausedBy { - if (json == null) { - return json; - } - return { - id: json["id"], - name: json["name"], - email: json["email"], - }; -} - -export function GetJob200ResponseCausedByToJSON( - value?: GetJob200ResponseCausedBy | null, -): any { - if (value == null) { - return value; - } - return { - id: value["id"], - name: value["name"], - email: value["email"], - }; -} diff --git a/packages/node-sdk/src/models/GetJob200ResponseTargetConfig.ts b/packages/node-sdk/src/models/GetJob200ResponseTargetConfig.ts deleted file mode 100644 index b8f0bae38..000000000 --- a/packages/node-sdk/src/models/GetJob200ResponseTargetConfig.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Ctrlplane API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { mapValues } from "../runtime"; - -/** - * - * @export - * @interface GetJob200ResponseTargetConfig - */ -export interface GetJob200ResponseTargetConfig { - /** - * - * @type {string} - * @memberof GetJob200ResponseTargetConfig - */ - location?: string; - /** - * - * @type {string} - * @memberof GetJob200ResponseTargetConfig - */ - project?: string; -} - -/** - * Check if a given object implements the GetJob200ResponseTargetConfig interface. - */ -export function instanceOfGetJob200ResponseTargetConfig( - value: object, -): value is GetJob200ResponseTargetConfig { - return true; -} - -export function GetJob200ResponseTargetConfigFromJSON( - json: any, -): GetJob200ResponseTargetConfig { - return GetJob200ResponseTargetConfigFromJSONTyped(json, false); -} - -export function GetJob200ResponseTargetConfigFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetJob200ResponseTargetConfig { - if (json == null) { - return json; - } - return { - location: json["location"] == null ? undefined : json["location"], - project: json["project"] == null ? undefined : json["project"], - }; -} - -export function GetJob200ResponseTargetConfigToJSON( - value?: GetJob200ResponseTargetConfig | null, -): any { - if (value == null) { - return value; - } - return { - location: value["location"], - project: value["project"], - }; -} diff --git a/packages/node-sdk/src/models/SetTargetRequest.ts b/packages/node-sdk/src/models/SetTargetRequest.ts new file mode 100644 index 000000000..43684bfb4 --- /dev/null +++ b/packages/node-sdk/src/models/SetTargetRequest.ts @@ -0,0 +1,70 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ctrlplane API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import type { SetTargetRequestTarget } from "./SetTargetRequestTarget"; +import { mapValues } from "../runtime"; +import { + SetTargetRequestTargetFromJSON, + SetTargetRequestTargetFromJSONTyped, + SetTargetRequestTargetToJSON, +} from "./SetTargetRequestTarget"; + +/** + * + * @export + * @interface SetTargetRequest + */ +export interface SetTargetRequest { + /** + * + * @type {SetTargetRequestTarget} + * @memberof SetTargetRequest + */ + target: SetTargetRequestTarget; +} + +/** + * Check if a given object implements the SetTargetRequest interface. + */ +export function instanceOfSetTargetRequest( + value: object, +): value is SetTargetRequest { + if (!("target" in value) || value["target"] === undefined) return false; + return true; +} + +export function SetTargetRequestFromJSON(json: any): SetTargetRequest { + return SetTargetRequestFromJSONTyped(json, false); +} + +export function SetTargetRequestFromJSONTyped( + json: any, + ignoreDiscriminator: boolean, +): SetTargetRequest { + if (json == null) { + return json; + } + return { + target: SetTargetRequestTargetFromJSON(json["target"]), + }; +} + +export function SetTargetRequestToJSON(value?: SetTargetRequest | null): any { + if (value == null) { + return value; + } + return { + target: SetTargetRequestTargetToJSON(value["target"]), + }; +} diff --git a/packages/node-sdk/src/models/SetTargetRequestTarget.ts b/packages/node-sdk/src/models/SetTargetRequestTarget.ts new file mode 100644 index 000000000..33af70097 --- /dev/null +++ b/packages/node-sdk/src/models/SetTargetRequestTarget.ts @@ -0,0 +1,115 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ctrlplane API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from "../runtime"; + +/** + * + * @export + * @interface SetTargetRequestTarget + */ +export interface SetTargetRequestTarget { + /** + * + * @type {string} + * @memberof SetTargetRequestTarget + */ + name?: string; + /** + * + * @type {string} + * @memberof SetTargetRequestTarget + */ + version?: string; + /** + * + * @type {string} + * @memberof SetTargetRequestTarget + */ + kind?: string; + /** + * + * @type {string} + * @memberof SetTargetRequestTarget + */ + identifier?: string; + /** + * + * @type {object} + * @memberof SetTargetRequestTarget + */ + config?: object; + /** + * + * @type {{ [key: string]: string; }} + * @memberof SetTargetRequestTarget + */ + metadata?: { [key: string]: string }; + /** + * + * @type {object} + * @memberof SetTargetRequestTarget + */ + variables?: object; +} + +/** + * Check if a given object implements the SetTargetRequestTarget interface. + */ +export function instanceOfSetTargetRequestTarget( + value: object, +): value is SetTargetRequestTarget { + return true; +} + +export function SetTargetRequestTargetFromJSON( + json: any, +): SetTargetRequestTarget { + return SetTargetRequestTargetFromJSONTyped(json, false); +} + +export function SetTargetRequestTargetFromJSONTyped( + json: any, + ignoreDiscriminator: boolean, +): SetTargetRequestTarget { + if (json == null) { + return json; + } + return { + name: json["name"] == null ? undefined : json["name"], + version: json["version"] == null ? undefined : json["version"], + kind: json["kind"] == null ? undefined : json["kind"], + identifier: json["identifier"] == null ? undefined : json["identifier"], + config: json["config"] == null ? undefined : json["config"], + metadata: json["metadata"] == null ? undefined : json["metadata"], + variables: json["variables"] == null ? undefined : json["variables"], + }; +} + +export function SetTargetRequestTargetToJSON( + value?: SetTargetRequestTarget | null, +): any { + if (value == null) { + return value; + } + return { + name: value["name"], + version: value["version"], + kind: value["kind"], + identifier: value["identifier"], + config: value["config"], + metadata: value["metadata"], + variables: value["variables"], + }; +} diff --git a/packages/node-sdk/src/models/Target.ts b/packages/node-sdk/src/models/Target.ts new file mode 100644 index 000000000..2164125e7 --- /dev/null +++ b/packages/node-sdk/src/models/Target.ts @@ -0,0 +1,143 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ctrlplane API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from "../runtime"; + +/** + * + * @export + * @interface Target + */ +export interface Target { + /** + * + * @type {string} + * @memberof Target + */ + id: string; + /** + * + * @type {string} + * @memberof Target + */ + name: string; + /** + * + * @type {string} + * @memberof Target + */ + version: string; + /** + * + * @type {string} + * @memberof Target + */ + kind: string; + /** + * + * @type {string} + * @memberof Target + */ + identifier: string; + /** + * + * @type {string} + * @memberof Target + */ + workspaceId: string; + /** + * + * @type {object} + * @memberof Target + */ + config: object; + /** + * + * @type {{ [key: string]: string; }} + * @memberof Target + */ + metadata: { [key: string]: string }; + /** + * + * @type {object} + * @memberof Target + */ + variables?: object; + /** + * + * @type {object} + * @memberof Target + */ + provider?: object; +} + +/** + * Check if a given object implements the Target interface. + */ +export function instanceOfTarget(value: object): value is Target { + if (!("id" in value) || value["id"] === undefined) return false; + if (!("name" in value) || value["name"] === undefined) return false; + if (!("version" in value) || value["version"] === undefined) return false; + if (!("kind" in value) || value["kind"] === undefined) return false; + if (!("identifier" in value) || value["identifier"] === undefined) + return false; + if (!("workspaceId" in value) || value["workspaceId"] === undefined) + return false; + if (!("config" in value) || value["config"] === undefined) return false; + if (!("metadata" in value) || value["metadata"] === undefined) return false; + return true; +} + +export function TargetFromJSON(json: any): Target { + return TargetFromJSONTyped(json, false); +} + +export function TargetFromJSONTyped( + json: any, + ignoreDiscriminator: boolean, +): Target { + if (json == null) { + return json; + } + return { + id: json["id"], + name: json["name"], + version: json["version"], + kind: json["kind"], + identifier: json["identifier"], + workspaceId: json["workspaceId"], + config: json["config"], + metadata: json["metadata"], + variables: json["variables"] == null ? undefined : json["variables"], + provider: json["provider"] == null ? undefined : json["provider"], + }; +} + +export function TargetToJSON(value?: Target | null): any { + if (value == null) { + return value; + } + return { + id: value["id"], + name: value["name"], + version: value["version"], + kind: value["kind"], + identifier: value["identifier"], + workspaceId: value["workspaceId"], + config: value["config"], + metadata: value["metadata"], + variables: value["variables"], + provider: value["provider"], + }; +} diff --git a/packages/node-sdk/src/models/index.ts b/packages/node-sdk/src/models/index.ts index fc8ae4bc3..74d147c93 100644 --- a/packages/node-sdk/src/models/index.ts +++ b/packages/node-sdk/src/models/index.ts @@ -16,6 +16,9 @@ export * from "./GetNextJobs200Response"; export * from "./GetNextJobs200ResponseJobsInner"; export * from "./SetTargetProvidersTargetsRequest"; export * from "./SetTargetProvidersTargetsRequestTargetsInner"; +export * from "./SetTargetRequest"; +export * from "./SetTargetRequestTarget"; +export * from "./Target"; export * from "./UpdateJob200Response"; export * from "./UpdateJobAgent200Response"; export * from "./UpdateJobAgentRequest"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76b3e1aad..c71687985 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,7 +26,7 @@ catalogs: version: 3.6.0 eslint: specifier: ^9.10.0 - version: 9.11.1 + version: 9.13.0 eslint-plugin-vitest: specifier: ^0.5.4 version: 0.5.4 @@ -50,7 +50,7 @@ catalogs: version: 5.6.3 typescript-eslint: specifier: ^8.3.0 - version: 8.7.0 + version: 8.12.2 zod: specifier: ^3.23.8 version: 3.23.8 @@ -146,7 +146,7 @@ importers: version: 18.3.0 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) postcss-load-config: specifier: ^6.0.1 version: 6.0.1(jiti@2.3.3)(postcss@8.4.47)(tsx@4.19.2)(yaml@2.6.0) @@ -188,7 +188,7 @@ importers: version: 5.6.3 typescript-eslint: specifier: 'catalog:' - version: 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) + version: 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) webpack: specifier: ^5.95.0 version: 5.95.0 @@ -273,7 +273,7 @@ importers: version: 7.5.8 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -316,7 +316,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -554,7 +554,7 @@ importers: version: 7.4.2 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@1.21.6) + version: 9.13.0(jiti@1.21.6) jiti: specifier: ^1.21.0 version: 1.21.6 @@ -642,7 +642,7 @@ importers: version: 8.5.12 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -740,7 +740,7 @@ importers: version: 7.5.8 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -804,7 +804,7 @@ importers: version: 4.17.12 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -862,10 +862,10 @@ importers: version: 2.1.3(vitest@2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0)) eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) eslint-plugin-vitest: specifier: 'catalog:' - version: 0.5.4(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0)) + version: 0.5.4(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0)) jsdom: specifier: ^25.0.0 version: 25.0.1 @@ -986,7 +986,7 @@ importers: version: 10.0.0 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1041,7 +1041,7 @@ importers: version: 2.4.6 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1093,7 +1093,7 @@ importers: version: 0.24.2 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1169,7 +1169,7 @@ importers: version: 7.4.2 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1209,7 +1209,7 @@ importers: version: 20.16.10 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1229,14 +1229,14 @@ importers: specifier: workspace:* version: link:../../tooling/typescript '@openapitools/openapi-generator-cli': - specifier: ^2.13.5 + specifier: ^2.15.0 version: 2.15.0 '@types/node': specifier: catalog:node20 version: 20.16.10 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1270,7 +1270,7 @@ importers: version: 20.16.10 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1316,7 +1316,7 @@ importers: version: 20.16.10 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1452,7 +1452,7 @@ importers: version: 18.3.10 eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1486,7 +1486,7 @@ importers: version: link:../../tooling/typescript eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1501,25 +1501,25 @@ importers: version: 14.2.13 eslint-config-turbo: specifier: ^1.13.4 - version: 1.13.4(eslint@9.11.1(jiti@2.3.3)) + version: 1.13.4(eslint@9.13.0(jiti@2.3.3)) eslint-plugin-import: specifier: ^2.29.1 - version: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint@9.11.1(jiti@2.3.3)) + version: 2.31.0(eslint@9.13.0(jiti@2.3.3)) eslint-plugin-jsx-a11y: specifier: ^6.9.0 - version: 6.10.2(eslint@9.11.1(jiti@2.3.3)) + version: 6.10.2(eslint@9.13.0(jiti@2.3.3)) eslint-plugin-react: specifier: ^7.35.0 - version: 7.37.2(eslint@9.11.1(jiti@2.3.3)) + version: 7.37.2(eslint@9.13.0(jiti@2.3.3)) eslint-plugin-react-hooks: specifier: beta - version: 5.1.0-beta-26f2496093-20240514(eslint@9.11.1(jiti@2.3.3)) + version: 5.1.0-beta-26f2496093-20240514(eslint@9.13.0(jiti@2.3.3)) eslint-plugin-vitest: specifier: 'catalog:' - version: 0.5.4(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0)) + version: 0.5.4(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0)) typescript-eslint: specifier: 'catalog:' - version: 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) + version: 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) devDependencies: '@ctrlplane/prettier-config': specifier: workspace:* @@ -1529,7 +1529,7 @@ importers: version: link:../typescript eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -1584,7 +1584,7 @@ importers: version: link:../typescript eslint: specifier: 'catalog:' - version: 9.11.1(jiti@2.3.3) + version: 9.13.0(jiti@2.3.3) prettier: specifier: 'catalog:' version: 3.3.3 @@ -2503,16 +2503,16 @@ packages: resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.6.0': - resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.11.1': - resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -2611,12 +2611,20 @@ packages: peerDependencies: react-hook-form: ^7.0.0 + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.0': - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} '@ianvs/prettier-plugin-sort-imports@4.3.1': @@ -5661,8 +5669,8 @@ packages: '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@typescript-eslint/eslint-plugin@8.7.0': - resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + '@typescript-eslint/eslint-plugin@8.12.2': + resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -5672,8 +5680,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.7.0': - resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + '@typescript-eslint/parser@8.12.2': + resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5686,12 +5694,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.7.0': - resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + '@typescript-eslint/scope-manager@8.12.2': + resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.7.0': - resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + '@typescript-eslint/type-utils@8.12.2': + resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -5703,8 +5711,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.7.0': - resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + '@typescript-eslint/types@8.12.2': + resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -5716,8 +5724,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.7.0': - resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + '@typescript-eslint/typescript-estree@8.12.2': + resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -5731,8 +5739,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.7.0': - resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + '@typescript-eslint/utils@8.12.2': + resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5741,8 +5749,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.7.0': - resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + '@typescript-eslint/visitor-keys@8.12.2': + resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/vfs@1.6.0': @@ -7474,8 +7482,8 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.11.1: - resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -11876,8 +11884,8 @@ packages: types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.7.0: - resolution: {integrity: sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ==} + typescript-eslint@8.12.2: + resolution: {integrity: sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -13172,14 +13180,14 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': dependencies: - eslint: 9.11.1(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.3.3))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.3.3))': dependencies: - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -13192,7 +13200,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.6.0': {} + '@eslint/core@0.7.0': {} '@eslint/eslintrc@3.1.0': dependencies: @@ -13208,7 +13216,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.11.1': {} + '@eslint/js@9.13.0': {} '@eslint/object-schema@2.1.4': {} @@ -13338,9 +13346,16 @@ snapshots: dependencies: react-hook-form: 7.53.1(react@18.3.1) + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.0': {} + '@humanwhocodes/retry@0.3.1': {} '@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3)': dependencies: @@ -17351,15 +17366,15 @@ snapshots: dependencies: '@types/node': 22.7.4 - '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.7.0 - eslint: 9.11.1(jiti@2.3.3) + '@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/type-utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.12.2 + eslint: 9.13.0(jiti@2.3.3) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -17369,14 +17384,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7 - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -17387,15 +17402,15 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.7.0': + '@typescript-eslint/scope-manager@8.12.2': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 - '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) + '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -17406,7 +17421,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.7.0': {} + '@typescript-eslint/types@8.12.2': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': dependencies: @@ -17423,10 +17438,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -17438,24 +17453,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.3.3)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.3.3)) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.3) - eslint: 9.11.1(jiti@2.3.3) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) + eslint: 9.13.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript @@ -17465,9 +17480,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.7.0': + '@typescript-eslint/visitor-keys@8.12.2': dependencies: - '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/types': 8.12.2 eslint-visitor-keys: 3.4.3 '@typescript/vfs@1.6.0(typescript@5.6.3)': @@ -17652,6 +17667,10 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-jsx@5.3.2(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + acorn-walk@8.3.4: dependencies: acorn: 8.13.0 @@ -19301,10 +19320,10 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-turbo@1.13.4(eslint@9.11.1(jiti@2.3.3)): + eslint-config-turbo@1.13.4(eslint@9.13.0(jiti@2.3.3)): dependencies: - eslint: 9.11.1(jiti@2.3.3) - eslint-plugin-turbo: 1.13.4(eslint@9.11.1(jiti@2.3.3)) + eslint: 9.13.0(jiti@2.3.3) + eslint-plugin-turbo: 1.13.4(eslint@9.13.0(jiti@2.3.3)) eslint-import-resolver-node@0.3.9: dependencies: @@ -19314,17 +19333,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1(jiti@2.3.3)): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.3.3)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint@9.11.1(jiti@2.3.3)): + eslint-plugin-import@2.31.0(eslint@9.13.0(jiti@2.3.3)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -19333,9 +19351,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1(jiti@2.3.3)) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.13.0(jiti@2.3.3)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -19346,14 +19364,12 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.11.1(jiti@2.3.3)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.13.0(jiti@2.3.3)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -19363,7 +19379,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -19372,11 +19388,11 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.1.0-beta-26f2496093-20240514(eslint@9.11.1(jiti@2.3.3)): + eslint-plugin-react-hooks@5.1.0-beta-26f2496093-20240514(eslint@9.13.0(jiti@2.3.3)): dependencies: - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) - eslint-plugin-react@7.37.2(eslint@9.11.1(jiti@2.3.3)): + eslint-plugin-react@7.37.2(eslint@9.13.0(jiti@2.3.3)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -19384,7 +19400,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.1.0 - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -19398,25 +19414,25 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@1.13.4(eslint@9.11.1(jiti@2.3.3)): + eslint-plugin-turbo@1.13.4(eslint@9.13.0(jiti@2.3.3)): dependencies: dotenv: 16.0.3 - eslint: 9.11.1(jiti@2.3.3) + eslint: 9.13.0(jiti@2.3.3) - eslint-plugin-vitest@0.5.4(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0)): + eslint-plugin-vitest@0.5.4(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.11.1(jiti@2.3.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.13.0(jiti@2.3.3) optionalDependencies: vitest: 2.1.3(@types/node@22.7.4)(jsdom@25.0.1)(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vitest@0.5.4(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0)): + eslint-plugin-vitest@0.5.4(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.11.1(jiti@2.3.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.13.0(jiti@2.3.3) optionalDependencies: vitest: 2.1.3(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0) transitivePeerDependencies: @@ -19437,18 +19453,18 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.11.1(jiti@1.21.6): + eslint@9.13.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 + '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.11.1 + '@eslint/js': 9.13.0 '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.3.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -19468,31 +19484,29 @@ snapshots: ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: jiti: 1.21.6 transitivePeerDependencies: - supports-color - eslint@9.11.1(jiti@2.3.3): + eslint@9.13.0(jiti@2.3.3): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.3.3)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 + '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.11.1 + '@eslint/js': 9.13.0 '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.3.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -19512,13 +19526,11 @@ snapshots: ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: jiti: 2.3.3 @@ -19529,8 +19541,8 @@ snapshots: espree@10.2.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 4.1.0 esprima@4.0.1: {} @@ -23140,7 +23152,7 @@ snapshots: dependencies: react: 18.3.1 react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1) - tslib: 2.7.0 + tslib: 2.8.0 optionalDependencies: '@types/react': 18.3.10 @@ -23149,7 +23161,7 @@ snapshots: react: 18.3.1 react-remove-scroll-bar: 2.3.6(@types/react@18.3.10)(react@18.3.1) react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1) - tslib: 2.7.0 + tslib: 2.8.0 use-callback-ref: 1.3.2(@types/react@18.3.10)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.3.10)(react@18.3.1) optionalDependencies: @@ -23220,7 +23232,7 @@ snapshots: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 - tslib: 2.7.0 + tslib: 2.8.0 optionalDependencies: '@types/react': 18.3.10 @@ -24114,7 +24126,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.7.0 + tslib: 2.8.0 safe-array-concat@1.1.2: dependencies: @@ -25245,11 +25257,11 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3): + typescript-eslint@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3))(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -25515,7 +25527,7 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.3.10)(react@18.3.1): dependencies: react: 18.3.1 - tslib: 2.7.0 + tslib: 2.8.0 optionalDependencies: '@types/react': 18.3.10 @@ -25523,7 +25535,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.7.0 + tslib: 2.8.0 optionalDependencies: '@types/react': 18.3.10