mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-25 10:08:27 +00:00
Feat: Activtiy to memory ingestion
This commit is contained in:
parent
1bbb5a0f57
commit
d80bfadf9c
93
apps/webapp/app/routes/api.v1.activity.tsx
Normal file
93
apps/webapp/app/routes/api.v1.activity.tsx
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
import { json } from "@remix-run/node";
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
import { createActionApiRoute } from "~/services/routeBuilders/apiBuilder.server";
|
||||||
|
import { addToQueue } from "~/lib/ingest.server";
|
||||||
|
import { prisma } from "~/db.server";
|
||||||
|
import { logger } from "~/services/logger.service";
|
||||||
|
|
||||||
|
const ActivityCreateSchema = z.object({
|
||||||
|
text: z.string().min(1, "Text is required"),
|
||||||
|
source: z.string().min(1, "Source is required"),
|
||||||
|
sourceURL: z.string().url().optional(),
|
||||||
|
integrationAccountId: z.string().optional(),
|
||||||
|
taskId: z.string().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
|
const { action, loader } = createActionApiRoute(
|
||||||
|
{
|
||||||
|
body: ActivityCreateSchema,
|
||||||
|
allowJWT: true,
|
||||||
|
authorization: {
|
||||||
|
action: "create",
|
||||||
|
},
|
||||||
|
corsStrategy: "all",
|
||||||
|
},
|
||||||
|
async ({ body, authentication }) => {
|
||||||
|
try {
|
||||||
|
logger.log("Creating activity", { body, userId: authentication.userId });
|
||||||
|
|
||||||
|
const user = await prisma.user.findUnique({
|
||||||
|
where: {
|
||||||
|
id: authentication.userId,
|
||||||
|
},
|
||||||
|
include: {
|
||||||
|
Workspace: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!user) {
|
||||||
|
throw new Error("User not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Create the activity record
|
||||||
|
const activity = await prisma.activity.create({
|
||||||
|
data: {
|
||||||
|
text: body.text,
|
||||||
|
sourceURL: body.sourceURL,
|
||||||
|
integrationAccountId: body.integrationAccountId,
|
||||||
|
workspaceId: user.Workspace?.id || "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add activity to knowledge graph ingestion queue
|
||||||
|
const ingestData = {
|
||||||
|
episodeBody: body.text,
|
||||||
|
referenceTime: new Date().toISOString(),
|
||||||
|
source: body.source,
|
||||||
|
metadata: {
|
||||||
|
activityId: activity.id,
|
||||||
|
integrationAccountId: body.integrationAccountId || "",
|
||||||
|
taskId: body.taskId || "",
|
||||||
|
type: "activity",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const queueResponse = await addToQueue(ingestData, authentication.userId);
|
||||||
|
|
||||||
|
logger.log("Activity created and queued for ingestion", {
|
||||||
|
activityId: activity.id,
|
||||||
|
queueId: queueResponse.id,
|
||||||
|
});
|
||||||
|
|
||||||
|
return json({
|
||||||
|
success: true,
|
||||||
|
activity: {
|
||||||
|
id: activity.id,
|
||||||
|
text: activity.text,
|
||||||
|
sourceURL: activity.sourceURL,
|
||||||
|
createdAt: activity.createdAt,
|
||||||
|
},
|
||||||
|
ingestion: {
|
||||||
|
queueId: queueResponse.id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
logger.error("Failed to create activity", { error, body });
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
export { action, loader };
|
||||||
99
apps/webapp/app/routes/webhook.$sourceName.tsx
Normal file
99
apps/webapp/app/routes/webhook.$sourceName.tsx
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
import { json } from "@remix-run/node";
|
||||||
|
import { type ActionFunctionArgs, type LoaderFunctionArgs } from "@remix-run/server-runtime";
|
||||||
|
import { z } from "zod";
|
||||||
|
import { webhookService } from "~/services/webhook.server";
|
||||||
|
import { logger } from "~/services/logger.service";
|
||||||
|
|
||||||
|
const ParamsSchema = z.object({
|
||||||
|
sourceName: z.string(),
|
||||||
|
});
|
||||||
|
|
||||||
|
const SearchParamsSchema = z.object({
|
||||||
|
integrationAccountId: z.string().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export async function action({ request, params }: ActionFunctionArgs) {
|
||||||
|
try {
|
||||||
|
const { sourceName } = ParamsSchema.parse(params);
|
||||||
|
const url = new URL(request.url);
|
||||||
|
const { integrationAccountId } = SearchParamsSchema.parse(
|
||||||
|
Object.fromEntries(url.searchParams)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Extract headers
|
||||||
|
const eventHeaders: Record<string, string | string[]> = {};
|
||||||
|
request.headers.forEach((value, key) => {
|
||||||
|
eventHeaders[key] = value;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Parse body
|
||||||
|
const eventBody = await request.json();
|
||||||
|
|
||||||
|
logger.log(`Webhook received for ${sourceName}`, {
|
||||||
|
integrationAccountId,
|
||||||
|
eventBody: typeof eventBody === 'object' ? JSON.stringify(eventBody).substring(0, 200) : eventBody,
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = await webhookService.handleEvents(
|
||||||
|
sourceName,
|
||||||
|
integrationAccountId,
|
||||||
|
eventHeaders,
|
||||||
|
eventBody
|
||||||
|
);
|
||||||
|
|
||||||
|
// Handle URL verification challenge (returns different response)
|
||||||
|
if (result.challenge) {
|
||||||
|
return json({ challenge: result.challenge });
|
||||||
|
}
|
||||||
|
|
||||||
|
return json({ status: result.status });
|
||||||
|
} catch (error) {
|
||||||
|
logger.error('Webhook processing failed', { error, params });
|
||||||
|
|
||||||
|
// Still return 200 to acknowledge receipt
|
||||||
|
return json({ status: 'error', message: 'Webhook processing failed' }, { status: 200 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function loader({ request, params }: LoaderFunctionArgs) {
|
||||||
|
try {
|
||||||
|
const { sourceName } = ParamsSchema.parse(params);
|
||||||
|
const url = new URL(request.url);
|
||||||
|
const { integrationAccountId } = SearchParamsSchema.parse(
|
||||||
|
Object.fromEntries(url.searchParams)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Extract headers
|
||||||
|
const eventHeaders: Record<string, string | string[]> = {};
|
||||||
|
request.headers.forEach((value, key) => {
|
||||||
|
eventHeaders[key] = value;
|
||||||
|
});
|
||||||
|
|
||||||
|
// For GET requests, parse query parameters as event body
|
||||||
|
const eventBody = Object.fromEntries(url.searchParams);
|
||||||
|
|
||||||
|
logger.log(`Webhook GET request for ${sourceName}`, {
|
||||||
|
integrationAccountId,
|
||||||
|
eventBody: JSON.stringify(eventBody).substring(0, 200),
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = await webhookService.handleEvents(
|
||||||
|
sourceName,
|
||||||
|
integrationAccountId,
|
||||||
|
eventHeaders,
|
||||||
|
eventBody
|
||||||
|
);
|
||||||
|
|
||||||
|
// Handle URL verification challenge (returns different response)
|
||||||
|
if (result.challenge) {
|
||||||
|
return json({ challenge: result.challenge });
|
||||||
|
}
|
||||||
|
|
||||||
|
return json({ status: result.status });
|
||||||
|
} catch (error) {
|
||||||
|
logger.error('Webhook GET processing failed', { error, params });
|
||||||
|
|
||||||
|
// Still return 200 to acknowledge receipt
|
||||||
|
return json({ status: 'error', message: 'Webhook processing failed' }, { status: 200 });
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -13,11 +13,11 @@ import type { IntegrationDefinitionV2 } from "@core/database";
|
|||||||
async function prepareIntegrationTrigger(
|
async function prepareIntegrationTrigger(
|
||||||
integrationDefinition: IntegrationDefinitionV2,
|
integrationDefinition: IntegrationDefinitionV2,
|
||||||
userId?: string,
|
userId?: string,
|
||||||
workspaceId?: string,
|
|
||||||
) {
|
) {
|
||||||
logger.info(`Loading integration ${integrationDefinition.slug}`);
|
logger.info(`Loading integration ${integrationDefinition.slug}`);
|
||||||
|
|
||||||
let pat = "";
|
let pat = "";
|
||||||
|
let patId = "";
|
||||||
if (userId) {
|
if (userId) {
|
||||||
// Use the integration slug as the token name for uniqueness
|
// Use the integration slug as the token name for uniqueness
|
||||||
const tokenResult = await getOrCreatePersonalAccessToken({
|
const tokenResult = await getOrCreatePersonalAccessToken({
|
||||||
@ -25,11 +25,13 @@ async function prepareIntegrationTrigger(
|
|||||||
userId,
|
userId,
|
||||||
});
|
});
|
||||||
pat = tokenResult.token ?? "";
|
pat = tokenResult.token ?? "";
|
||||||
|
patId = tokenResult.id ?? "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
integrationDefinition,
|
integrationDefinition,
|
||||||
pat,
|
pat,
|
||||||
|
patId,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,13 +43,8 @@ export async function runIntegrationTriggerAsync(
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
event: any,
|
event: any,
|
||||||
userId?: string,
|
userId?: string,
|
||||||
workspaceId?: string,
|
|
||||||
) {
|
) {
|
||||||
const params = await prepareIntegrationTrigger(
|
const params = await prepareIntegrationTrigger(integrationDefinition, userId);
|
||||||
integrationDefinition,
|
|
||||||
userId,
|
|
||||||
workspaceId,
|
|
||||||
);
|
|
||||||
return await tasks.trigger<typeof integrationRun>("integration-run", {
|
return await tasks.trigger<typeof integrationRun>("integration-run", {
|
||||||
...params,
|
...params,
|
||||||
event,
|
event,
|
||||||
@ -62,13 +59,8 @@ export async function runIntegrationTrigger(
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
event: any,
|
event: any,
|
||||||
userId?: string,
|
userId?: string,
|
||||||
workspaceId?: string,
|
|
||||||
) {
|
) {
|
||||||
const params = await prepareIntegrationTrigger(
|
const params = await prepareIntegrationTrigger(integrationDefinition, userId);
|
||||||
integrationDefinition,
|
|
||||||
userId,
|
|
||||||
workspaceId,
|
|
||||||
);
|
|
||||||
|
|
||||||
const response = await tasks.triggerAndPoll<typeof integrationRun>(
|
const response = await tasks.triggerAndPoll<typeof integrationRun>(
|
||||||
"integration-run",
|
"integration-run",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { IntegrationPayloadEventType, type OAuth2Params } from "@core/types";
|
import { IntegrationEventType, type OAuth2Params } from "@core/types";
|
||||||
import * as simpleOauth2 from "simple-oauth2";
|
import * as simpleOauth2 from "simple-oauth2";
|
||||||
import { tasks } from "@trigger.dev/sdk/v3";
|
import { tasks } from "@trigger.dev/sdk/v3";
|
||||||
import {
|
import {
|
||||||
@ -121,7 +121,7 @@ export async function callbackHandler(
|
|||||||
const integrationAccount = await runIntegrationTrigger(
|
const integrationAccount = await runIntegrationTrigger(
|
||||||
integrationDefinition,
|
integrationDefinition,
|
||||||
{
|
{
|
||||||
event: IntegrationPayloadEventType.INTEGRATION_ACCOUNT_CREATED,
|
event: IntegrationEventType.SETUP,
|
||||||
eventBody: {
|
eventBody: {
|
||||||
oauthResponse: tokensResponse.token,
|
oauthResponse: tokensResponse.token,
|
||||||
oauthParams: {
|
oauthParams: {
|
||||||
@ -132,7 +132,6 @@ export async function callbackHandler(
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
sessionRecord.userId,
|
sessionRecord.userId,
|
||||||
sessionRecord.workspaceId,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await tasks.trigger<typeof scheduler>("scheduler", {
|
await tasks.trigger<typeof scheduler>("scheduler", {
|
||||||
|
|||||||
123
apps/webapp/app/services/webhook.server.ts
Normal file
123
apps/webapp/app/services/webhook.server.ts
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
import {
|
||||||
|
type IntegrationDefinitionV2,
|
||||||
|
type IntegrationAccount,
|
||||||
|
} from "@core/database";
|
||||||
|
import { IntegrationEventType } from "@redplanethq/sdk";
|
||||||
|
import { prisma } from "~/db.server";
|
||||||
|
import { logger } from "./logger.service";
|
||||||
|
import { runIntegrationTrigger } from "./integration.server";
|
||||||
|
|
||||||
|
export type EventHeaders = Record<string, string | string[]>;
|
||||||
|
export type EventBody = Record<string, any>;
|
||||||
|
|
||||||
|
export class WebhookService {
|
||||||
|
async handleEvents(
|
||||||
|
sourceName: string,
|
||||||
|
integrationAccountId: string | undefined,
|
||||||
|
eventHeaders: EventHeaders,
|
||||||
|
eventBody: EventBody,
|
||||||
|
): Promise<{ challenge?: string; status: string }> {
|
||||||
|
logger.log(`Received webhook ${sourceName}`, {
|
||||||
|
where: "WebhookService.handleEvents",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Check if the event is a URL verification challenge (Slack)
|
||||||
|
if (eventBody.type === "url_verification") {
|
||||||
|
logger.log("Responding to Slack URL verification challenge");
|
||||||
|
return { challenge: eventBody.challenge, status: "verified" };
|
||||||
|
}
|
||||||
|
|
||||||
|
let integrationAccount:
|
||||||
|
| (IntegrationAccount & {
|
||||||
|
integrationDefinition: IntegrationDefinitionV2;
|
||||||
|
})
|
||||||
|
| null = null;
|
||||||
|
|
||||||
|
if (!integrationAccountId) {
|
||||||
|
// Find integration account by identifying the webhook account
|
||||||
|
const integrationDefinition =
|
||||||
|
await prisma.integrationDefinitionV2.findFirst({
|
||||||
|
where: { slug: sourceName, deleted: null },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (integrationDefinition) {
|
||||||
|
try {
|
||||||
|
const accountIdResponse = await runIntegrationTrigger(
|
||||||
|
integrationDefinition,
|
||||||
|
{
|
||||||
|
event: IntegrationEventType.IDENTIFY,
|
||||||
|
eventBody: {
|
||||||
|
eventHeaders,
|
||||||
|
event: { ...eventBody },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
let accountId: string | undefined;
|
||||||
|
|
||||||
|
if (
|
||||||
|
accountIdResponse?.message?.startsWith("The event payload type is")
|
||||||
|
) {
|
||||||
|
accountId = undefined;
|
||||||
|
} else {
|
||||||
|
accountId = accountIdResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (accountId) {
|
||||||
|
integrationAccount = await prisma.integrationAccount.findFirst({
|
||||||
|
where: { accountId },
|
||||||
|
include: { integrationDefinition: true },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
logger.error("Failed to identify integration account", {
|
||||||
|
error,
|
||||||
|
sourceName,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
integrationAccount = await prisma.integrationAccount.findUnique({
|
||||||
|
where: { id: integrationAccountId },
|
||||||
|
include: { integrationDefinition: true },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (integrationAccount) {
|
||||||
|
try {
|
||||||
|
await runIntegrationTrigger(
|
||||||
|
integrationAccount.integrationDefinition,
|
||||||
|
{
|
||||||
|
event: IntegrationEventType.PROCESS,
|
||||||
|
integrationAccount,
|
||||||
|
eventBody: {
|
||||||
|
eventHeaders,
|
||||||
|
eventData: { ...eventBody },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
integrationAccount.integratedById,
|
||||||
|
);
|
||||||
|
|
||||||
|
logger.log(`Successfully processed webhook for ${sourceName}`, {
|
||||||
|
integrationAccountId: integrationAccount.id,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(`Failed to process webhook for ${sourceName}`, {
|
||||||
|
error,
|
||||||
|
integrationAccountId: integrationAccount.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.log(
|
||||||
|
`Could not find integration account for webhook ${sourceName}`,
|
||||||
|
{
|
||||||
|
where: "WebhookService.handleEvents",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return { status: "acknowledged" };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const webhookService = new WebhookService();
|
||||||
@ -1,38 +1,57 @@
|
|||||||
// import { PrismaClient } from "@prisma/client";
|
import { PrismaClient } from "@prisma/client";
|
||||||
// import { IntegrationPayloadEventType } from "@core/types";
|
import { IntegrationEventType } from "@core/types";
|
||||||
// import { logger, schedules, tasks } from "@trigger.dev/sdk/v3";
|
import { logger, schedules, tasks } from "@trigger.dev/sdk/v3";
|
||||||
|
|
||||||
// import { integrationRun } from "./integration-run";
|
import { type integrationRun } from "./integration-run";
|
||||||
|
import { getOrCreatePersonalAccessToken } from "../utils/utils";
|
||||||
|
import { nanoid } from "nanoid";
|
||||||
|
|
||||||
// const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
// export const integrationRunSchedule = schedules.task({
|
export const integrationRunSchedule = schedules.task({
|
||||||
// id: "integration-run-schedule",
|
id: "integration-run-schedule",
|
||||||
// run: async (payload) => {
|
run: async (payload) => {
|
||||||
// const { externalId } = payload;
|
const { externalId } = payload;
|
||||||
// const integrationAccount = await prisma.integrationAccount.findUnique({
|
if (!externalId) {
|
||||||
// where: { id: externalId },
|
logger.info("No externalId provided");
|
||||||
// include: {
|
return null;
|
||||||
// integrationDefinition: true,
|
}
|
||||||
// workspace: true,
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
|
|
||||||
// if (!integrationAccount) {
|
const integrationAccount = await prisma.integrationAccount.findUnique({
|
||||||
// const deletedSchedule = await schedules.del(externalId);
|
where: { id: externalId },
|
||||||
// logger.info("Deleting schedule as integration account is not there");
|
include: {
|
||||||
// return deletedSchedule;
|
integrationDefinition: true,
|
||||||
// }
|
workspace: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
// const pat = await prisma.personalAccessToken.findFirst({
|
if (!integrationAccount) {
|
||||||
// where: { userId: integrationAccount.workspace.userId, name: "default" },
|
const deletedSchedule = await schedules.del(externalId);
|
||||||
// });
|
logger.info("No integration account found");
|
||||||
|
return deletedSchedule;
|
||||||
|
}
|
||||||
|
|
||||||
// return await tasks.trigger<typeof integrationRun>("integration-run", {
|
if (!integrationAccount.workspace.userId) {
|
||||||
// event: IntegrationPayloadEventType.SCHEDULED_SYNC,
|
logger.info("No workspace user id found");
|
||||||
// pat: pat.token,
|
return null;
|
||||||
// integrationAccount,
|
}
|
||||||
// integrationDefinition: integrationAccount.integrationDefinition,
|
|
||||||
// });
|
const pat = await getOrCreatePersonalAccessToken({
|
||||||
// },
|
name: `integration_scheduled_${nanoid(10)}`,
|
||||||
// });
|
userId: integrationAccount.workspace.userId as string,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!pat || !pat.token) {
|
||||||
|
logger.info("No pat token found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return await tasks.trigger<typeof integrationRun>("integration-run", {
|
||||||
|
event: IntegrationEventType.SYNC,
|
||||||
|
pat: pat.token,
|
||||||
|
patId: pat.id,
|
||||||
|
integrationAccount,
|
||||||
|
integrationDefinition: integrationAccount.integrationDefinition,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
@ -1,87 +1,100 @@
|
|||||||
// import createLoadRemoteModule, {
|
import createLoadRemoteModule, {
|
||||||
// createRequires,
|
createRequires,
|
||||||
// } from "@paciolan/remote-module-loader";
|
} from "@paciolan/remote-module-loader";
|
||||||
|
|
||||||
// import { logger, task } from "@trigger.dev/sdk/v3";
|
import { logger, task } from "@trigger.dev/sdk/v3";
|
||||||
// import axios from "axios";
|
import axios from "axios";
|
||||||
|
import {
|
||||||
|
type IntegrationDefinitionV2,
|
||||||
|
type IntegrationAccount,
|
||||||
|
} from "@core/database";
|
||||||
|
import { deletePersonalAccessToken } from "../utils/utils";
|
||||||
|
import { type IntegrationEventType } from "@core/types";
|
||||||
|
|
||||||
// const fetcher = async (url: string) => {
|
const fetcher = async (url: string) => {
|
||||||
// // Handle remote URLs with axios
|
// Handle remote URLs with axios
|
||||||
// const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
|
|
||||||
// return response.data;
|
return response.data;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// const loadRemoteModule = async (requires: any) =>
|
const loadRemoteModule = async (requires: any) =>
|
||||||
// createLoadRemoteModule({ fetcher, requires });
|
createLoadRemoteModule({ fetcher, requires });
|
||||||
|
|
||||||
// function createAxiosInstance(token: string) {
|
function createAxiosInstance(token: string) {
|
||||||
// const instance = axios.create();
|
const instance = axios.create();
|
||||||
|
|
||||||
// instance.interceptors.request.use((config) => {
|
instance.interceptors.request.use((config) => {
|
||||||
// // Check if URL starts with /api and doesn't have a full host
|
// Check if URL starts with /api and doesn't have a full host
|
||||||
// if (config.url?.startsWith("/api")) {
|
if (config.url?.startsWith("/api")) {
|
||||||
// config.url = `${process.env.BACKEND_HOST}${config.url.replace("/api/", "/")}`;
|
config.url = `${process.env.BACKEND_HOST}${config.url.replace("/api/", "/")}`;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// if (
|
if (
|
||||||
// config.url.includes(process.env.FRONTEND_HOST) ||
|
config.url?.includes(process.env.FRONTEND_HOST || "") ||
|
||||||
// config.url.includes(process.env.BACKEND_HOST)
|
config.url?.includes(process.env.BACKEND_HOST || "")
|
||||||
// ) {
|
) {
|
||||||
// config.headers.Authorization = `Bearer ${token}`;
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// return config;
|
return config;
|
||||||
// });
|
});
|
||||||
|
|
||||||
// return instance;
|
return instance;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// const getRequires = (axios: any) => createRequires({ axios });
|
const getRequires = (axios: any) => createRequires({ axios });
|
||||||
|
|
||||||
// export const integrationRun = task({
|
export const integrationRun = task({
|
||||||
// id: "integration-run",
|
id: "integration-run",
|
||||||
// run: async ({
|
run: async ({
|
||||||
// pat,
|
pat,
|
||||||
// eventBody,
|
patId,
|
||||||
// integrationAccount,
|
eventBody,
|
||||||
// integrationDefinition,
|
integrationAccount,
|
||||||
// event,
|
integrationDefinition,
|
||||||
// }: {
|
event,
|
||||||
// pat: string;
|
}: {
|
||||||
// // This is the event you want to pass to the integration
|
pat: string;
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
patId: string;
|
||||||
// event: any;
|
// This is the event you want to pass to the integration
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
event: IntegrationEventType;
|
||||||
// eventBody?: any;
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// integrationDefinition: IntegrationDefinition;
|
eventBody?: any;
|
||||||
// integrationAccount?: IntegrationAccount;
|
integrationDefinition: IntegrationDefinitionV2;
|
||||||
// }) => {
|
integrationAccount?: IntegrationAccount;
|
||||||
// const remoteModuleLoad = await loadRemoteModule(
|
}) => {
|
||||||
// getRequires(createAxiosInstance(pat)),
|
const remoteModuleLoad = await loadRemoteModule(
|
||||||
// );
|
getRequires(createAxiosInstance(pat)),
|
||||||
|
);
|
||||||
|
|
||||||
// logger.info(
|
logger.info(
|
||||||
// `${integrationDefinition.url}/${integrationDefinition.version}/backend/index.js`,
|
`${integrationDefinition.url}/${integrationDefinition.version}/index.cjs`,
|
||||||
// );
|
);
|
||||||
|
|
||||||
// const integrationFunction = await remoteModuleLoad(
|
const integrationFunction = await remoteModuleLoad(
|
||||||
// `${integrationDefinition.url}/${integrationDefinition.version}/backend/index.js`,
|
`${integrationDefinition.url}/${integrationDefinition.version}/index.cjs`,
|
||||||
// );
|
);
|
||||||
|
|
||||||
// // const integrationFunction = await remoteModuleLoad(
|
// const integrationFunction = await remoteModuleLoad(
|
||||||
// // `${integrationDefinition.url}`,
|
// `${integrationDefinition.url}`,
|
||||||
// // );
|
// );
|
||||||
|
|
||||||
// return await integrationFunction.run({
|
// Construct the proper IntegrationEventPayload structure
|
||||||
// integrationAccount,
|
const integrationEventPayload = {
|
||||||
// integrationDefinition,
|
event,
|
||||||
// event,
|
eventBody: { ...eventBody, integrationDefinition },
|
||||||
// eventBody: {
|
config: integrationAccount?.integrationConfiguration || {},
|
||||||
// ...(eventBody ? eventBody : {}),
|
};
|
||||||
// },
|
|
||||||
// });
|
const result = await integrationFunction.run(integrationEventPayload);
|
||||||
// },
|
|
||||||
// });
|
await deletePersonalAccessToken(patId);
|
||||||
|
|
||||||
|
logger.info("Personal access token deleted");
|
||||||
|
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
@ -1,64 +1,64 @@
|
|||||||
// import { PrismaClient } from "@prisma/client";
|
import { PrismaClient } from "@prisma/client";
|
||||||
// import { logger, schedules, task } from "@trigger.dev/sdk/v3";
|
import { logger, schedules, task } from "@trigger.dev/sdk/v3";
|
||||||
|
|
||||||
// import { integrationRunSchedule } from "./integration-run-schedule";
|
import { integrationRunSchedule } from "./integration-run-schedule";
|
||||||
|
|
||||||
// const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
// export const scheduler = task({
|
export const scheduler = task({
|
||||||
// id: "scheduler",
|
id: "scheduler",
|
||||||
// run: async (payload: { integrationAccountId: string }) => {
|
run: async (payload: { integrationAccountId: string }) => {
|
||||||
// const { integrationAccountId } = payload;
|
const { integrationAccountId } = payload;
|
||||||
|
|
||||||
// const integrationAccount = await prisma.integrationAccount.findUnique({
|
const integrationAccount = await prisma.integrationAccount.findUnique({
|
||||||
// where: { id: integrationAccountId, deleted: null },
|
where: { id: integrationAccountId, deleted: null },
|
||||||
// include: {
|
include: {
|
||||||
// integrationDefinition: true,
|
integrationDefinition: true,
|
||||||
// workspace: true,
|
workspace: true,
|
||||||
// },
|
},
|
||||||
// });
|
});
|
||||||
|
|
||||||
// if (!integrationAccount) {
|
if (!integrationAccount) {
|
||||||
// logger.error("Integration account not found");
|
logger.error("Integration account not found");
|
||||||
// return null;
|
return null;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// if (!integrationAccount.workspace) {
|
if (!integrationAccount.workspace) {
|
||||||
// return null;
|
return null;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// const spec = integrationAccount.integrationDefinition.spec as any;
|
const spec = integrationAccount.integrationDefinition.spec as any;
|
||||||
|
|
||||||
// if (spec.schedule && spec.schedule.frequency) {
|
if (spec.schedule && spec.schedule.frequency) {
|
||||||
// const createdSchedule = await schedules.create({
|
const createdSchedule = await schedules.create({
|
||||||
// // The id of the scheduled task you want to attach to.
|
// The id of the scheduled task you want to attach to.
|
||||||
// task: integrationRunSchedule.id,
|
task: integrationRunSchedule.id,
|
||||||
// // The schedule in cron format.
|
// The schedule in cron format.
|
||||||
// cron: spec.schedule.frequency,
|
cron: spec.schedule.frequency,
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// timezone: (integrationAccount.workspace.preferences as any).timezone,
|
// timezone: (integrationAccount.workspace.preferences as any).timezone,
|
||||||
// // this is required, it prevents you from creating duplicate schedules. It will update the schedule if it already exists.
|
// this is required, it prevents you from creating duplicate schedules. It will update the schedule if it already exists.
|
||||||
// deduplicationKey: integrationAccount.id,
|
deduplicationKey: integrationAccount.id,
|
||||||
// externalId: integrationAccount.id,
|
externalId: integrationAccount.id,
|
||||||
// });
|
});
|
||||||
|
|
||||||
// await prisma.integrationAccount.update({
|
await prisma.integrationAccount.update({
|
||||||
// where: {
|
where: {
|
||||||
// id: integrationAccount.id,
|
id: integrationAccount.id,
|
||||||
// },
|
},
|
||||||
// data: {
|
data: {
|
||||||
// settings: {
|
settings: {
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// ...(integrationAccount.settings as any),
|
...(integrationAccount.settings as any),
|
||||||
// scheduleId: createdSchedule.id,
|
scheduleId: createdSchedule.id,
|
||||||
// },
|
},
|
||||||
// },
|
},
|
||||||
// });
|
});
|
||||||
|
|
||||||
// return createdSchedule;
|
return createdSchedule;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// return "No schedule for this task";
|
return "No schedule for this task";
|
||||||
// },
|
},
|
||||||
// });
|
});
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
"@modelcontextprotocol/sdk": "1.13.2",
|
"@modelcontextprotocol/sdk": "1.13.2",
|
||||||
"@nichtsam/remix-auth-email-link": "3.0.0",
|
"@nichtsam/remix-auth-email-link": "3.0.0",
|
||||||
"@opentelemetry/api": "1.9.0",
|
"@opentelemetry/api": "1.9.0",
|
||||||
|
"@paciolan/remote-module-loader": "^3.0.3",
|
||||||
"@prisma/client": "*",
|
"@prisma/client": "*",
|
||||||
"@radix-ui/react-accordion": "^1.1.2",
|
"@radix-ui/react-accordion": "^1.1.2",
|
||||||
"@radix-ui/react-alert-dialog": "^1.0.5",
|
"@radix-ui/react-alert-dialog": "^1.0.5",
|
||||||
@ -55,32 +56,32 @@
|
|||||||
"@tailwindcss/container-queries": "^0.1.1",
|
"@tailwindcss/container-queries": "^0.1.1",
|
||||||
"@tailwindcss/postcss": "^4.1.7",
|
"@tailwindcss/postcss": "^4.1.7",
|
||||||
"@tanstack/react-table": "^8.13.2",
|
"@tanstack/react-table": "^8.13.2",
|
||||||
"@tiptap/extension-document": "^2.11.9",
|
|
||||||
"@tiptap/extension-hard-break": "^2.11.9",
|
|
||||||
"@tiptap/extension-history": "^2.11.9",
|
|
||||||
"@tiptap/extension-paragraph": "^2.11.9",
|
|
||||||
"@tiptap/extension-text": "^2.11.9",
|
|
||||||
"@tiptap/extension-table": "2.11.9",
|
|
||||||
"@tiptap/extension-table-cell": "2.11.9",
|
|
||||||
"@tiptap/extension-heading": "2.11.9",
|
|
||||||
"@tiptap/extension-table-header": "2.11.9",
|
|
||||||
"@tiptap/extension-table-row": "2.11.9",
|
|
||||||
"@tiptap/extension-code-block": "2.11.9",
|
"@tiptap/extension-code-block": "2.11.9",
|
||||||
"@tiptap/extension-code-block-lowlight": "^2.11.9",
|
"@tiptap/extension-code-block-lowlight": "^2.11.9",
|
||||||
"@tiptap/starter-kit": "2.11.9",
|
"@tiptap/extension-document": "^2.11.9",
|
||||||
"@tiptap/react": "^2.11.9",
|
"@tiptap/extension-hard-break": "^2.11.9",
|
||||||
|
"@tiptap/extension-heading": "2.11.9",
|
||||||
|
"@tiptap/extension-history": "^2.11.9",
|
||||||
|
"@tiptap/extension-paragraph": "^2.11.9",
|
||||||
|
"@tiptap/extension-table": "2.11.9",
|
||||||
|
"@tiptap/extension-table-cell": "2.11.9",
|
||||||
|
"@tiptap/extension-table-header": "2.11.9",
|
||||||
|
"@tiptap/extension-table-row": "2.11.9",
|
||||||
|
"@tiptap/extension-text": "^2.11.9",
|
||||||
"@tiptap/pm": "^2.11.9",
|
"@tiptap/pm": "^2.11.9",
|
||||||
"@trigger.dev/sdk": "^4.0.0-v4-beta.22",
|
"@tiptap/react": "^2.11.9",
|
||||||
|
"@tiptap/starter-kit": "2.11.9",
|
||||||
"@trigger.dev/react-hooks": "^4.0.0-v4-beta.22",
|
"@trigger.dev/react-hooks": "^4.0.0-v4-beta.22",
|
||||||
|
"@trigger.dev/sdk": "^4.0.0-v4-beta.22",
|
||||||
"ai": "4.3.14",
|
"ai": "4.3.14",
|
||||||
"axios": "^1.10.0",
|
"axios": "^1.10.0",
|
||||||
"bullmq": "^5.53.2",
|
"bullmq": "^5.53.2",
|
||||||
|
"class-transformer": "0.5.1",
|
||||||
|
"class-validator": "0.14.1",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"class-transformer": "0.5.1",
|
|
||||||
"class-validator": "0.14.1",
|
|
||||||
"d3": "^7.9.0",
|
"d3": "^7.9.0",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
@ -96,8 +97,8 @@
|
|||||||
"ioredis": "^5.6.1",
|
"ioredis": "^5.6.1",
|
||||||
"isbot": "^4.1.0",
|
"isbot": "^4.1.0",
|
||||||
"jose": "^5.2.3",
|
"jose": "^5.2.3",
|
||||||
"lucide-react": "^0.511.0",
|
|
||||||
"lowlight": "^3.3.0",
|
"lowlight": "^3.3.0",
|
||||||
|
"lucide-react": "^0.511.0",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
"nanoid": "3.3.8",
|
"nanoid": "3.3.8",
|
||||||
"neo4j-driver": "^5.28.1",
|
"neo4j-driver": "^5.28.1",
|
||||||
@ -138,10 +139,10 @@
|
|||||||
"@types/d3": "^7.4.3",
|
"@types/d3": "^7.4.3",
|
||||||
"@types/express": "^4.17.13",
|
"@types/express": "^4.17.13",
|
||||||
"@types/morgan": "^1.9.3",
|
"@types/morgan": "^1.9.3",
|
||||||
"@types/simple-oauth2": "^5.0.7",
|
|
||||||
"@types/react": "^18.2.20",
|
"@types/react": "^18.2.20",
|
||||||
"@types/react-dom": "^18.2.7",
|
"@types/react-dom": "^18.2.7",
|
||||||
"@types/react-virtualized": "^9.22.0",
|
"@types/react-virtualized": "^9.22.0",
|
||||||
|
"@types/simple-oauth2": "^5.0.7",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.7.4",
|
"@typescript-eslint/eslint-plugin": "^6.7.4",
|
||||||
"@typescript-eslint/parser": "^6.7.4",
|
"@typescript-eslint/parser": "^6.7.4",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
|
|||||||
@ -48,7 +48,7 @@ export const createActivityEvent = async (
|
|||||||
|
|
||||||
const accessToken = config.access_token;
|
const accessToken = config.access_token;
|
||||||
|
|
||||||
const text = `DM with Sigma channel Content: '${event.text}'`;
|
const text = `DM with SOL channel Content: '${event.text}'`;
|
||||||
|
|
||||||
const permalinkResponse = await axios.get(
|
const permalinkResponse = await axios.get(
|
||||||
`https://slack.com/api/chat.getPermalink?channel=${event.channel}&message_ts=${event.ts}`,
|
`https://slack.com/api/chat.getPermalink?channel=${event.channel}&message_ts=${event.ts}`,
|
||||||
@ -104,7 +104,7 @@ export const createActivityEvent = async (
|
|||||||
conversationContext = `channel ${conversationInfo.name}(${conversationInfo.id})`;
|
conversationContext = `channel ${conversationInfo.name}(${conversationInfo.id})`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const text = `Message from user ${userIdMap.get(eventMessage.user)?.real_name}(${eventMessage.user}) in ${conversationContext} at ${eventMessage.ts}. Content: '${eventMessageText}'`;
|
const text = `Message to User from ${userIdMap.get(eventMessage.user)?.real_name}(${eventMessage.user}) in ${conversationContext} at ${eventMessage.ts}. Content: '${eventMessageText}'`;
|
||||||
|
|
||||||
const permalinkResponse = await axios.get(
|
const permalinkResponse = await axios.get(
|
||||||
`https://slack.com/api/chat.getPermalink?channel=${channel}&message_ts=${ts}`,
|
`https://slack.com/api/chat.getPermalink?channel=${channel}&message_ts=${ts}`,
|
||||||
@ -115,9 +115,9 @@ export const createActivityEvent = async (
|
|||||||
|
|
||||||
const activity = {
|
const activity = {
|
||||||
sourceURL: permalinkResponse.data.permalink,
|
sourceURL: permalinkResponse.data.permalink,
|
||||||
|
source: 'slack',
|
||||||
text,
|
text,
|
||||||
integrationAccountId: config.integrationAccountId,
|
integrationAccountId: config.integrationAccountId,
|
||||||
taskId: null,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
await axios.post('/api/v1/activity', activity);
|
await axios.post('/api/v1/activity', activity);
|
||||||
|
|||||||
@ -18,12 +18,10 @@ export async function run(eventPayload: IntegrationEventPayload) {
|
|||||||
return eventPayload.eventBody.event.user;
|
return eventPayload.eventBody.event.user;
|
||||||
|
|
||||||
case IntegrationEventType.PROCESS:
|
case IntegrationEventType.PROCESS:
|
||||||
return createActivityEvent(eventPayload.eventBody, eventPayload.config);
|
return createActivityEvent(eventPayload.eventBody.eventData, eventPayload.config);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return {
|
return { message: `The event payload type is ${eventPayload.event}` };
|
||||||
message: `The event payload type is ${eventPayload.event}`,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@changesets/cli": "2.26.2",
|
"@changesets/cli": "2.26.2",
|
||||||
|
"@redplanethq/sdk": "^0.1.0",
|
||||||
"@remix-run/changelog-github": "^0.0.5"
|
"@remix-run/changelog-github": "^0.0.5"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@9.0.0",
|
"packageManager": "pnpm@9.0.0",
|
||||||
|
|||||||
105
pnpm-lock.yaml
generated
105
pnpm-lock.yaml
generated
@ -11,6 +11,9 @@ importers:
|
|||||||
'@changesets/cli':
|
'@changesets/cli':
|
||||||
specifier: 2.26.2
|
specifier: 2.26.2
|
||||||
version: 2.26.2
|
version: 2.26.2
|
||||||
|
'@redplanethq/sdk':
|
||||||
|
specifier: ^0.1.0
|
||||||
|
version: 0.1.0
|
||||||
'@remix-run/changelog-github':
|
'@remix-run/changelog-github':
|
||||||
specifier: ^0.0.5
|
specifier: ^0.0.5
|
||||||
version: 0.0.5(encoding@0.1.13)
|
version: 0.0.5(encoding@0.1.13)
|
||||||
@ -66,6 +69,9 @@ importers:
|
|||||||
'@opentelemetry/api':
|
'@opentelemetry/api':
|
||||||
specifier: 1.9.0
|
specifier: 1.9.0
|
||||||
version: 1.9.0
|
version: 1.9.0
|
||||||
|
'@paciolan/remote-module-loader':
|
||||||
|
specifier: ^3.0.3
|
||||||
|
version: 3.0.3
|
||||||
'@prisma/client':
|
'@prisma/client':
|
||||||
specifier: '*'
|
specifier: '*'
|
||||||
version: 5.4.1(prisma@5.4.1)
|
version: 5.4.1(prisma@5.4.1)
|
||||||
@ -369,7 +375,7 @@ importers:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@remix-run/dev':
|
'@remix-run/dev':
|
||||||
specifier: 2.16.7
|
specifier: 2.16.7
|
||||||
version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)
|
version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)
|
||||||
'@remix-run/eslint-config':
|
'@remix-run/eslint-config':
|
||||||
specifier: 2.16.7
|
specifier: 2.16.7
|
||||||
version: 2.16.7(eslint@8.57.1)(react@18.3.1)(typescript@5.8.3)
|
version: 2.16.7(eslint@8.57.1)(react@18.3.1)(typescript@5.8.3)
|
||||||
@ -384,7 +390,7 @@ importers:
|
|||||||
version: 0.5.16(tailwindcss@4.1.7)
|
version: 0.5.16(tailwindcss@4.1.7)
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.1.7
|
specifier: ^4.1.7
|
||||||
version: 4.1.9(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
|
version: 4.1.9(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
|
||||||
'@trigger.dev/build':
|
'@trigger.dev/build':
|
||||||
specifier: ^4.0.0-v4-beta.22
|
specifier: ^4.0.0-v4-beta.22
|
||||||
version: 4.0.0-v4-beta.22(typescript@5.8.3)
|
version: 4.0.0-v4-beta.22(typescript@5.8.3)
|
||||||
@ -480,10 +486,10 @@ importers:
|
|||||||
version: 5.8.3
|
version: 5.8.3
|
||||||
vite:
|
vite:
|
||||||
specifier: ^6.0.0
|
specifier: ^6.0.0
|
||||||
version: 6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
version: 6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^4.2.1
|
specifier: ^4.2.1
|
||||||
version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
|
version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
|
||||||
|
|
||||||
packages/database:
|
packages/database:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -570,7 +576,7 @@ importers:
|
|||||||
version: 6.0.1
|
version: 6.0.1
|
||||||
tsup:
|
tsup:
|
||||||
specifier: ^8.0.1
|
specifier: ^8.0.1
|
||||||
version: 8.5.0(@swc/core@1.3.101(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.5)(typescript@5.8.3)(yaml@2.8.0)
|
version: 8.5.0(@swc/core@1.3.101)(jiti@2.4.2)(postcss@8.5.5)(typescript@5.8.3)(yaml@2.8.0)
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.3.0
|
specifier: ^5.3.0
|
||||||
version: 5.8.3
|
version: 5.8.3
|
||||||
@ -2053,6 +2059,9 @@ packages:
|
|||||||
'@oslojs/jwt@0.2.0':
|
'@oslojs/jwt@0.2.0':
|
||||||
resolution: {integrity: sha512-bLE7BtHrURedCn4Mco3ma9L4Y1GR2SMBuIvjWr7rmQ4/W/4Jy70TIAgZ+0nIlk0xHz1vNP8x8DCns45Sb2XRbg==}
|
resolution: {integrity: sha512-bLE7BtHrURedCn4Mco3ma9L4Y1GR2SMBuIvjWr7rmQ4/W/4Jy70TIAgZ+0nIlk0xHz1vNP8x8DCns45Sb2XRbg==}
|
||||||
|
|
||||||
|
'@paciolan/remote-module-loader@3.0.3':
|
||||||
|
resolution: {integrity: sha512-gwdJcP5QQbO7OUf00FWh+A5DkF3TnIv06JB3aMpm9pbbHcdouFrjo4nEW7HtbWeIs7z3gwGEVd82clAmzVzh3Q==}
|
||||||
|
|
||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
@ -3064,6 +3073,10 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
|
|
||||||
|
'@redplanethq/sdk@0.1.0':
|
||||||
|
resolution: {integrity: sha512-RmPfT9XESjTSMLlAMkolZEF28PvGo5hlwrG75JQy1tAZkvaTHzC7A2mEAMbsBvOMrJuUztL3NtCmVF//C/C/+A==}
|
||||||
|
engines: {node: '>=18.0.0'}
|
||||||
|
|
||||||
'@remirror/core-constants@3.0.0':
|
'@remirror/core-constants@3.0.0':
|
||||||
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
|
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
|
||||||
|
|
||||||
@ -11730,6 +11743,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@oslojs/encoding': 0.4.1
|
'@oslojs/encoding': 0.4.1
|
||||||
|
|
||||||
|
'@paciolan/remote-module-loader@3.0.3': {}
|
||||||
|
|
||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@ -11814,7 +11829,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -11868,7 +11883,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -11896,7 +11911,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -11986,7 +12001,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12037,7 +12052,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12124,7 +12139,7 @@ snapshots:
|
|||||||
react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.3.1)
|
react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12165,7 +12180,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12193,7 +12208,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12213,7 +12228,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12232,7 +12247,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12258,7 +12273,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12418,7 +12433,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12429,7 +12444,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-tooltip@1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-tooltip@1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12449,7 +12464,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12579,7 +12594,7 @@ snapshots:
|
|||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
|
|
||||||
'@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.2.69))(@types/react@18.2.69)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -12716,6 +12731,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
|
'@redplanethq/sdk@0.1.0':
|
||||||
|
dependencies:
|
||||||
|
commander: 14.0.0
|
||||||
|
|
||||||
'@remirror/core-constants@3.0.0': {}
|
'@remirror/core-constants@3.0.0': {}
|
||||||
|
|
||||||
'@remix-run/changelog-github@0.0.5(encoding@0.1.13)':
|
'@remix-run/changelog-github@0.0.5(encoding@0.1.13)':
|
||||||
@ -12727,7 +12746,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- encoding
|
- encoding
|
||||||
|
|
||||||
'@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)':
|
'@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.27.4
|
'@babel/core': 7.27.4
|
||||||
'@babel/generator': 7.27.5
|
'@babel/generator': 7.27.5
|
||||||
@ -12744,7 +12763,7 @@ snapshots:
|
|||||||
'@remix-run/router': 1.23.0
|
'@remix-run/router': 1.23.0
|
||||||
'@remix-run/server-runtime': 2.16.7(typescript@5.8.3)
|
'@remix-run/server-runtime': 2.16.7(typescript@5.8.3)
|
||||||
'@types/mdx': 2.0.13
|
'@types/mdx': 2.0.13
|
||||||
'@vanilla-extract/integration': 6.5.0(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0)
|
'@vanilla-extract/integration': 6.5.0(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0)
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
cacache: 17.1.4
|
cacache: 17.1.4
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
@ -12784,12 +12803,12 @@ snapshots:
|
|||||||
tar-fs: 2.1.3
|
tar-fs: 2.1.3
|
||||||
tsconfig-paths: 4.2.0
|
tsconfig-paths: 4.2.0
|
||||||
valibot: 0.41.0(typescript@5.8.3)
|
valibot: 0.41.0(typescript@5.8.3)
|
||||||
vite-node: 3.2.3(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
vite-node: 3.2.3(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
ws: 7.5.10
|
ws: 7.5.10
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@remix-run/serve': 2.16.7(typescript@5.8.3)
|
'@remix-run/serve': 2.16.7(typescript@5.8.3)
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
vite: 6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
vite: 6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
@ -13528,12 +13547,12 @@ snapshots:
|
|||||||
postcss-selector-parser: 6.0.10
|
postcss-selector-parser: 6.0.10
|
||||||
tailwindcss: 4.1.7
|
tailwindcss: 4.1.7
|
||||||
|
|
||||||
'@tailwindcss/vite@4.1.9(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))':
|
'@tailwindcss/vite@4.1.9(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tailwindcss/node': 4.1.9
|
'@tailwindcss/node': 4.1.9
|
||||||
'@tailwindcss/oxide': 4.1.9
|
'@tailwindcss/oxide': 4.1.9
|
||||||
tailwindcss: 4.1.9
|
tailwindcss: 4.1.9
|
||||||
vite: 6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
vite: 6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
|
|
||||||
'@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -14136,6 +14155,10 @@ snapshots:
|
|||||||
|
|
||||||
'@types/range-parser@1.2.7': {}
|
'@types/range-parser@1.2.7': {}
|
||||||
|
|
||||||
|
'@types/react-dom@18.3.7(@types/react@18.2.47)':
|
||||||
|
dependencies:
|
||||||
|
'@types/react': 18.2.47
|
||||||
|
|
||||||
'@types/react-dom@18.3.7(@types/react@18.2.69)':
|
'@types/react-dom@18.3.7(@types/react@18.2.69)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.2.69
|
'@types/react': 18.2.69
|
||||||
@ -14453,7 +14476,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
|
|
||||||
'@vanilla-extract/integration@6.5.0(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0)':
|
'@vanilla-extract/integration@6.5.0(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.27.4
|
'@babel/core': 7.27.4
|
||||||
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4)
|
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4)
|
||||||
@ -14466,8 +14489,8 @@ snapshots:
|
|||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
mlly: 1.7.4
|
mlly: 1.7.4
|
||||||
outdent: 0.8.0
|
outdent: 0.8.0
|
||||||
vite: 5.4.19(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0)
|
vite: 5.4.19(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0)
|
||||||
vite-node: 1.6.1(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0)
|
vite-node: 1.6.1(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
@ -19217,7 +19240,7 @@ snapshots:
|
|||||||
'@radix-ui/react-tooltip': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-tooltip': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@swc/core': 1.3.101(@swc/helpers@0.5.17)
|
'@swc/core': 1.3.101(@swc/helpers@0.5.17)
|
||||||
'@types/react': 18.2.47
|
'@types/react': 18.2.47
|
||||||
'@types/react-dom': 18.3.7(@types/react@18.2.69)
|
'@types/react-dom': 18.3.7(@types/react@18.2.47)
|
||||||
'@types/webpack': 5.28.5(@swc/core@1.3.101(@swc/helpers@0.5.17))(esbuild@0.19.11)
|
'@types/webpack': 5.28.5(@swc/core@1.3.101(@swc/helpers@0.5.17))(esbuild@0.19.11)
|
||||||
autoprefixer: 10.4.14(postcss@8.4.38)
|
autoprefixer: 10.4.14(postcss@8.4.38)
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
@ -20480,7 +20503,7 @@ snapshots:
|
|||||||
|
|
||||||
tslib@2.8.1: {}
|
tslib@2.8.1: {}
|
||||||
|
|
||||||
tsup@8.5.0(@swc/core@1.3.101(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.5)(typescript@5.8.3)(yaml@2.8.0):
|
tsup@8.5.0(@swc/core@1.3.101)(jiti@2.4.2)(postcss@8.5.5)(typescript@5.8.3)(yaml@2.8.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
bundle-require: 5.1.0(esbuild@0.25.5)
|
bundle-require: 5.1.0(esbuild@0.25.5)
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
@ -20872,13 +20895,13 @@ snapshots:
|
|||||||
'@types/unist': 3.0.3
|
'@types/unist': 3.0.3
|
||||||
vfile-message: 4.0.2
|
vfile-message: 4.0.2
|
||||||
|
|
||||||
vite-node@1.6.1(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0):
|
vite-node@1.6.1(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
debug: 4.4.1
|
debug: 4.4.1
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
vite: 5.4.19(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0)
|
vite: 5.4.19(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- less
|
- less
|
||||||
@ -20890,13 +20913,13 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite-node@3.2.3(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
|
vite-node@3.2.3(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
debug: 4.4.1
|
debug: 4.4.1
|
||||||
es-module-lexer: 1.7.0
|
es-module-lexer: 1.7.0
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
vite: 6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
vite: 6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- jiti
|
- jiti
|
||||||
@ -20911,29 +20934,29 @@ snapshots:
|
|||||||
- tsx
|
- tsx
|
||||||
- yaml
|
- yaml
|
||||||
|
|
||||||
vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)):
|
vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.4.1
|
debug: 4.4.1
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
tsconfck: 3.1.6(typescript@5.8.3)
|
tsconfck: 3.1.6(typescript@5.8.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
vite: 6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
vite@5.4.19(@types/node@18.19.115)(lightningcss@1.30.1)(terser@5.42.0):
|
vite@5.4.19(@types/node@24.0.0)(lightningcss@1.30.1)(terser@5.42.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.21.5
|
esbuild: 0.21.5
|
||||||
postcss: 8.5.5
|
postcss: 8.5.5
|
||||||
rollup: 4.43.0
|
rollup: 4.43.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 18.19.115
|
'@types/node': 24.0.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
lightningcss: 1.30.1
|
lightningcss: 1.30.1
|
||||||
terser: 5.42.0
|
terser: 5.42.0
|
||||||
|
|
||||||
vite@6.3.5(@types/node@18.19.115)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
|
vite@6.3.5(@types/node@24.0.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.5
|
esbuild: 0.25.5
|
||||||
fdir: 6.4.6(picomatch@4.0.2)
|
fdir: 6.4.6(picomatch@4.0.2)
|
||||||
@ -20942,7 +20965,7 @@ snapshots:
|
|||||||
rollup: 4.43.0
|
rollup: 4.43.0
|
||||||
tinyglobby: 0.2.14
|
tinyglobby: 0.2.14
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 18.19.115
|
'@types/node': 24.0.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
jiti: 2.4.2
|
jiti: 2.4.2
|
||||||
lightningcss: 1.30.1
|
lightningcss: 1.30.1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user