{
"name": "galoy",
"scripts": {
"tsc-check-noimplicitany": "tsc --noEmit -p tsconfig.no-implicit-any.json",
"tsc-check": "tsc --noEmit -p tsconfig.d.json && tsc --noEmit",
"madge-check": "yarn madge --circular lib/servers/graphql-main-server.js",
"eslint-check": "eslint \"{src,test}/**/*.ts\"",
"eslint-fix": "eslint \"{src,test}/**/*.ts\" --fix",
"build": "tsc -p tsconfig-build.json && cp -R src/services/price/protos lib/services/price/ && cp -R src/services/dealer-price/proto lib/services/dealer-price/ && cp -R src/services/loopd/protos lib/services/loopd/ && cp -R src/services/bria/proto lib/services/bria/ && tscpaths --silent -p tsconfig.json -s ./src -o ./lib",
"trigger": "yarn build && node lib/servers/trigger.js | pino-pretty -c -l",
"ws": "yarn build && node lib/servers/ws-server.js | pino-pretty -c -l",
"watch": "nodemon -V -e ts,graphql -w ./src -x yarn run start",
"watch-trigger": "nodemon -V -e ts,graphql -w ./src -x yarn trigger",
"graphql-check": "curl -fsS https://raw.githubusercontent.com/GaloyMoney/galoy-mobile/main/app/graphql/generated.gql -o generated.gql && npx @graphql-inspector/cli validate ./generated.gql src/graphql/main/schema.graphql --apollo --noStrictFragments",
"cron": ". ./.envrc && yarn build && node lib/servers/cron.js",
"exporter": "yarn build && node lib/servers/exporter.js",
"daily-notif": "yarn build && node lib/servers/daily-balance-notification.js",
"test": "export JEST_JUNIT_OUTPUT_DIR=\"./artifacts\" && jest --ci --reporters=default --reporters=jest-junit",
"test:unit": ". ./.envrc && LOGLEVEL=warn jest --config ./test/unit/jest.config.js --bail --verbose $TEST | yarn pino-pretty -c -l",
"test:legacy-integration": ". ./.envrc && LOGLEVEL=warn jest --config ./test/legacy-integration/jest.config.js --bail --runInBand --verbose $TEST | yarn pino-pretty -c -l",
"test:integration": ". ./.envrc && LOGLEVEL=warn jest --config ./test/integration/jest.config.js --bail --runInBand --verbose $TEST | yarn pino-pretty -c -l",
"test:e2e": ". ./.envrc && LOGLEVEL=warn jest --config ./test/e2e/jest.config.js --bail --runInBand --verbose $TEST | yarn pino-pretty -c -l",
"build-docs": "npx spectaql spectaql-config.yml -1",
"fix-yaml": "prettier --write '**/*.(yaml|yml)'",
"check-yaml": "prettier --check '**/*.(yaml|yml)'",
"watch-main": ". ./.envrc && nodemon -V -e ts,graphql -w ./src --exec yarn run start-main",
"start-main": ". ./.envrc && yarn run build && node --inspect -r ./lib/services/tracing.js ./lib/servers/graphql-main-server.js",
"migrate-mongo-up": "migrate-mongo up -f './src/migrations/migrate-mongo-config.js'",
"e2e-codegen": "graphql-codegen --config codegen.yml",
"gen-test-jwt": "ts-node ./dev/bin/gen-test-jwt.ts"
},
"engines": {
"node": "20"
},
"dependencies": {
"@google-cloud/storage": "^6.11.0",
"@grpc/grpc-js": "^1.8.17",
"@grpc/proto-loader": "^0.7.2",
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/core": "^1.14.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.40.0",
"@opentelemetry/instrumentation": "^0.40.0",
"@opentelemetry/instrumentation-graphql": "^0.34.3",
"@opentelemetry/instrumentation-grpc": "^0.40.0",
"@opentelemetry/instrumentation-http": "^0.40.0",
"@opentelemetry/instrumentation-ioredis": "^0.34.3",
"@opentelemetry/instrumentation-mongodb": "^0.35.0",
"@opentelemetry/instrumentation-net": "^0.31.4",
"@opentelemetry/resources": "^1.14.0",
"@opentelemetry/sdk-trace-base": "^1.14.0",
"@opentelemetry/sdk-trace-node": "^1.14.0",
"@opentelemetry/semantic-conventions": "^1.14.0",
"@ory/client": "^1.1.39",
"ajv": "^8.12.0",
"apollo-server-core": "^3.12.0",
"apollo-server-errors": "^3.3.1",
"apollo-server-express": "^3.12.0",
"axios": "^1.3.5",
"balanceofsatoshis": "^15.8.12",
"basic-auth": "^2.0.1",
"bip32": "^4.0.0",
"bitcoin-cli-ts": "^24.0.3",
"bitcoinjs-lib": "^6.1.3",
"body-parser": "^1.20.1",
"cookie": "^0.5.0",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"csv-writer": "^1.6.0",
"dataloader": "^2.2.2",
"dedent": "^0.7.0",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"express-jwt": "^8.4.1",
"firebase-admin": "^11.9.0",
"google-protobuf": "^3.21.2",
"graphql": "^16.7.1",
"graphql-middleware": "^6.1.33",
"graphql-query-complexity": "^0.12.0",
"graphql-query-complexity-apollo-plugin": "^1.0.2",
"graphql-redis-subscriptions": "^2.6.0",
"graphql-relay": "^0.10.0",
"graphql-shield": "^7.6.4",
"graphql-tools": "^9.0.0",
"graphql-ws": "^5.13.1",
"gt3-server-node-express-sdk": "https://github.com/GaloyMoney/gt3-server-node-express-bypass#master",
"helmet": "^6.0.1",
"i18n": "^0.15.1",
"invoices": "^3.0.0",
"ioredis": "^5.3.2",
"ioredis-cache": "^2.0.0",
"ipaddr.js": "^2.1.0",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^9.0.0",
"jwks-rsa": "^3.0.1",
"libphonenumber-js": "^1.10.37",
"lightning": "^9.5.1",
"ln-service": "^56.8.0",
"lodash.debounce": "^4.0.8",
"lodash.groupby": "^4.6.0",
"lodash.map": "^4.6.0",
"lodash.mapvalues": "^4.6.0",
"lodash.mergewith": "^4.6.2",
"lodash.sortby": "^4.7.0",
"lodash.sumby": "^4.6.0",
"medici": "^6.2.0",
"mongoose": "^7.3.1",
"node-cache": "^5.1.2",
"knex": "^2.4.2",
"otplib": "^12.0.1",
"pino": "^8.11.0",
"pino-http": "^8.3.3",
"prom-client": "^14.2.0",
"rate-limiter-flexible": "^2.4.1",
"redlock": "^5.0.0-beta.2",
"set-cookie-parser": "^2.6.0",
"subscriptions-transport-ws": "^0.11.0",
"twilio": "^4.12.0",
"uuid-by-string": "^4.0.0",
"ws": "^8.13.0"
},
"devDependencies": {
"@apollo/client": "3.7.16",
"@babel/core": "^7.22.1",
"@babel/preset-env": "^7.22.4",
"@graphql-codegen/add": "^5.0.0",
"@graphql-codegen/cli": "^4.0.1",
"@graphql-codegen/client-preset": "^4.0.1",
"@graphql-codegen/typescript": "^4.0.1",
"@graphql-codegen/typescript-operations": "^4.0.1",
"@graphql-codegen/typescript-react-apollo": "^3.3.7",
"@graphql-tools/jest-transform": "^2.0.0",
"@jest/test-sequencer": "^29.5.0",
"@swc/core": "^1.3.62",
"@swc/jest": "^0.2.26",
"@types/babel__core": "^7.20.1",
"@types/babel__preset-env": "^7.9.2",
"@types/basic-auth": "^1.1.3",
"@types/cookie": "^0.5.1",
"@types/cookie-parser": "^1.4.3",
"@types/dedent": "^0.7.0",
"@types/eslint": "^8.40.2",
"@types/express": "^4.17.15",
"@types/google-protobuf": "^3.15.6",
"@types/i18n": "^0.13.5",
"@types/jest": "^29.5.2",
"@types/js-yaml": "^4.0.2",
"@types/jsonwebtoken": "^9.0.1",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.difference": "^4.5.6",
"@types/lodash.find": "^4.6.6",
"@types/lodash.groupby": "^4.6.6",
"@types/lodash.map": "^4.6.13",
"@types/lodash.mapvalues": "^4.6.6",
"@types/lodash.mergewith": "^4.6.7",
"@types/lodash.sortby": "^4.7.6",
"@types/lodash.sumby": "^4.6.6",
"@types/migrate-mongo": "^10.0.0",
"@types/node": "^20.3.2",
"@types/node-jose": "^1.1.10",
"@types/nodemon": "^1.19.2",
"@types/prettier": "^2.7.3",
"@types/react": "^18.2.14",
"@types/set-cookie-parser": "^2.4.2",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.60.1",
"@xascode/tscpaths": "0.1.4",
"axios-mock-adapter": "^1.21.5",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.2",
"eslint-plugin-prettier": "^4.0.0",
"graphql-subscriptions": "^2.0.0",
"grpc-tools": "^1.12.4",
"grpc_tools_node_protoc_ts": "^5.3.3",
"jest": "^29.5.0",
"jest-junit": "^16.0.0",
"jest_workaround": "^0.76.0",
"lodash.difference": "^4.5.0",
"lodash.find": "^4.6.0",
"madge": "^6.1.0",
"migrate-mongo": "^10.0.0",
"node-jose": "^2.2.0",
"nodemon": "^2.0.21",
"pg": "^8.10.0",
"pino-pretty": "^10.0.0",
"prettier": "^2.8.7",
"protoc-gen-js": "^3.21.2",
"react": "^18.2.0",
"spectaql": "^2.1.1",
"tiny-secp256k1": "^2.2.3",
"tree-kill": "^1.2.2",
"ts-node": "^10.9.1",
"ts-node-dev": "^2.0.0",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.6",
"zen-observable-ts": "^1.1.0"
},
"resolutions": {
"protobufjs": "7.2.4",
"http-cache-semantics": "4.1.1"
},
"private": true
}