mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-12 04:15:30 +00:00
move @sourcebot/logger into the shared package
This commit is contained in:
parent
c8fecc02fe
commit
484c9fc6b1
62 changed files with 90 additions and 197 deletions
|
|
@ -44,14 +44,12 @@ COPY ./packages/db ./packages/db
|
||||||
COPY ./packages/schemas ./packages/schemas
|
COPY ./packages/schemas ./packages/schemas
|
||||||
COPY ./packages/crypto ./packages/crypto
|
COPY ./packages/crypto ./packages/crypto
|
||||||
COPY ./packages/error ./packages/error
|
COPY ./packages/error ./packages/error
|
||||||
COPY ./packages/logger ./packages/logger
|
|
||||||
COPY ./packages/shared ./packages/shared
|
COPY ./packages/shared ./packages/shared
|
||||||
|
|
||||||
RUN yarn workspace @sourcebot/db install
|
RUN yarn workspace @sourcebot/db install
|
||||||
RUN yarn workspace @sourcebot/schemas install
|
RUN yarn workspace @sourcebot/schemas install
|
||||||
RUN yarn workspace @sourcebot/crypto install
|
RUN yarn workspace @sourcebot/crypto install
|
||||||
RUN yarn workspace @sourcebot/error install
|
RUN yarn workspace @sourcebot/error install
|
||||||
RUN yarn workspace @sourcebot/logger install
|
|
||||||
RUN yarn workspace @sourcebot/shared install
|
RUN yarn workspace @sourcebot/shared install
|
||||||
# ------------------------------------
|
# ------------------------------------
|
||||||
|
|
||||||
|
|
@ -99,7 +97,6 @@ COPY --from=shared-libs-builder /app/packages/db ./packages/db
|
||||||
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
||||||
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
||||||
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
||||||
COPY --from=shared-libs-builder /app/packages/logger ./packages/logger
|
|
||||||
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
||||||
|
|
||||||
# Fixes arm64 timeouts
|
# Fixes arm64 timeouts
|
||||||
|
|
@ -140,7 +137,6 @@ COPY --from=shared-libs-builder /app/packages/db ./packages/db
|
||||||
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
||||||
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
||||||
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
||||||
COPY --from=shared-libs-builder /app/packages/logger ./packages/logger
|
|
||||||
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
||||||
RUN yarn workspace @sourcebot/backend install
|
RUN yarn workspace @sourcebot/backend install
|
||||||
RUN yarn workspace @sourcebot/backend build
|
RUN yarn workspace @sourcebot/backend build
|
||||||
|
|
@ -227,7 +223,6 @@ COPY --from=shared-libs-builder /app/packages/db ./packages/db
|
||||||
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
COPY --from=shared-libs-builder /app/packages/schemas ./packages/schemas
|
||||||
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
|
||||||
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
COPY --from=shared-libs-builder /app/packages/error ./packages/error
|
||||||
COPY --from=shared-libs-builder /app/packages/logger ./packages/logger
|
|
||||||
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
COPY --from=shared-libs-builder /app/packages/shared ./packages/shared
|
||||||
|
|
||||||
# Configure dependencies
|
# Configure dependencies
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@
|
||||||
"@sourcebot/crypto": "workspace:*",
|
"@sourcebot/crypto": "workspace:*",
|
||||||
"@sourcebot/db": "workspace:*",
|
"@sourcebot/db": "workspace:*",
|
||||||
"@sourcebot/error": "workspace:*",
|
"@sourcebot/error": "workspace:*",
|
||||||
"@sourcebot/logger": "workspace:*",
|
|
||||||
"@sourcebot/schemas": "workspace:*",
|
"@sourcebot/schemas": "workspace:*",
|
||||||
"@sourcebot/shared": "workspace:*",
|
"@sourcebot/shared": "workspace:*",
|
||||||
"@t3-oss/env-core": "^0.12.0",
|
"@t3-oss/env-core": "^0.12.0",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { AzureDevOpsConnectionConfig } from "@sourcebot/schemas/v3/azuredevops.type";
|
import { AzureDevOpsConnectionConfig } from "@sourcebot/schemas/v3/azuredevops.type";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { measure, fetchWithRetry } from "./utils.js";
|
import { measure, fetchWithRetry } from "./utils.js";
|
||||||
import micromatch from "micromatch";
|
import micromatch from "micromatch";
|
||||||
import { BackendException, BackendError } from "@sourcebot/error";
|
import { BackendException, BackendError } from "@sourcebot/error";
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { createBitbucketCloudClient } from "@coderabbitai/bitbucket/cloud";
|
||||||
import { createBitbucketServerClient } from "@coderabbitai/bitbucket/server";
|
import { createBitbucketServerClient } from "@coderabbitai/bitbucket/server";
|
||||||
import { BitbucketConnectionConfig } from "@sourcebot/schemas/v3/bitbucket.type";
|
import { BitbucketConnectionConfig } from "@sourcebot/schemas/v3/bitbucket.type";
|
||||||
import type { ClientOptions, ClientPathsWithMethod } from "openapi-fetch";
|
import type { ClientOptions, ClientPathsWithMethod } from "openapi-fetch";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { measure, fetchWithRetry } from "./utils.js";
|
import { measure, fetchWithRetry } from "./utils.js";
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Prisma, PrismaClient } from "@sourcebot/db";
|
import { Prisma, PrismaClient } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { ConnectionConfig } from "@sourcebot/schemas/v3/connection.type";
|
import { ConnectionConfig } from "@sourcebot/schemas/v3/connection.type";
|
||||||
import { loadConfig } from "@sourcebot/shared";
|
import { loadConfig } from "@sourcebot/shared";
|
||||||
import chokidar, { FSWatcher } from 'chokidar';
|
import chokidar, { FSWatcher } from 'chokidar';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { Connection, ConnectionSyncJobStatus, PrismaClient } from "@sourcebot/db";
|
import { Connection, ConnectionSyncJobStatus, PrismaClient } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { ConnectionConfig } from "@sourcebot/schemas/v3/connection.type";
|
import { ConnectionConfig } from "@sourcebot/schemas/v3/connection.type";
|
||||||
import { loadConfig, env } from "@sourcebot/shared";
|
import { loadConfig, env } from "@sourcebot/shared";
|
||||||
import { Job, Queue, ReservedJob, Worker } from "groupmq";
|
import { Job, Queue, ReservedJob, Worker } from "groupmq";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { PrismaClient, AccountPermissionSyncJobStatus, Account} from "@sourcebot/db";
|
import { PrismaClient, AccountPermissionSyncJobStatus, Account} from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { env, hasEntitlement, createLogger } from "@sourcebot/shared";
|
||||||
import { env, hasEntitlement } from "@sourcebot/shared";
|
|
||||||
import { Job, Queue, Worker } from "bullmq";
|
import { Job, Queue, Worker } from "bullmq";
|
||||||
import { Redis } from "ioredis";
|
import { Redis } from "ioredis";
|
||||||
import { PERMISSION_SYNC_SUPPORTED_CODE_HOST_TYPES } from "../constants.js";
|
import { PERMISSION_SYNC_SUPPORTED_CODE_HOST_TYPES } from "../constants.js";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { App } from "@octokit/app";
|
import { App } from "@octokit/app";
|
||||||
import { getTokenFromConfig } from "@sourcebot/crypto";
|
import { getTokenFromConfig } from "@sourcebot/crypto";
|
||||||
import { PrismaClient } from "@sourcebot/db";
|
import { PrismaClient } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { GitHubAppConfig } from "@sourcebot/schemas/v3/index.type";
|
import { GitHubAppConfig } from "@sourcebot/schemas/v3/index.type";
|
||||||
import { env, loadConfig } from "@sourcebot/shared";
|
import { env, loadConfig } from "@sourcebot/shared";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { PrismaClient, Repo, RepoPermissionSyncJobStatus } from "@sourcebot/db";
|
import { PrismaClient, Repo, RepoPermissionSyncJobStatus } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { env, hasEntitlement } from "@sourcebot/shared";
|
import { env, hasEntitlement } from "@sourcebot/shared";
|
||||||
import { Job, Queue, Worker } from 'bullmq';
|
import { Job, Queue, Worker } from 'bullmq';
|
||||||
import { Redis } from 'ioredis';
|
import { Redis } from 'ioredis';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import micromatch from "micromatch";
|
import micromatch from "micromatch";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { PrismaClient } from "@sourcebot/db";
|
import { PrismaClient } from "@sourcebot/db";
|
||||||
import { getPlan, hasEntitlement, SOURCEBOT_SUPPORT_EMAIL } from "@sourcebot/shared";
|
import { getPlan, hasEntitlement, SOURCEBOT_SUPPORT_EMAIL } from "@sourcebot/shared";
|
||||||
import { SearchContext } from "@sourcebot/schemas/v3/index.type";
|
import { SearchContext } from "@sourcebot/schemas/v3/index.type";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import fetch from 'cross-fetch';
|
import fetch from 'cross-fetch';
|
||||||
import { GerritConnectionConfig } from "@sourcebot/schemas/v3/index.type"
|
import { GerritConnectionConfig } from "@sourcebot/schemas/v3/index.type"
|
||||||
import { createLogger } from '@sourcebot/logger';
|
import { createLogger } from '@sourcebot/shared';
|
||||||
import micromatch from "micromatch";
|
import micromatch from "micromatch";
|
||||||
import { measure, fetchWithRetry } from './utils.js';
|
import { measure, fetchWithRetry } from './utils.js';
|
||||||
import { BackendError } from '@sourcebot/error';
|
import { BackendError } from '@sourcebot/error';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { getTokenFromConfig } from "@sourcebot/crypto";
|
import { getTokenFromConfig } from "@sourcebot/crypto";
|
||||||
import { createLogger } from '@sourcebot/logger';
|
import { createLogger } from '@sourcebot/shared';
|
||||||
import { GiteaConnectionConfig } from '@sourcebot/schemas/v3/gitea.type';
|
import { GiteaConnectionConfig } from '@sourcebot/schemas/v3/gitea.type';
|
||||||
import { env } from "@sourcebot/shared";
|
import { env } from "@sourcebot/shared";
|
||||||
import fetch from 'cross-fetch';
|
import fetch from 'cross-fetch';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { Octokit } from "@octokit/rest";
|
import { Octokit } from "@octokit/rest";
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { getTokenFromConfig } from "@sourcebot/crypto";
|
import { getTokenFromConfig } from "@sourcebot/crypto";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { GithubConnectionConfig } from "@sourcebot/schemas/v3/github.type";
|
import { GithubConnectionConfig } from "@sourcebot/schemas/v3/github.type";
|
||||||
import { env, hasEntitlement } from "@sourcebot/shared";
|
import { env, hasEntitlement } from "@sourcebot/shared";
|
||||||
import micromatch from "micromatch";
|
import micromatch from "micromatch";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { Gitlab, ProjectSchema } from "@gitbeaker/rest";
|
import { Gitlab, ProjectSchema } from "@gitbeaker/rest";
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { getTokenFromConfig } from "@sourcebot/crypto";
|
import { getTokenFromConfig } from "@sourcebot/crypto";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { GitlabConnectionConfig } from "@sourcebot/schemas/v3/gitlab.type";
|
import { GitlabConnectionConfig } from "@sourcebot/schemas/v3/gitlab.type";
|
||||||
import { env } from "@sourcebot/shared";
|
import { env } from "@sourcebot/shared";
|
||||||
import micromatch from "micromatch";
|
import micromatch from "micromatch";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import "./instrument.js";
|
import "./instrument.js";
|
||||||
|
|
||||||
import { PrismaClient } from "@sourcebot/db";
|
import { PrismaClient } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { env, getConfigSettings, hasEntitlement } from '@sourcebot/shared';
|
import { env, getConfigSettings, hasEntitlement } from '@sourcebot/shared';
|
||||||
import { existsSync } from 'fs';
|
import { existsSync } from 'fs';
|
||||||
import { mkdir } from 'fs/promises';
|
import { mkdir } from 'fs/promises';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { env } from "@sourcebot/shared";
|
import { env } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('instrument');
|
const logger = createLogger('instrument');
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import express, { Request, Response } from 'express';
|
import express, { Request, Response } from 'express';
|
||||||
import { Server } from 'http';
|
import { Server } from 'http';
|
||||||
import client, { Registry, Counter, Gauge } from 'prom-client';
|
import client, { Registry, Counter, Gauge } from 'prom-client';
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('prometheus-client');
|
const logger = createLogger('prometheus-client');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import { SchemaRepository as BitbucketCloudRepository } from "@coderabbitai/bitb
|
||||||
import { CodeHostType, Prisma } from '@sourcebot/db';
|
import { CodeHostType, Prisma } from '@sourcebot/db';
|
||||||
import { WithRequired } from "./types.js"
|
import { WithRequired } from "./types.js"
|
||||||
import { marshalBool } from "./utils.js";
|
import { marshalBool } from "./utils.js";
|
||||||
import { createLogger } from '@sourcebot/logger';
|
import { createLogger } from '@sourcebot/shared';
|
||||||
import { BitbucketConnectionConfig, GerritConnectionConfig, GiteaConnectionConfig, GitlabConnectionConfig, GenericGitHostConnectionConfig, AzureDevOpsConnectionConfig } from '@sourcebot/schemas/v3/connection.type';
|
import { BitbucketConnectionConfig, GerritConnectionConfig, GiteaConnectionConfig, GitlabConnectionConfig, GenericGitHostConnectionConfig, AzureDevOpsConnectionConfig } from '@sourcebot/schemas/v3/connection.type';
|
||||||
import { ProjectVisibility } from "azure-devops-node-api/interfaces/CoreInterfaces.js";
|
import { ProjectVisibility } from "azure-devops-node-api/interfaces/CoreInterfaces.js";
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import * as Sentry from '@sentry/node';
|
import * as Sentry from '@sentry/node';
|
||||||
import { PrismaClient, Repo, RepoIndexingJobStatus, RepoIndexingJobType } from "@sourcebot/db";
|
import { PrismaClient, Repo, RepoIndexingJobStatus, RepoIndexingJobType } from "@sourcebot/db";
|
||||||
import { createLogger, Logger } from "@sourcebot/logger";
|
import { createLogger, Logger } from "@sourcebot/shared";
|
||||||
import { env, RepoIndexingJobMetadata, repoIndexingJobMetadataSchema, RepoMetadata, repoMetadataSchema } from '@sourcebot/shared';
|
import { env, RepoIndexingJobMetadata, repoIndexingJobMetadataSchema, RepoMetadata, repoMetadataSchema } from '@sourcebot/shared';
|
||||||
import { existsSync } from 'fs';
|
import { existsSync } from 'fs';
|
||||||
import { readdir, rm } from 'fs/promises';
|
import { readdir, rm } from 'fs/promises';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Repo } from "@sourcebot/db";
|
import { Repo } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { exec } from "child_process";
|
import { exec } from "child_process";
|
||||||
import { INDEX_CACHE_DIR } from "./constants.js";
|
import { INDEX_CACHE_DIR } from "./constants.js";
|
||||||
import { Settings } from "./types.js";
|
import { Settings } from "./types.js";
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/client": "6.2.1",
|
"@prisma/client": "6.2.1",
|
||||||
"@sourcebot/logger": "workspace:*",
|
|
||||||
"@types/readline-sync": "^1.4.8",
|
"@types/readline-sync": "^1.4.8",
|
||||||
"readline-sync": "^1.4.10"
|
"readline-sync": "^1.4.10"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import { ArgumentParser } from "argparse";
|
||||||
import { migrateDuplicateConnections } from "./scripts/migrate-duplicate-connections";
|
import { migrateDuplicateConnections } from "./scripts/migrate-duplicate-connections";
|
||||||
import { injectAuditData } from "./scripts/inject-audit-data";
|
import { injectAuditData } from "./scripts/inject-audit-data";
|
||||||
import { confirmAction } from "./utils";
|
import { confirmAction } from "./utils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
import { injectRepoData } from "./scripts/inject-repo-data";
|
import { injectRepoData } from "./scripts/inject-repo-data";
|
||||||
import { testRepoQueryPerf } from "./scripts/test-repo-query-perf";
|
import { testRepoQueryPerf } from "./scripts/test-repo-query-perf";
|
||||||
|
|
||||||
|
|
@ -23,19 +22,17 @@ parser.add_argument("--url", { required: true, help: "Database URL" });
|
||||||
parser.add_argument("--script", { required: true, help: "Script to run" });
|
parser.add_argument("--script", { required: true, help: "Script to run" });
|
||||||
const args = parser.parse_args();
|
const args = parser.parse_args();
|
||||||
|
|
||||||
const logger = createLogger('db-script-runner');
|
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
if (!(args.script in scripts)) {
|
if (!(args.script in scripts)) {
|
||||||
logger.error("Invalid script");
|
console.error("Invalid script");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectedScript = scripts[args.script];
|
const selectedScript = scripts[args.script];
|
||||||
|
|
||||||
logger.info("\nTo confirm:");
|
console.log("\nTo confirm:");
|
||||||
logger.info(`- Database URL: ${args.url}`);
|
console.log(`- Database URL: ${args.url}`);
|
||||||
logger.info(`- Script: ${args.script}`);
|
console.log(`- Script: ${args.script}`);
|
||||||
|
|
||||||
confirmAction();
|
confirmAction();
|
||||||
|
|
||||||
|
|
@ -45,7 +42,7 @@ const logger = createLogger('db-script-runner');
|
||||||
|
|
||||||
await selectedScript.run(prisma);
|
await selectedScript.run(prisma);
|
||||||
|
|
||||||
logger.info("\nDone.");
|
console.log("\nDone.");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
import { Script } from "../scriptRunner";
|
import { Script } from "../scriptRunner";
|
||||||
import { PrismaClient } from "../../dist";
|
import { PrismaClient } from "../../dist";
|
||||||
import { confirmAction } from "../utils";
|
import { confirmAction } from "../utils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
|
|
||||||
const logger = createLogger('inject-audit-data');
|
|
||||||
|
|
||||||
// Generate realistic audit data for analytics testing
|
// Generate realistic audit data for analytics testing
|
||||||
// Simulates 50 engineers with varying activity patterns
|
// Simulates 50 engineers with varying activity patterns
|
||||||
|
|
@ -17,11 +14,11 @@ export const injectAuditData: Script = {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!org) {
|
if (!org) {
|
||||||
logger.error(`Organization with id ${orgId} not found. Please create it first.`);
|
console.error(`Organization with id ${orgId} not found. Please create it first.`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`Injecting audit data for organization: ${org.name} (${org.domain})`);
|
console.log(`Injecting audit data for organization: ${org.name} (${org.domain})`);
|
||||||
|
|
||||||
// Generate 50 fake user IDs
|
// Generate 50 fake user IDs
|
||||||
const userIds = Array.from({ length: 50 }, (_, i) => `user_${String(i + 1).padStart(3, '0')}`);
|
const userIds = Array.from({ length: 50 }, (_, i) => `user_${String(i + 1).padStart(3, '0')}`);
|
||||||
|
|
@ -38,7 +35,7 @@ export const injectAuditData: Script = {
|
||||||
const startDate = new Date();
|
const startDate = new Date();
|
||||||
startDate.setDate(startDate.getDate() - 90);
|
startDate.setDate(startDate.getDate() - 90);
|
||||||
|
|
||||||
logger.info(`Generating data from ${startDate.toISOString().split('T')[0]} to ${endDate.toISOString().split('T')[0]}`);
|
console.log(`Generating data from ${startDate.toISOString().split('T')[0]} to ${endDate.toISOString().split('T')[0]}`);
|
||||||
|
|
||||||
confirmAction();
|
confirmAction();
|
||||||
|
|
||||||
|
|
@ -125,9 +122,9 @@ export const injectAuditData: Script = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`\nAudit data injection complete!`);
|
console.log(`\nAudit data injection complete!`);
|
||||||
logger.info(`Users: ${userIds.length}`);
|
console.log(`Users: ${userIds.length}`);
|
||||||
logger.info(`Date range: ${startDate.toISOString().split('T')[0]} to ${endDate.toISOString().split('T')[0]}`);
|
console.log(`Date range: ${startDate.toISOString().split('T')[0]} to ${endDate.toISOString().split('T')[0]}`);
|
||||||
|
|
||||||
// Show some statistics
|
// Show some statistics
|
||||||
const stats = await prisma.audit.groupBy({
|
const stats = await prisma.audit.groupBy({
|
||||||
|
|
@ -136,9 +133,9 @@ export const injectAuditData: Script = {
|
||||||
_count: { action: true }
|
_count: { action: true }
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.info('\nAction breakdown:');
|
console.log('\nAction breakdown:');
|
||||||
stats.forEach(stat => {
|
stats.forEach(stat => {
|
||||||
logger.info(` ${stat.action}: ${stat._count.action}`);
|
console.log(` ${stat.action}: ${stat._count.action}`);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
import { Script } from "../scriptRunner";
|
import { Script } from "../scriptRunner";
|
||||||
import { PrismaClient } from "../../dist";
|
import { PrismaClient } from "../../dist";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
|
|
||||||
const logger = createLogger('inject-repo-data');
|
|
||||||
|
|
||||||
const NUM_REPOS = 100000;
|
const NUM_REPOS = 100000;
|
||||||
|
|
||||||
|
|
@ -35,7 +32,7 @@ export const injectRepoData: Script = {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
logger.info(`Creating ${NUM_REPOS} repos...`);
|
console.log(`Creating ${NUM_REPOS} repos...`);
|
||||||
|
|
||||||
for (let i = 0; i < NUM_REPOS; i++) {
|
for (let i = 0; i < NUM_REPOS; i++) {
|
||||||
await prisma.repo.create({
|
await prisma.repo.create({
|
||||||
|
|
@ -59,6 +56,6 @@ export const injectRepoData: Script = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`Created ${NUM_REPOS} repos.`);
|
console.log(`Created ${NUM_REPOS} repos.`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
import { Script } from "../scriptRunner";
|
import { Script } from "../scriptRunner";
|
||||||
import { PrismaClient } from "../../dist";
|
import { PrismaClient } from "../../dist";
|
||||||
import { confirmAction } from "../utils";
|
import { confirmAction } from "../utils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
|
|
||||||
const logger = createLogger('migrate-duplicate-connections');
|
|
||||||
|
|
||||||
// Handles duplicate connections by renaming them to be unique.
|
// Handles duplicate connections by renaming them to be unique.
|
||||||
// @see: 20250320215449_unique_connection_name_constraint_within_org
|
// @see: 20250320215449_unique_connection_name_constraint_within_org
|
||||||
|
|
@ -18,7 +15,7 @@ export const migrateDuplicateConnections: Script = {
|
||||||
},
|
},
|
||||||
})).filter(({ _count }) => _count._all > 1);
|
})).filter(({ _count }) => _count._all > 1);
|
||||||
|
|
||||||
logger.info(`Found ${duplicates.reduce((acc, { _count }) => acc + _count._all, 0)} duplicate connections.`);
|
console.log(`Found ${duplicates.reduce((acc, { _count }) => acc + _count._all, 0)} duplicate connections.`);
|
||||||
|
|
||||||
confirmAction();
|
confirmAction();
|
||||||
|
|
||||||
|
|
@ -40,7 +37,7 @@ export const migrateDuplicateConnections: Script = {
|
||||||
const connection = connections[i];
|
const connection = connections[i];
|
||||||
const newName = `${name}-${i + 1}`;
|
const newName = `${name}-${i + 1}`;
|
||||||
|
|
||||||
logger.info(`Migrating connection with id ${connection.id} from name=${name} to name=${newName}`);
|
console.log(`Migrating connection with id ${connection.id} from name=${name} to name=${newName}`);
|
||||||
|
|
||||||
await prisma.connection.update({
|
await prisma.connection.update({
|
||||||
where: { id: connection.id },
|
where: { id: connection.id },
|
||||||
|
|
@ -50,6 +47,6 @@ export const migrateDuplicateConnections: Script = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`Migrated ${migrated} connections.`);
|
console.log(`Migrated ${migrated} connections.`);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
import { Script } from "../scriptRunner";
|
import { Script } from "../scriptRunner";
|
||||||
import { PrismaClient } from "../../dist";
|
import { PrismaClient } from "../../dist";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
|
|
||||||
const logger = createLogger('test-repo-query-perf');
|
|
||||||
|
|
||||||
export const testRepoQueryPerf: Script = {
|
export const testRepoQueryPerf: Script = {
|
||||||
run: async (prisma: PrismaClient) => {
|
run: async (prisma: PrismaClient) => {
|
||||||
|
|
@ -23,6 +20,6 @@ export const testRepoQueryPerf: Script = {
|
||||||
});
|
});
|
||||||
|
|
||||||
const durationMs = Date.now() - start;
|
const durationMs = Date.now() - start;
|
||||||
logger.info(`Found ${allRepos.length} repos in ${durationMs}ms`);
|
console.log(`Found ${allRepos.length} repos in ${durationMs}ms`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -1,17 +1,14 @@
|
||||||
import readline from 'readline-sync';
|
import readline from 'readline-sync';
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
|
|
||||||
const logger = createLogger('db-utils');
|
|
||||||
|
|
||||||
export const confirmAction = (message: string = "Are you sure you want to proceed? [N/y]") => {
|
export const confirmAction = (message: string = "Are you sure you want to proceed? [N/y]") => {
|
||||||
const response = readline.question(message).toLowerCase();
|
const response = readline.question(message).toLowerCase();
|
||||||
if (response !== 'y') {
|
if (response !== 'y') {
|
||||||
logger.info("Aborted.");
|
console.log("Aborted.");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const abort = () => {
|
export const abort = () => {
|
||||||
logger.info("Aborted.");
|
console.log("Aborted.");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
2
packages/logger/.gitignore
vendored
2
packages/logger/.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
dist/
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@sourcebot/logger",
|
|
||||||
"version": "0.1.0",
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"type": "module",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsc",
|
|
||||||
"postinstall": "yarn build"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@logtail/node": "^0.5.2",
|
|
||||||
"@logtail/winston": "^0.5.2",
|
|
||||||
"@t3-oss/env-core": "^0.12.0",
|
|
||||||
"dotenv": "^16.4.5",
|
|
||||||
"triple-beam": "^1.4.1",
|
|
||||||
"winston": "^3.15.0",
|
|
||||||
"zod": "^3.24.3"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^22.7.5",
|
|
||||||
"typescript": "^5.7.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
import { createEnv } from "@t3-oss/env-core";
|
|
||||||
import { z } from "zod";
|
|
||||||
import dotenv from 'dotenv';
|
|
||||||
|
|
||||||
// Booleans are specified as 'true' or 'false' strings.
|
|
||||||
const booleanSchema = z.enum(["true", "false"]);
|
|
||||||
|
|
||||||
dotenv.config({
|
|
||||||
path: './.env',
|
|
||||||
});
|
|
||||||
|
|
||||||
dotenv.config({
|
|
||||||
path: './.env.local',
|
|
||||||
override: true
|
|
||||||
});
|
|
||||||
|
|
||||||
export const env = createEnv({
|
|
||||||
server: {
|
|
||||||
SOURCEBOT_LOG_LEVEL: z.enum(["info", "debug", "warn", "error"]).default("info"),
|
|
||||||
SOURCEBOT_STRUCTURED_LOGGING_ENABLED: booleanSchema.default("false"),
|
|
||||||
SOURCEBOT_STRUCTURED_LOGGING_FILE: z.string().optional(),
|
|
||||||
LOGTAIL_TOKEN: z.string().optional(),
|
|
||||||
LOGTAIL_HOST: z.string().url().optional(),
|
|
||||||
},
|
|
||||||
runtimeEnv: process.env,
|
|
||||||
emptyStringAsUndefined: true,
|
|
||||||
skipValidation: process.env.SKIP_ENV_VALIDATION === "1",
|
|
||||||
});
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2022",
|
|
||||||
"module": "Node16",
|
|
||||||
"moduleResolution": "Node16",
|
|
||||||
"lib": ["ES2023"],
|
|
||||||
"outDir": "dist",
|
|
||||||
"rootDir": "src",
|
|
||||||
"declaration": true,
|
|
||||||
"declarationMap": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"strict": true,
|
|
||||||
"noImplicitAny": true,
|
|
||||||
"strictNullChecks": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"resolveJsonModule": true
|
|
||||||
},
|
|
||||||
"include": ["src/**/*"],
|
|
||||||
"exclude": ["node_modules", "dist"]
|
|
||||||
}
|
|
||||||
|
|
@ -9,14 +9,17 @@
|
||||||
"postinstall": "yarn build"
|
"postinstall": "yarn build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@logtail/node": "^0.5.2",
|
||||||
|
"@logtail/winston": "^0.5.2",
|
||||||
"@sourcebot/crypto": "workspace:*",
|
"@sourcebot/crypto": "workspace:*",
|
||||||
"@sourcebot/db": "workspace:*",
|
"@sourcebot/db": "workspace:*",
|
||||||
"@sourcebot/logger": "workspace:*",
|
|
||||||
"@sourcebot/schemas": "workspace:*",
|
"@sourcebot/schemas": "workspace:*",
|
||||||
"@t3-oss/env-core": "^0.12.0",
|
"@t3-oss/env-core": "^0.12.0",
|
||||||
"ajv": "^8.17.1",
|
"ajv": "^8.17.1",
|
||||||
"micromatch": "^4.0.8",
|
"micromatch": "^4.0.8",
|
||||||
"strip-json-comments": "^5.0.1",
|
"strip-json-comments": "^5.0.1",
|
||||||
|
"triple-beam": "^1.4.1",
|
||||||
|
"winston": "^3.15.0",
|
||||||
"zod": "^3.24.3"
|
"zod": "^3.24.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { base64Decode } from "./utils.js";
|
import { base64Decode } from "./utils.js";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "./logger.js";
|
||||||
import { verifySignature } from "@sourcebot/crypto";
|
import { verifySignature } from "@sourcebot/crypto";
|
||||||
import { env } from "./env.js";
|
import { env } from "./env.js";
|
||||||
import { SOURCEBOT_SUPPORT_EMAIL, SOURCEBOT_UNLIMITED_SEATS } from "./constants.js";
|
import { SOURCEBOT_SUPPORT_EMAIL, SOURCEBOT_UNLIMITED_SEATS } from "./constants.js";
|
||||||
|
|
|
||||||
|
|
@ -72,16 +72,13 @@ export const env = createEnv({
|
||||||
FALLBACK_GITLAB_CLOUD_TOKEN: z.string().optional(),
|
FALLBACK_GITLAB_CLOUD_TOKEN: z.string().optional(),
|
||||||
FALLBACK_GITEA_CLOUD_TOKEN: z.string().optional(),
|
FALLBACK_GITEA_CLOUD_TOKEN: z.string().optional(),
|
||||||
|
|
||||||
REDIS_URL: z.string().url(),
|
REDIS_URL: z.string().url().default("redis://localhost:6379"),
|
||||||
REDIS_REMOVE_ON_COMPLETE: numberSchema.default(0),
|
REDIS_REMOVE_ON_COMPLETE: numberSchema.default(0),
|
||||||
REDIS_REMOVE_ON_FAIL: numberSchema.default(100),
|
REDIS_REMOVE_ON_FAIL: numberSchema.default(100),
|
||||||
|
|
||||||
LOGTAIL_TOKEN: z.string().optional(),
|
|
||||||
LOGTAIL_HOST: z.string().url().optional(),
|
|
||||||
SOURCEBOT_LOG_LEVEL: z.enum(["info", "debug", "warn", "error"]).default("info"),
|
|
||||||
DEBUG_ENABLE_GROUPMQ_LOGGING: booleanSchema.default('false'),
|
DEBUG_ENABLE_GROUPMQ_LOGGING: booleanSchema.default('false'),
|
||||||
|
|
||||||
DATABASE_URL: z.string().url(),
|
DATABASE_URL: z.string().url().default("postgresql://postgres:postgres@localhost:5432/postgres"),
|
||||||
CONFIG_PATH: z.string(),
|
CONFIG_PATH: z.string(),
|
||||||
|
|
||||||
CONNECTION_MANAGER_UPSERT_TIMEOUT_MS: numberSchema.default(300000),
|
CONNECTION_MANAGER_UPSERT_TIMEOUT_MS: numberSchema.default(300000),
|
||||||
|
|
@ -92,6 +89,12 @@ export const env = createEnv({
|
||||||
EXPERIMENT_EE_PERMISSION_SYNC_ENABLED: booleanSchema.default('false'),
|
EXPERIMENT_EE_PERMISSION_SYNC_ENABLED: booleanSchema.default('false'),
|
||||||
AUTH_EE_GITHUB_BASE_URL: z.string().optional(),
|
AUTH_EE_GITHUB_BASE_URL: z.string().optional(),
|
||||||
AUTH_EE_GITLAB_BASE_URL: z.string().default("https://gitlab.com"),
|
AUTH_EE_GITLAB_BASE_URL: z.string().default("https://gitlab.com"),
|
||||||
|
|
||||||
|
SOURCEBOT_LOG_LEVEL: z.enum(["info", "debug", "warn", "error"]).default("info"),
|
||||||
|
SOURCEBOT_STRUCTURED_LOGGING_ENABLED: booleanSchema.default("false"),
|
||||||
|
SOURCEBOT_STRUCTURED_LOGGING_FILE: z.string().optional(),
|
||||||
|
LOGTAIL_TOKEN: z.string().optional(),
|
||||||
|
LOGTAIL_HOST: z.string().url().optional(),
|
||||||
},
|
},
|
||||||
client: {
|
client: {
|
||||||
NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT: z.enum(SOURCEBOT_CLOUD_ENVIRONMENT).optional(),
|
NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT: z.enum(SOURCEBOT_CLOUD_ENVIRONMENT).optional(),
|
||||||
|
|
|
||||||
|
|
@ -28,3 +28,9 @@ export * from "./constants.js";
|
||||||
export {
|
export {
|
||||||
env
|
env
|
||||||
} from "./env.js";
|
} from "./env.js";
|
||||||
|
export {
|
||||||
|
createLogger,
|
||||||
|
} from "./logger.js";
|
||||||
|
export type {
|
||||||
|
Logger,
|
||||||
|
} from "./logger.js";
|
||||||
|
|
@ -16,7 +16,7 @@ import { env } from './env.js';
|
||||||
* - Logs will be formatted as: "timestamp level: [label] message"
|
* - Logs will be formatted as: "timestamp level: [label] message"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const { combine, colorize, timestamp, prettyPrint, errors, printf, label: labelFn, json } = format;
|
const { combine, colorize, timestamp, errors, printf, label: labelFn, json } = format;
|
||||||
|
|
||||||
const datadogFormat = format((info) => {
|
const datadogFormat = format((info) => {
|
||||||
info.status = info.level.toLowerCase();
|
info.status = info.level.toLowerCase();
|
||||||
|
|
@ -93,7 +93,6 @@
|
||||||
"@sourcebot/crypto": "workspace:*",
|
"@sourcebot/crypto": "workspace:*",
|
||||||
"@sourcebot/db": "workspace:*",
|
"@sourcebot/db": "workspace:*",
|
||||||
"@sourcebot/error": "workspace:*",
|
"@sourcebot/error": "workspace:*",
|
||||||
"@sourcebot/logger": "workspace:*",
|
|
||||||
"@sourcebot/schemas": "workspace:*",
|
"@sourcebot/schemas": "workspace:*",
|
||||||
"@sourcebot/shared": "workspace:*",
|
"@sourcebot/shared": "workspace:*",
|
||||||
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
|
"@ssddanbrown/codemirror-lang-twig": "^1.0.0",
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
|
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
|
||||||
|
|
||||||
import * as Sentry from "@sentry/nextjs";
|
import * as Sentry from "@sentry/nextjs";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('sentry-server-config');
|
const logger = createLogger('sentry-server-config');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import { render } from "@react-email/components";
|
||||||
import * as Sentry from '@sentry/nextjs';
|
import * as Sentry from '@sentry/nextjs';
|
||||||
import { generateApiKey, getTokenFromConfig, hashSecret } from "@sourcebot/crypto";
|
import { generateApiKey, getTokenFromConfig, hashSecret } from "@sourcebot/crypto";
|
||||||
import { ApiKey, ConnectionSyncJobStatus, Org, OrgRole, Prisma, RepoIndexingJobStatus, RepoIndexingJobType, StripeSubscriptionStatus } from "@sourcebot/db";
|
import { ApiKey, ConnectionSyncJobStatus, Org, OrgRole, Prisma, RepoIndexingJobStatus, RepoIndexingJobType, StripeSubscriptionStatus } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { GiteaConnectionConfig } from "@sourcebot/schemas/v3/gitea.type";
|
import { GiteaConnectionConfig } from "@sourcebot/schemas/v3/gitea.type";
|
||||||
import { GithubConnectionConfig } from "@sourcebot/schemas/v3/github.type";
|
import { GithubConnectionConfig } from "@sourcebot/schemas/v3/github.type";
|
||||||
import { GitlabConnectionConfig } from "@sourcebot/schemas/v3/gitlab.type";
|
import { GitlabConnectionConfig } from "@sourcebot/schemas/v3/gitlab.type";
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import { prisma } from "@/prisma";
|
||||||
import { LanguageModelV2 as AISDKLanguageModelV2 } from "@ai-sdk/provider";
|
import { LanguageModelV2 as AISDKLanguageModelV2 } from "@ai-sdk/provider";
|
||||||
import * as Sentry from "@sentry/nextjs";
|
import * as Sentry from "@sentry/nextjs";
|
||||||
import { OrgRole } from "@sourcebot/db";
|
import { OrgRole } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import {
|
import {
|
||||||
createUIMessageStream,
|
createUIMessageStream,
|
||||||
createUIMessageStreamResponse,
|
createUIMessageStreamResponse,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { withAuthV2, withMinimumOrgRole } from "@/withAuthV2";
|
||||||
import { OrgRole } from "@sourcebot/db";
|
import { OrgRole } from "@sourcebot/db";
|
||||||
import { isServiceError } from "@/lib/utils";
|
import { isServiceError } from "@/lib/utils";
|
||||||
import { serviceErrorResponse, missingQueryParam, notFound } from "@/lib/serviceError";
|
import { serviceErrorResponse, missingQueryParam, notFound } from "@/lib/serviceError";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { NextRequest } from "next/server";
|
import { NextRequest } from "next/server";
|
||||||
import { StatusCodes } from "http-status-codes";
|
import { StatusCodes } from "http-status-codes";
|
||||||
import { ErrorCode } from "@/lib/errorCodes";
|
import { ErrorCode } from "@/lib/errorCodes";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { withAuthV2, withMinimumOrgRole } from "@/withAuthV2";
|
||||||
import { OrgRole } from "@sourcebot/db";
|
import { OrgRole } from "@sourcebot/db";
|
||||||
import { isServiceError } from "@/lib/utils";
|
import { isServiceError } from "@/lib/utils";
|
||||||
import { serviceErrorResponse } from "@/lib/serviceError";
|
import { serviceErrorResponse } from "@/lib/serviceError";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { getAuditService } from "@/ee/features/audit/factory";
|
import { getAuditService } from "@/ee/features/audit/factory";
|
||||||
|
|
||||||
const logger = createLogger('ee-users-api');
|
const logger = createLogger('ee-users-api');
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use server';
|
'use server';
|
||||||
|
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('health-check');
|
const logger = createLogger('health-check');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { prisma } from '@/prisma';
|
||||||
import { StripeSubscriptionStatus } from '@sourcebot/db';
|
import { StripeSubscriptionStatus } from '@sourcebot/db';
|
||||||
import { stripeClient } from '@/ee/features/billing/stripe';
|
import { stripeClient } from '@/ee/features/billing/stripe';
|
||||||
import { env } from '@/env.mjs';
|
import { env } from '@/env.mjs';
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('stripe-webhook');
|
const logger = createLogger('stripe-webhook');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import { processGitHubPullRequest } from "@/features/agents/review-agent/app";
|
||||||
import { throttling } from "@octokit/plugin-throttling";
|
import { throttling } from "@octokit/plugin-throttling";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('github-webhook');
|
const logger = createLogger('github-webhook');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,9 @@ import { auth } from "@/auth";
|
||||||
import { LoginForm } from "../login/components/loginForm";
|
import { LoginForm } from "../login/components/loginForm";
|
||||||
import { redirect } from "next/navigation";
|
import { redirect } from "next/navigation";
|
||||||
import { Footer } from "@/app/components/footer";
|
import { Footer } from "@/app/components/footer";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
import { getIdentityProviderMetadata } from "@/lib/identityProviders";
|
import { getIdentityProviderMetadata } from "@/lib/identityProviders";
|
||||||
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
import { getAuthProviders } from "@/lib/authProviders";
|
||||||
import { getOrgFromDomain } from "@/data/org";
|
import { getOrgFromDomain } from "@/data/org";
|
||||||
import { SINGLE_TENANT_ORG_DOMAIN } from "@/lib/constants";
|
import { SINGLE_TENANT_ORG_DOMAIN } from "@/lib/constants";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { ErrorCode } from "@/lib/errorCodes";
|
||||||
import { StatusCodes } from "http-status-codes";
|
import { StatusCodes } from "http-status-codes";
|
||||||
import { sew, withAuth, withOrgMembership } from "@/actions";
|
import { sew, withAuth, withOrgMembership } from "@/actions";
|
||||||
import { OrgRole } from "@sourcebot/db";
|
import { OrgRole } from "@sourcebot/db";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { ServiceError } from "@/lib/serviceError";
|
import { ServiceError } from "@/lib/serviceError";
|
||||||
import { getAuditService } from "@/ee/features/audit/factory";
|
import { getAuditService } from "@/ee/features/audit/factory";
|
||||||
import { AuditEvent } from "./types";
|
import { AuditEvent } from "./types";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { IAuditService, AuditEvent } from '@/ee/features/audit/types';
|
import { IAuditService, AuditEvent } from '@/ee/features/audit/types';
|
||||||
import { prisma } from '@/prisma';
|
import { prisma } from '@/prisma';
|
||||||
import { Audit } from '@prisma/client';
|
import { Audit } from '@prisma/client';
|
||||||
import { createLogger } from '@sourcebot/logger';
|
import { createLogger } from '@sourcebot/shared';
|
||||||
|
|
||||||
const logger = createLogger('audit-service');
|
const logger = createLogger('audit-service');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import { StatusCodes } from "http-status-codes";
|
||||||
import { ErrorCode } from "@/lib/errorCodes";
|
import { ErrorCode } from "@/lib/errorCodes";
|
||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
import { getSubscriptionForOrg } from "./serverUtils";
|
import { getSubscriptionForOrg } from "./serverUtils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('billing-actions');
|
const logger = createLogger('billing-actions');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ import Credentials from "next-auth/providers/credentials";
|
||||||
import type { User as AuthJsUser } from "next-auth";
|
import type { User as AuthJsUser } from "next-auth";
|
||||||
import type { Provider } from "next-auth/providers";
|
import type { Provider } from "next-auth/providers";
|
||||||
import { onCreateUser } from "@/lib/authUtils";
|
import { onCreateUser } from "@/lib/authUtils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
|
||||||
import { hasEntitlement, loadConfig } from "@sourcebot/shared";
|
import { hasEntitlement, loadConfig } from "@sourcebot/shared";
|
||||||
import { getTokenFromConfig } from "@sourcebot/crypto";
|
import { getTokenFromConfig } from "@sourcebot/crypto";
|
||||||
import type { IdentityProvider } from "@/auth";
|
import type { IdentityProvider } from "@/auth";
|
||||||
import { GCPIAPIdentityProviderConfig, GitHubIdentityProviderConfig, GitLabIdentityProviderConfig, GoogleIdentityProviderConfig, KeycloakIdentityProviderConfig, MicrosoftEntraIDIdentityProviderConfig, OktaIdentityProviderConfig } from "@sourcebot/schemas/v3/index.type";
|
import { GCPIAPIdentityProviderConfig, GitHubIdentityProviderConfig, GitLabIdentityProviderConfig, GoogleIdentityProviderConfig, KeycloakIdentityProviderConfig, MicrosoftEntraIDIdentityProviderConfig, OktaIdentityProviderConfig } from "@sourcebot/schemas/v3/index.type";
|
||||||
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('web-sso');
|
const logger = createLogger('web-sso');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import { env } from "@/env.mjs";
|
||||||
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const rules = [
|
const rules = [
|
||||||
"Do NOT provide general feedback, summaries, explanations of changes, or praises for making good additions.",
|
"Do NOT provide general feedback, summaries, explanations of changes, or praises for making good additions.",
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { sourcebot_context, sourcebot_pr_payload } from "@/features/agents/revie
|
||||||
import { getFileSource } from "@/features/search/fileSourceApi";
|
import { getFileSource } from "@/features/search/fileSourceApi";
|
||||||
import { fileSourceResponseSchema } from "@/features/search/schemas";
|
import { fileSourceResponseSchema } from "@/features/search/schemas";
|
||||||
import { isServiceError } from "@/lib/utils";
|
import { isServiceError } from "@/lib/utils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('fetch-file-content');
|
const logger = createLogger('fetch-file-content');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { sourcebot_diff, sourcebot_context, sourcebot_file_diff_review_schema } from "@/features/agents/review-agent/types";
|
import { sourcebot_diff, sourcebot_context, sourcebot_file_diff_review_schema } from "@/features/agents/review-agent/types";
|
||||||
import { zodToJsonSchema } from "zod-to-json-schema";
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('generate-diff-review-prompt');
|
const logger = createLogger('generate-diff-review-prompt');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { sourcebot_pr_payload, sourcebot_diff_review, sourcebot_file_diff_review
|
||||||
import { generateDiffReviewPrompt } from "@/features/agents/review-agent/nodes/generateDiffReviewPrompt";
|
import { generateDiffReviewPrompt } from "@/features/agents/review-agent/nodes/generateDiffReviewPrompt";
|
||||||
import { invokeDiffReviewLlm } from "@/features/agents/review-agent/nodes/invokeDiffReviewLlm";
|
import { invokeDiffReviewLlm } from "@/features/agents/review-agent/nodes/invokeDiffReviewLlm";
|
||||||
import { fetchFileContent } from "@/features/agents/review-agent/nodes/fetchFileContent";
|
import { fetchFileContent } from "@/features/agents/review-agent/nodes/fetchFileContent";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('generate-pr-review');
|
const logger = createLogger('generate-pr-review');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { sourcebot_pr_payload, sourcebot_file_diff, sourcebot_diff } from "@/fea
|
||||||
import parse from "parse-diff";
|
import parse from "parse-diff";
|
||||||
import { Octokit } from "octokit";
|
import { Octokit } from "octokit";
|
||||||
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
import { GitHubPullRequest } from "@/features/agents/review-agent/types";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('github-pr-parser');
|
const logger = createLogger('github-pr-parser');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { Octokit } from "octokit";
|
import { Octokit } from "octokit";
|
||||||
import { sourcebot_pr_payload, sourcebot_file_diff_review } from "@/features/agents/review-agent/types";
|
import { sourcebot_pr_payload, sourcebot_file_diff_review } from "@/features/agents/review-agent/types";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('github-push-pr-reviews');
|
const logger = createLogger('github-push-pr-reviews');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import OpenAI from "openai";
|
||||||
import { sourcebot_file_diff_review, sourcebot_file_diff_review_schema } from "@/features/agents/review-agent/types";
|
import { sourcebot_file_diff_review, sourcebot_file_diff_review_schema } from "@/features/agents/review-agent/types";
|
||||||
import { env } from "@/env.mjs";
|
import { env } from "@/env.mjs";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
|
|
||||||
const logger = createLogger('invoke-diff-review-llm');
|
const logger = createLogger('invoke-diff-review-llm');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { env } from "@/env.mjs";
|
||||||
import { getFileSource } from "@/features/search/fileSourceApi";
|
import { getFileSource } from "@/features/search/fileSourceApi";
|
||||||
import { isServiceError } from "@/lib/utils";
|
import { isServiceError } from "@/lib/utils";
|
||||||
import { ProviderOptions } from "@ai-sdk/provider-utils";
|
import { ProviderOptions } from "@ai-sdk/provider-utils";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { LanguageModel, ModelMessage, StopCondition, streamText } from "ai";
|
import { LanguageModel, ModelMessage, StopCondition, streamText } from "ai";
|
||||||
import { ANSWER_TAG, FILE_REFERENCE_PREFIX, toolNames } from "./constants";
|
import { ANSWER_TAG, FILE_REFERENCE_PREFIX, toolNames } from "./constants";
|
||||||
import { createCodeSearchTool, findSymbolDefinitionsTool, findSymbolReferencesTool, readFilesTool, searchReposTool, listAllReposTool } from "./tools";
|
import { createCodeSearchTool, findSymbolDefinitionsTool, findSymbolReferencesTool, readFilesTool, searchReposTool, listAllReposTool } from "./tools";
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { env } from '@/env.mjs';
|
||||||
import { notFound, unexpectedError } from '@/lib/serviceError';
|
import { notFound, unexpectedError } from '@/lib/serviceError';
|
||||||
import { withOptionalAuthV2 } from '@/withAuthV2';
|
import { withOptionalAuthV2 } from '@/withAuthV2';
|
||||||
import { Repo } from '@sourcebot/db';
|
import { Repo } from '@sourcebot/db';
|
||||||
import { createLogger } from '@sourcebot/logger';
|
import { createLogger } from '@sourcebot/shared';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { simpleGit } from 'simple-git';
|
import { simpleGit } from 'simple-git';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { createGuestUser } from '@/lib/authUtils';
|
||||||
import { SOURCEBOT_SUPPORT_EMAIL } from "@/lib/constants";
|
import { SOURCEBOT_SUPPORT_EMAIL } from "@/lib/constants";
|
||||||
import { prisma } from "@/prisma";
|
import { prisma } from "@/prisma";
|
||||||
import { OrgRole } from '@sourcebot/db';
|
import { OrgRole } from '@sourcebot/db';
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { hasEntitlement, loadConfig } from '@sourcebot/shared';
|
import { hasEntitlement, loadConfig } from '@sourcebot/shared';
|
||||||
import { getOrgFromDomain } from './data/org';
|
import { getOrgFromDomain } from './data/org';
|
||||||
import { env } from './env.mjs';
|
import { env } from './env.mjs';
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { SINGLE_TENANT_ORG_ID, SOURCEBOT_GUEST_USER_EMAIL, SOURCEBOT_GUEST_USER_
|
||||||
import { getPlan, getSeats, hasEntitlement, SOURCEBOT_UNLIMITED_SEATS } from "@sourcebot/shared";
|
import { getPlan, getSeats, hasEntitlement, SOURCEBOT_UNLIMITED_SEATS } from "@sourcebot/shared";
|
||||||
import { isServiceError } from "@/lib/utils";
|
import { isServiceError } from "@/lib/utils";
|
||||||
import { orgNotFound, ServiceError, userNotFound } from "@/lib/serviceError";
|
import { orgNotFound, ServiceError, userNotFound } from "@/lib/serviceError";
|
||||||
import { createLogger } from "@sourcebot/logger";
|
import { createLogger } from "@sourcebot/shared";
|
||||||
import { getAuditService } from "@/ee/features/audit/factory";
|
import { getAuditService } from "@/ee/features/audit/factory";
|
||||||
import { StatusCodes } from "http-status-codes";
|
import { StatusCodes } from "http-status-codes";
|
||||||
import { ErrorCode } from "./errorCodes";
|
import { ErrorCode } from "./errorCodes";
|
||||||
|
|
|
||||||
24
yarn.lock
24
yarn.lock
|
|
@ -7896,7 +7896,6 @@ __metadata:
|
||||||
"@sourcebot/crypto": "workspace:*"
|
"@sourcebot/crypto": "workspace:*"
|
||||||
"@sourcebot/db": "workspace:*"
|
"@sourcebot/db": "workspace:*"
|
||||||
"@sourcebot/error": "workspace:*"
|
"@sourcebot/error": "workspace:*"
|
||||||
"@sourcebot/logger": "workspace:*"
|
|
||||||
"@sourcebot/schemas": "workspace:*"
|
"@sourcebot/schemas": "workspace:*"
|
||||||
"@sourcebot/shared": "workspace:*"
|
"@sourcebot/shared": "workspace:*"
|
||||||
"@t3-oss/env-core": "npm:^0.12.0"
|
"@t3-oss/env-core": "npm:^0.12.0"
|
||||||
|
|
@ -7964,7 +7963,6 @@ __metadata:
|
||||||
resolution: "@sourcebot/db@workspace:packages/db"
|
resolution: "@sourcebot/db@workspace:packages/db"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@prisma/client": "npm:6.2.1"
|
"@prisma/client": "npm:6.2.1"
|
||||||
"@sourcebot/logger": "workspace:*"
|
|
||||||
"@types/argparse": "npm:^2.0.16"
|
"@types/argparse": "npm:^2.0.16"
|
||||||
"@types/readline-sync": "npm:^1.4.8"
|
"@types/readline-sync": "npm:^1.4.8"
|
||||||
argparse: "npm:^2.0.1"
|
argparse: "npm:^2.0.1"
|
||||||
|
|
@ -7984,22 +7982,6 @@ __metadata:
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
"@sourcebot/logger@workspace:*, @sourcebot/logger@workspace:packages/logger":
|
|
||||||
version: 0.0.0-use.local
|
|
||||||
resolution: "@sourcebot/logger@workspace:packages/logger"
|
|
||||||
dependencies:
|
|
||||||
"@logtail/node": "npm:^0.5.2"
|
|
||||||
"@logtail/winston": "npm:^0.5.2"
|
|
||||||
"@t3-oss/env-core": "npm:^0.12.0"
|
|
||||||
"@types/node": "npm:^22.7.5"
|
|
||||||
dotenv: "npm:^16.4.5"
|
|
||||||
triple-beam: "npm:^1.4.1"
|
|
||||||
typescript: "npm:^5.7.3"
|
|
||||||
winston: "npm:^3.15.0"
|
|
||||||
zod: "npm:^3.24.3"
|
|
||||||
languageName: unknown
|
|
||||||
linkType: soft
|
|
||||||
|
|
||||||
"@sourcebot/mcp@workspace:packages/mcp":
|
"@sourcebot/mcp@workspace:packages/mcp":
|
||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@sourcebot/mcp@workspace:packages/mcp"
|
resolution: "@sourcebot/mcp@workspace:packages/mcp"
|
||||||
|
|
@ -8036,9 +8018,10 @@ __metadata:
|
||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@sourcebot/shared@workspace:packages/shared"
|
resolution: "@sourcebot/shared@workspace:packages/shared"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
"@logtail/node": "npm:^0.5.2"
|
||||||
|
"@logtail/winston": "npm:^0.5.2"
|
||||||
"@sourcebot/crypto": "workspace:*"
|
"@sourcebot/crypto": "workspace:*"
|
||||||
"@sourcebot/db": "workspace:*"
|
"@sourcebot/db": "workspace:*"
|
||||||
"@sourcebot/logger": "workspace:*"
|
|
||||||
"@sourcebot/schemas": "workspace:*"
|
"@sourcebot/schemas": "workspace:*"
|
||||||
"@t3-oss/env-core": "npm:^0.12.0"
|
"@t3-oss/env-core": "npm:^0.12.0"
|
||||||
"@types/micromatch": "npm:^4.0.9"
|
"@types/micromatch": "npm:^4.0.9"
|
||||||
|
|
@ -8046,8 +8029,10 @@ __metadata:
|
||||||
ajv: "npm:^8.17.1"
|
ajv: "npm:^8.17.1"
|
||||||
micromatch: "npm:^4.0.8"
|
micromatch: "npm:^4.0.8"
|
||||||
strip-json-comments: "npm:^5.0.1"
|
strip-json-comments: "npm:^5.0.1"
|
||||||
|
triple-beam: "npm:^1.4.1"
|
||||||
tsc-watch: "npm:6.2.1"
|
tsc-watch: "npm:6.2.1"
|
||||||
typescript: "npm:^5.7.3"
|
typescript: "npm:^5.7.3"
|
||||||
|
winston: "npm:^3.15.0"
|
||||||
zod: "npm:^3.24.3"
|
zod: "npm:^3.24.3"
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
@ -8138,7 +8123,6 @@ __metadata:
|
||||||
"@sourcebot/crypto": "workspace:*"
|
"@sourcebot/crypto": "workspace:*"
|
||||||
"@sourcebot/db": "workspace:*"
|
"@sourcebot/db": "workspace:*"
|
||||||
"@sourcebot/error": "workspace:*"
|
"@sourcebot/error": "workspace:*"
|
||||||
"@sourcebot/logger": "workspace:*"
|
|
||||||
"@sourcebot/schemas": "workspace:*"
|
"@sourcebot/schemas": "workspace:*"
|
||||||
"@sourcebot/shared": "workspace:*"
|
"@sourcebot/shared": "workspace:*"
|
||||||
"@ssddanbrown/codemirror-lang-twig": "npm:^1.0.0"
|
"@ssddanbrown/codemirror-lang-twig": "npm:^1.0.0"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue