backend/package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "./dist/main.mjs",
"engines": {
"node": ">=26.0.0",
"npm": ">=11.10.0"
},
"scripts": {
"assets:export": "./scripts/export-assets.sh",
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "tsx watch --clear-screen=false ./src/main.ts --config tsconfig.dev.json | pino-pretty --colorize --colorizeObjects --singleLine",
"dev:docker": "tsx watch --clear-screen=false --tsconfig=./tsconfig.dev.json --inspect=0.0.0.0:9229 ./src/main.ts | pino-pretty --colorize --colorizeObjects --singleLine",
"build": "tsdown",
"build:frontend": "npm run build --prefix ../frontend",
"start": "node --enable-source-maps dist/main.mjs",
"type:check": "tsc --noEmit",
"lint:fix": "oxlint --type-aware --fix --max-warnings 0 src && oxfmt 'src/**/*.ts'",
"lint": "oxlint --type-aware --max-warnings 0 src && oxfmt --check 'src/**/*.ts'",
"test:unit": "vitest run -c vitest.unit.config.mts",
"test:e2e": "vitest run -c vitest.e2e.config.mts --bail=1",
"test:e2e-watch": "vitest -c vitest.e2e.config.mts --bail=1",
"test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.mts",
"test:bdd": "cd bdd && uv run behave",
"bake:announcements": "tsx ./scripts/bake-announcements.ts",
"generate:component": "tsx ./scripts/create-backend-file.ts",
"generate:schema": "tsx ./scripts/generate-schema-types.ts && oxfmt 'src/db/schemas/**/*.ts'",
"auditlog-migration:latest": "node ./dist/db/rename-migrations-to-mjs.mjs && knex --knexfile ./dist/db/auditlog-knexfile.mjs --client pg migrate:latest",
"auditlog-migration:up": "knex --knexfile ./dist/db/auditlog-knexfile.mjs --client pg migrate:up",
"auditlog-migration:down": "knex --knexfile ./dist/db/auditlog-knexfile.mjs --client pg migrate:down",
"auditlog-migration:list": "knex --knexfile ./dist/db/auditlog-knexfile.mjs --client pg migrate:list",
"auditlog-migration:status": "knex --knexfile ./dist/db/auditlog-knexfile.mjs --client pg migrate:status",
"auditlog-migration:unlock": "knex --knexfile ./dist/db/auditlog-knexfile.mjs migrate:unlock",
"auditlog-migration:rollback": "knex --knexfile ./dist/db/auditlog-knexfile.mjs migrate:rollback",
"clickhouse-migration:latest": "tsx ./src/db/run-clickhouse-migrations.ts",
"migration:new": "tsx ./scripts/create-migration.ts",
"migration:up": "npm run auditlog-migration:up && knex --knexfile ./dist/db/knexfile.mjs --client pg migrate:up",
"migration:down": "npm run auditlog-migration:down && knex --knexfile ./dist/db/knexfile.mjs --client pg migrate:down",
"migration:list": "npm run auditlog-migration:list && knex --knexfile ./dist/db/knexfile.mjs --client pg migrate:list",
"migration:latest": "node ./dist/db/rename-migrations-to-mjs.mjs && npm run auditlog-migration:latest && knex --knexfile ./dist/db/knexfile.mjs --client pg migrate:latest",
"migration:status": "npm run auditlog-migration:status && knex --knexfile ./dist/db/knexfile.mjs --client pg migrate:status",
"migration:rollback": "npm run auditlog-migration:rollback && knex --knexfile ./dist/db/knexfile.mjs migrate:rollback",
"migration:unlock": "npm run auditlog-migration:unlock && knex --knexfile ./dist/db/knexfile.mjs migrate:unlock",
"migration:up-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg migrate:up",
"migration:down-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg migrate:down",
"migration:list-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg migrate:list",
"migration:latest-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg migrate:latest",
"migration:status-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg migrate:status",
"migration:rollback-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts migrate:rollback",
"migration:unlock-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts migrate:unlock",
"migrate:org": "tsx ./scripts/migrate-organization.ts",
"seed:new": "tsx ./scripts/create-seed-file.ts",
"seed": "knex --knexfile ./dist/db/knexfile.mjs --client pg seed:run",
"seed-dev": "tsx ./node_modules/knex/bin/cli.js --knexfile ./src/db/knexfile.ts --client pg seed:run",
"seed-oidc": "tsx ./src/db/seed-oidc.ts",
"seed-ldap": "tsx ./src/db/seed-ldap.ts",
"seed-saml": "tsx ./src/db/seed-saml.ts",
"db:reset": "npm run migration:rollback -- --all && npm run migration:latest",
"email:dev": "email dev --dir src/services/smtp/emails",
"validate-upgrade-path": "tsx ./scripts/validate-upgrade-path-file.ts"
},
"keywords": [],
"author": "",
"license": "ISC",
"overrides": {
"cipher-base": "1.0.5",
"sha.js": "2.4.12",
"jws": "^4.0.1",
"qs": "$qs",
"glob": {
".": "^10.5.0",
"minimatch": {
"brace-expansion": "^2.1.2"
}
},
"cross-spawn": "^7.0.6",
"validator": "^13.15.22",
"react-email": {
"glob": "^11.1.0"
},
"nan": "^2.29.0",
"hono": "^4.12.12",
"@hono/node-server": "^1.19.13",
"vite": "^7.3.5",
"@xmldom/xmldom": "^0.8.13",
"lodash": "^4.18.0",
"tar": "^7.5.21",
"flatted": "^3.4.2",
"@octokit/request-error": "^5.1.1",
"fast-uri": "^3.1.5",
"undici": "^7.29.0",
"ws": "^8.20.1",
"fast-xml-parser": "^5.7.0",
"path-to-regexp": "^8.4.0",
"protobufjs": "^7.6.5",
"dompurify": "^3.4.9",
"js-yaml": "$js-yaml",
"@grpc/grpc-js": "^1.14.4",
"fast-xml-builder": "^1.1.7",
"form-data": "^4.0.6",
"find-my-way": "^9.7.0",
"body-parser": "^1.20.6",
"shell-quote": "^1.9.0",
"websocket-driver": "^0.7.5",
"botbuilder": {
"uuid": "^11.1.1"
},
"google-auth-library": {
"uuid": "^11.1.1"
},
"jsforce": {
"csv-parse": "^7.0.2"
},
"@azure/identity": {
"@azure/msal-node": "^7.1.0"
}
},
"devDependencies": {
"@react-email/preview-server": "^5.0.6",
"@smithy/types": "^4.3.1",
"@types/bcrypt": "^5.0.2",
"@types/dns-packet": "^5.6.5",
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.5",
"@types/jsrp": "^0.2.6",
"@types/libsodium-wrappers": "^0.7.13",
"@types/lodash.isequal": "^4.5.8",
"@types/netmask": "^2.0.6",
"@types/node": "^26.0.0",
"@types/oracledb": "^6.10.0",
"@types/passport-google-oauth20": "^2.0.14",
"@types/pg": "^8.10.9",
"@types/picomatch": "^2.3.3",
"@types/pkcs11js": "^1.0.4",
"@types/prompt-sync": "^4.2.3",
"@types/qs": "^6.15.1",
"@types/react": "^19.1.2",
"@types/resolve": "^1.20.6",
"@types/safe-regex": "^1.1.6",
"@types/sjcl": "^1.0.34",
"@types/ssh2": "^1.15.5",
"@types/uuid": "^9.0.7",
"nock": "^14.0.10",
"oxfmt": "^0.74.0",
"oxlint": "^1.89.0",
"oxlint-tsgolint": "^7.0.2004",
"pino-pretty": "^10.2.3",
"prompt-sync": "^4.2.0",
"react-email": "^5.0.6",
"tsdown": "0.23.0",
"tsx": "^4.23.15",
"typescript": "^7.0.2",
"vitest": "^3.2.6"
},
"dependencies": {
"@aws-sdk/client-acm": "^3.1030.0",
"@aws-sdk/client-acm-pca": "^3.992.0",
"@aws-sdk/client-cloudformation": "^3.1038.0",
"@aws-sdk/client-elastic-load-balancing-v2": "^3.1015.0",
"@aws-sdk/client-elasticache": "^3.637.0",
"@aws-sdk/client-iam": "^3.525.0",
"@aws-sdk/client-kms": "^3.609.0",
"@aws-sdk/client-memorydb": "^3.637.0",
"@aws-sdk/client-route-53": "^3.810.0",
"@aws-sdk/client-s3": "^3.1020.0",
"@aws-sdk/client-secrets-manager": "^3.504.0",
"@aws-sdk/client-ssm": "^3.1015.0",
"@aws-sdk/client-sts": "^3.600.0",
"@aws-sdk/rds-signer": "^3.1111.0",
"@aws-sdk/s3-request-presigner": "^3.1140.0",
"@casl/ability": "^6.7.5",
"@clickhouse/client": "^1.17.0",
"@elastic/elasticsearch": "^9.1.1",
"@fastify/cookie": "^11.0.2",
"@fastify/cors": "^11.2.0",
"@fastify/etag": "^6.1.0",
"@fastify/formbody": "^8.0.2",
"@fastify/helmet": "^13.0.2",
"@fastify/multipart": "^10.0.0",
"@fastify/passport": "^3.0.2",
"@fastify/rate-limit": "^10.3.0",
"@fastify/reply-from": "^12.6.2",
"@fastify/request-context": "^6.2.1",
"@fastify/session": "^11.1.1",
"@fastify/static": "^10.1.6",
"@fastify/swagger": "^9.7.0",
"@fastify/swagger-ui": "^6.1.2",
"@fastify/websocket": "^11.2.0",
"@gitbeaker/rest": "^42.5.0",
"@google-cloud/kms": "^5.4.0",
"@infisical/ldapjs": "3.0.11",
"@infisical/pg-view-generator": "^1.1.0",
"@node-saml/passport-saml": "^5.1.0",
"@octokit/auth-app": "^7.1.1",
"@octokit/core": "^5.2.1",
"@octokit/plugin-paginate-graphql": "^4.0.1",
"@octokit/plugin-retry": "^5.0.5",
"@octokit/rest": "^20.0.2",
"@octokit/webhooks-types": "^7.3.1",
"@octopusdeploy/api-client": "^3.4.1",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.220.0",
"@opentelemetry/exporter-prometheus": "^0.220.0",
"@opentelemetry/instrumentation": "^0.220.0",
"@opentelemetry/instrumentation-http": "^0.220.0",
"@opentelemetry/instrumentation-runtime-node": "^0.33.0",
"@opentelemetry/resources": "~2.9.0",
"@opentelemetry/sdk-metrics": "~2.9.0",
"@opentelemetry/semantic-conventions": "^1.43.0",
"@peculiar/asn1-csr": "^2.6.0",
"@peculiar/asn1-ecc": "^2.6.0",
"@peculiar/asn1-pkcs8": "^2.6.1",
"@peculiar/asn1-rsa": "^2.6.1",
"@peculiar/asn1-schema": "^2.3.8",
"@peculiar/asn1-x509": "^2.6.1",
"@peculiar/x509": "^1.12.1",
"@platformatic/kafka": "^2.12.1",
"@react-email/components": "^1.0.1",
"@simplewebauthn/server": "^13.3.3",
"@sindresorhus/slugify": "1.1.0",
"@slack/oauth": "^3.0.2",
"@slack/web-api": "^7.8.0",
"@types/node-forge": "^1.3.14",
"@ucast/mongo2js": "^1.3.4",
"acme-client": "^5.4.0",
"argon2": "^0.45.1",
"asn1js": "^3.0.6",
"axios": "~1.20.0",
"axios-ntlm": "^1.4.4",
"axios-retry": "^4.0.0",
"bcrypt": "^6.0.0",
"botbuilder": "^4.23.2",
"bullmq": "^5.81.5",
"cassandra-driver": "^4.10.0",
"connect-redis": "^7.1.1",
"cron-parser": "^5.5.0",
"dd-trace": "^5.128.0",
"dns-packet": "^5.6.1",
"dotenv": "^16.4.1",
"fast-json-stringify": "^7.1.3",
"fast-xml-parser": "^5.7.0",
"fastify": "^5.12.7",
"fastify-plugin": "^5.0.1",
"file-type": "^22.0.0",
"google-auth-library": "^9.9.0",
"handlebars": "^4.7.10",
"hdb": "^0.19.10",
"ioredis": "^5.3.2",
"isomorphic-dompurify": "^2.22.0",
"jose": "^6.1.0",
"js-yaml": "^4.3.0",
"jsforce": "^3.10.14",
"jsonwebtoken": "^9.0.2",
"jsrp": "^0.2.4",
"jwks-rsa": "^3.1.0",
"knex": "^3.0.1",
"ldif": "0.5.1",
"libpg-query": "^17.7.3",
"libsodium-wrappers": "^0.7.13",
"lodash.isequal": "^4.5.0",
"mongodb": "^6.8.1",
"mongodb-connection-string-url": "^3.0.0",
"ms": "^2.1.3",
"mysql2": "^3.24.5",
"nanoid": "^3.3.18",
"netmask": "^2.0.2",
"node-forge": "^1.4.2",
"nodemailer": "^10.1.7",
"oauth4webapi": "3.8.8",
"oci-common": "^2.142.2",
"oci-identity": "^2.142.2",
"oci-keymanagement": "^2.142.2",
"oci-secrets": "^2.142.2",
"oci-vault": "^2.142.2",
"odbc": "^2.4.9",
"openid-client": "^5.6.5",
"oracledb": "^6.10.0",
"otplib": "^12.0.1",
"p-limit": "^3.1.0",
"passport-gitlab2": "^5.0.0",
"passport-google-oauth20": "^2.0.0",
"passport-ldapauth": "^3.0.1",
"passport-oauth2": "^1.8.0",
"pg": "^8.11.3",
"pg-cursor": "^2.19.0",
"pg-query-stream": "^4.5.3",
"pg-types": "^2.2.0",
"picomatch": "^4.0.4",
"pino": "^8.16.2",
"pkcs11js": "^2.1.6",
"pkijs": "^3.4.2",
"posthog-node": "^5.57.2",
"probot": "^13.3.8",
"qs": "^6.15.2",
"randexp": "^0.5.3",
"re2": "^1.26.1",
"react": "19.1.4",
"react-dom": "19.1.4",
"reflect-metadata": "^0.2.2",
"safe-regex": "^2.1.1",
"scim-patch": "^0.9.1",
"scim2-parse-filter": "^0.2.10",
"sjcl": "^1.0.9",
"smee-client": "^2.0.0",
"snowflake-sdk": "^3.4.0",
"ssh2": "^1.17.0",
"tedious": "~20.2.3",
"tsyringe": "^4.10.0",
"tweetnacl": "^1.0.3",
"tweetnacl-util": "^0.15.1",
"uuid": "^11.1.1",
"zod": "^3.22.4",
"zod-to-json-schema": "^3.24.5"
},
"allowScripts": {
"argon2@0.45.1": true,
"bcrypt@6.0.0": true,
"cpu-features@0.0.10": true,
"esbuild@0.27.3": true,
"esbuild@0.25.11": true,
"esbuild@0.28.2": true,
"fsevents@2.3.3": true,
"msgpackr-extract@3.0.4": true,
"odbc@2.4.9": true,
"oracledb@6.10.0": true,
"pkcs11js@2.1.6": true,
"sharp@0.34.5": true,
"ssh2@1.17.0": true,
"unrs-resolver@1.12.2": true,
"core-js": false,
"core-js-pure": false,
"protobufjs": false,
"re2@1.27.0": true
}
}