const { randomBytes } = require('node:crypto'); const { writeFile } = require('node:fs/promises'); // Schema generation needs no deployment configuration or real credentials. Object.assign(process.env, { DATABASE_URL: 'file::memory:', FRONTEND_ORIGIN: 'http://localhost', JWT_SECRET: randomBytes(32).toString('hex'), TOKEN_ENCRYPTION_KEY: randomBytes(32).toString('base64'), PORT: '3000', LOG_LEVEL: 'error', TBANK_GRPC_ENDPOINT: 'localhost:443', TBANK_RATE_LIMIT_PER_SECOND: '5', TBANK_CA_CERT_PATH: '', }); const { NestFactory } = require('@nestjs/core'); const { AppModule } = require('../dist/src/app.module.js'); const { API_PREFIX, createOpenApiDocument } = require('../dist/src/openapi.js'); async function generate() { const app = await NestFactory.create(AppModule, { preview: true, logger: false, }); try { app.setGlobalPrefix(API_PREFIX); await writeFile( 'openapi.json', JSON.stringify(createOpenApiDocument(app), null, 2) + '\n', ); } finally { await app.close(); } } generate().catch((error) => { console.error(error); process.exitCode = 1; });