{"_id":"@riposte.co/server","_rev":"32-ade3eef1f6e167ac16189b4ee1b546fb","name":"@riposte.co/server","dist-tags":{"latest":"0.4.6"},"versions":{"0.1.0":{"name":"@riposte.co/server","version":"0.1.0","_id":"@riposte.co/server@0.1.0","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"38b402f40dc77b85c88438bca8eb5b01f0453bda","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.0.tgz","fileCount":2402,"integrity":"sha512-5boSDzrkctrojj5W1vKTgqspOwzsmHvkZSVr7BfqaMg4B3iXCvF14Y4O2z6Bflh7TDOgyDZ7Lr7iXAZWPtznfg==","signatures":[{"sig":"MEQCIHHh3BhKNc1ysjJHAbXDQy2r9boEJrFk1h6InKIVrYhVAiBhU1TJ5fpR/JI/kmNZxEfYkC9t7PVC9P4Ja1D6eDqsWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26223108},"main":"dist/src/index.js","type":"commonjs","gitHead":"e203a8e75f57bfc9d64c091d797ce15aaca8ee4e","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.0_1759363707312_0.6547090907649675","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@riposte.co/server","version":"0.1.1","_id":"@riposte.co/server@0.1.1","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"ed47b977ac955a7ea9f7098c8f028eff8130acb0","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.1.tgz","fileCount":2331,"integrity":"sha512-H3YnrxixvREaGZZ6OkaB+12+d3v8sInqQq0jByM75anbi1XnGTweFdKxwAVS+P9+fmsYDKKqK8unp/WwtkqMoQ==","signatures":[{"sig":"MEQCIHeVCGUmOqhpTUIKTnidt57ac9a+E/nc9pAXX72FUzMSAiBu2PUMb3qsFWHmrVF7Yr62P6kHbGzXaU/k24PnuoeM0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25249003},"main":"dist/src/index.js","type":"commonjs","gitHead":"0b4a8bebf35b9fecbbb36d7c1773358fe561828d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.1_1759418412009_0.5033511037705154","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@riposte.co/server","version":"0.1.2","_id":"@riposte.co/server@0.1.2","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"e7b62635f284aaaa30b10ca3dcfe8bdb586d0fb4","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.2.tgz","fileCount":2331,"integrity":"sha512-pu8IeOq7ExhhLjkU5H2IykWPjDdzLr71/1JntU3sdzBOxCutsb+NfjxoBdJjXGqPMjRt8IBKxI6FGY8oWuCpzA==","signatures":[{"sig":"MEUCIQCl6tslDtBAfVyxmTf7MnRVVuBqB8OM70C9dLzUEV+8VQIgJ1w9sAkmMHXY628wfBNNIM7Ky+pfFoFFSGN5DOlqwc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25246291},"main":"dist/src/index.js","type":"commonjs","gitHead":"0b4a8bebf35b9fecbbb36d7c1773358fe561828d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.2_1759424626065_0.7808020883245022","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@riposte.co/server","version":"0.1.3","_id":"@riposte.co/server@0.1.3","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"0164d81b5f3014058b07e50798129facca49c7d6","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.3.tgz","fileCount":2367,"integrity":"sha512-a6aMiyyF3eluVIupI/NlNA7VBAFo1sJnSMzULV/13LBZb7pNQxY/sigAEZAWQCuNcRkm36nGhBj8ZGCr+ZoDWw==","signatures":[{"sig":"MEUCIEiYUW0fFlJoDEYW6L49hxWgw68W4bDn8djb2islPuFpAiEAnXP0OVfOpUWBdcbqMXXeCM3HG7ZEcjZBqk8V21rv9tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25856076},"main":"dist/src/index.js","type":"commonjs","gitHead":"835fea91436cffc2290997ccf32f70925d049692","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.3_1759697044190_0.2965499304673058","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@riposte.co/server","version":"0.1.4","_id":"@riposte.co/server@0.1.4","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"4ae1908c0bdb383217a57e48e4e6bcab1d110773","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.4.tgz","fileCount":2367,"integrity":"sha512-laLnfADopgO5y+MO2h0ZF9g3F6aejBHKShHAKU8ClsfkhwogkwxfqMXj0+ZHhx6V2eTw3bZw1pVTzpsivBWJqA==","signatures":[{"sig":"MEUCIDlCJB3z2HQD4qVZFNTkG+d38t+kiPwKmkUO5sf9SQPgAiEArBsse8/Z3YDibfcpu6tMnakuwcDxq4mKZqhQHp7woV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25850052},"main":"dist/src/index.js","type":"commonjs","gitHead":"d1074973267651f6cab5d55e0886d5429ab96ab6","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.4_1759702952479_0.6375593857647468","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@riposte.co/server","version":"0.1.5","_id":"@riposte.co/server@0.1.5","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"aaaba8e2d659021142c7654e78b661a90139b586","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.5.tgz","fileCount":2368,"integrity":"sha512-cxIZLzjMvRQfODyQkJ2GRbO5UVemfcQYVOem8Ll6RQOoeUQqqpjMBG5MoemL1DOMpT4qoJLlpcJpxZL4jAlR1g==","signatures":[{"sig":"MEQCIGPBI6JPNsWnsaQN/hOGVc4t4wujP9tKlCBNbdXQYfkVAiAJO7qRRY7PASHdcaSCcNjL27T2PMfN762mES/IIoQDqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25858887},"main":"dist/src/index.js","type":"commonjs","gitHead":"c813bb4ec0fbd29e583dfafb795ad7e28474c89c","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.5_1759706092744_0.7921171199263142","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@riposte.co/server","version":"0.1.6","_id":"@riposte.co/server@0.1.6","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"41f845dce3074555b609d5538f34a5cc97883d63","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.6.tgz","fileCount":2369,"integrity":"sha512-KHC7kq7fNaXEkrTLCt7FJ2H0OTn2W+MUZ28hpgGuxEi7783PhBHJ5AnTbl5kTd2puoYLXwLBNmGDn3Oy3c3GAQ==","signatures":[{"sig":"MEUCIQCmAEoR7YrTZUdT55mz6zFL3Mr8IvucnfmuKqT3J0TlkQIgOA8xsqzM2f9xfPaHa0UFTu7qRYAMMv/XkOHVzMOgEkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25862384},"main":"dist/src/index.js","type":"commonjs","gitHead":"29cfc7d6614d4cae3a625d1ecbedcde98efd9674","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.6_1759707375637_0.31834706945370317","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@riposte.co/server","version":"0.1.7","_id":"@riposte.co/server@0.1.7","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"822fde0a3209a1dda3c875dc22f0509a8271d51e","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.7.tgz","fileCount":2369,"integrity":"sha512-mQb53wvdKnAKR5YRxhmZlxBCGwAI+rFI+HFT4jlC6tqBWdYUK4ms/JlvMWtkPa7ehlE2a+j/risJ75HOnwgqRw==","signatures":[{"sig":"MEQCIDJL90GjlUwJPu63lC8z/cL7FCscBi2cemf1lI1fflCUAiButo1raGpe4EywO1zaUKkJpVPwjqIklL+Isair678cyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25863311},"main":"dist/src/index.js","type":"commonjs","gitHead":"29cfc7d6614d4cae3a625d1ecbedcde98efd9674","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.7_1759708098319_0.18667307504359232","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@riposte.co/server","version":"0.1.8","_id":"@riposte.co/server@0.1.8","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"a191136c964ee51563b6faa860db476bd9e7ec10","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.8.tgz","fileCount":2369,"integrity":"sha512-30r0OIM9e3+oO8ncolL7yd9Cxhj4yH4UgXvONeUyOo1YMh3oFkJ0HpsG1Jkss4aYUuBasZ6I+A+KTlf4nqEPXQ==","signatures":[{"sig":"MEUCIQDDp2/BwiSrjrpLhBlmf3PrL7PpQzVmreio38GpZdnRLAIgL/mCulS5faczy/McekvM22vclbfq9jV3sW0wAoIdsAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25867115},"main":"dist/src/index.js","type":"commonjs","gitHead":"c29c0e560c89b5956654fbf91814a5fd93201631","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.8_1759710874054_0.962322167854057","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@riposte.co/server","version":"0.1.10","_id":"@riposte.co/server@0.1.10","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"cbc09ea7d6aa4f7c99824d4423b8e23c88659ecf","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.10.tgz","fileCount":2369,"integrity":"sha512-KnhNJjWOEU92ZlaR68hY1eQBIqZQ3LpWgSM4VhrTkMFvs6sDaTLjtDhtW5VlnNrsHY1RzUTlE0zrcdWDsTO7+w==","signatures":[{"sig":"MEUCIQD36qFZ6TyD1a/8nQIG7yXOOAW8VpE6yAj90R72+fKrpQIgMZEE9fZEKwVsA3ATAftVt9+ULmPsAyivI84HKAOuwI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25873899},"main":"dist/src/index.js","type":"commonjs","gitHead":"8aff86f677102fcb1f0fe2812ab59357dc9d349b","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.10.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.10_1759716225159_0.11392768679061538","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@riposte.co/server","version":"0.1.11","_id":"@riposte.co/server@0.1.11","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"fa1cfd229a318dc19f70c61fe569fe5fd1eb47cc","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.1.11.tgz","fileCount":2403,"integrity":"sha512-iyjcBleyBb6SHMcGD/fXTyCX138RKmT7UNqmXhsl7ofVsJ2HkZ8KJQcLoVsRnxfOtw3FmuFlGxHZyGEF4fTVGQ==","signatures":[{"sig":"MEYCIQDfsJ7q+D9SduQ4KZiOq5yX3CSXS1lWhpjJD7JQJ+8LuQIhAIazCnB5odADUACVZsdu5Y6i/Yw1DY9D1FhK8z9kKbN7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26136870},"main":"dist/src/index.js","type":"commonjs","gitHead":"8cd4174cab400f702d7371127f67ad9a6fde030a","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.11_1760387527496_0.4600872555616702","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@riposte.co/server","version":"0.2.0","_id":"@riposte.co/server@0.2.0","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"dfde6d9edaf4ce8c28345608fa7948d295a14a81","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.2.0.tgz","fileCount":2732,"integrity":"sha512-DD/sbnxXv8DWh9L7CA9q0/V+LvYOv2VVgsXg3cocOtHuJdUZBjYObj/nrRCLy0Mf5xOPnFRG0htepEp+IoPylA==","signatures":[{"sig":"MEQCIFg6a53MjCMN9+oQ18tUPlaeQvou2eEwC4DqxVgcAwonAiAA1jG7Rk84n3rSO6k1kN6us62Hkvkm6po6Mw9NTbZqOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28158130},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"6ec55fcb408b1b2f30e266115f3a07cd7ee1955e","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.0_1761449558645_0.569517730708403","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@riposte.co/server","version":"0.2.1","_id":"@riposte.co/server@0.2.1","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"9dd2da88f457fcf4c0992e267fbbc826979e8f28","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.2.1.tgz","fileCount":2728,"integrity":"sha512-d8RAUIxRkd9I9DwCcIhawXRlMNeQWQqM+Hced1s+GLTV4lnZN064yeoHW7smODGkgdSGomRyhQrqw8XI9DI8Iw==","signatures":[{"sig":"MEUCIC+V7GI+FTCUT5faylww0WjNX1NjR9NZPId3mPhfbUTnAiEAsSgOYI7B6fH+MnYr58d2zd0AtYka22l3qQphf0zHpwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28168061},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"587b003d70af516d546fbe0f1ca8b9855e709fa9","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.1_1761532682809_0.7061545274414582","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@riposte.co/server","version":"0.2.2","_id":"@riposte.co/server@0.2.2","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"2b7afd073e23a487442dd3adb1b5284caf570e83","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.2.2.tgz","fileCount":2728,"integrity":"sha512-V/GCdZkFTPkXJgNZjgc/Pqap7TjLaDQ5qPJ40I8TyjrTY916tgqbBdsCmHdqk2VgLQiKfOTeUtmBhlEIXGLH5g==","signatures":[{"sig":"MEYCIQCBUyQyekziKeZ+VeCjFc/srnEDZndb1Y8d6qqmDakV8QIhAPpu1V/VJGJgdibWZh17d5s/eFIWZoRDWIT041IIjcRp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28157150},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"e69a2e26e9d766b6a61d811ab1ab6840e17e76cf","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.2_1761535586754_0.8585933363354381","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@riposte.co/server","version":"0.2.4","_id":"@riposte.co/server@0.2.4","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"95263df45e979c0ee68930823a4705a73627c02c","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.2.4.tgz","fileCount":2728,"integrity":"sha512-u4XC91EMGHYFk6ztObHgCeA0UvV/R8CkTf2XV9fbMGC0N/zUO2Ig1hI7FAD4YpVAJXI+LLuG8l05ElMUsachug==","signatures":[{"sig":"MEUCIDem12ZsyZKHDlMK5bYYAB0kY6dijWd97at/hm7tcvJhAiEAstwCRlvoXSh3VgfPAVUuSv6mMM+bHNcuvKMEXMtCZow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28155814},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"e69a2e26e9d766b6a61d811ab1ab6840e17e76cf","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.4_1761536953940_0.42286809875140685","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@riposte.co/server","version":"0.2.5","_id":"@riposte.co/server@0.2.5","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"3e4f317d217fb3f89223144df63178abdcc74b78","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.2.5.tgz","fileCount":2728,"integrity":"sha512-ieYfPVH6+6ltnjHWY8qEmfNbSR3ilTwpZ/zuwmrYOPCc/bYLFvISWNujDpe6au+Tf1dxjr0zJMYE8hAY+uylUQ==","signatures":[{"sig":"MEUCIB5y46uPqBi8xIf8WB5j8NlPUQwXc1o5t2lN6gA9UurzAiEA4ti7ymzFjxBwlAUmT7ISZCyoQJq6yiuktD7wCgMmDC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28157107},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"41e75cfdf0258183287d2cc2efa71ce005454d06","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.5_1761539254324_0.5037704663535811","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@riposte.co/server","version":"0.3.0","_id":"@riposte.co/server@0.3.0","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"7809cf04f9e26c9e86a598658de9be4cc9c7c066","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.0.tgz","fileCount":2738,"integrity":"sha512-vX2ia7bEcV7v5yOYbasrH1TATRZFl7FJzS6sQRzSo0NgHm7bbbLiKPlQHjD1htezLRxG5zI0oKAUw1Z+7WzobA==","signatures":[{"sig":"MEYCIQDUxuGOsLIaOcJWqB9kN6vyydRC6+QMe8RFM5ogy/qGeAIhAO7iVcW5YJhzaN4af6PmYAOWldnz6hlqIo480CTX269D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28603127},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.0_1761664885777_0.41119938642643006","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@riposte.co/server","version":"0.3.1","_id":"@riposte.co/server@0.3.1","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"0becfcc224f023b82639fe84dc86207303e3c468","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.1.tgz","fileCount":2738,"integrity":"sha512-2caBFi+z1dWC1bEm9vIFkacshREn3K7zX5rH9XW3ms91FUg48N4leesgtKay5Mcce2+yONOUtQcLtyr9UnNLyw==","signatures":[{"sig":"MEMCHwevoRbnafUuXWHSoI0/86ygOhqfmnMLREGkSxjWuOcCIAkJLWTjmNw3gesHGrx91XHAGnvjkr80IqadgADjkM2F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28607241},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.1_1761665905948_0.2077666127309694","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@riposte.co/server","version":"0.3.2","_id":"@riposte.co/server@0.3.2","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"d4fa3f8169a930ebdc087ca180768f828a3dd804","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.2.tgz","fileCount":2899,"integrity":"sha512-C6ePtWl2mtEY8cK3pVO/Z2MYQcGL2la2D0Ka9TAN7mA4bd/OZuygNe80s8PyXvbtAqFMdz9dbvMgxcyMw3+DWw==","signatures":[{"sig":"MEUCIQD9XL9H2doocI2Qk4jAF6S3vuYk8Uip5cnYCDqjQYZokAIgPBqcH5LUf33FzOveBF+HV1tmrNgrSjj14rmMTx4Y5yA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30231847},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.2_1761667998027_0.5603711999687218","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@riposte.co/server","version":"0.3.3","_id":"@riposte.co/server@0.3.3","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"500fbec456105c7c90bb77ce96249dceb4aa8ab6","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.3.tgz","fileCount":2899,"integrity":"sha512-KBidcdLH2BiVZ6vWObbs/1gP3iysPY5J/NbL4gmIzYkKmEp7MDss7+jUJfjnUDY2Mg/6Uy4wKwaYv/caZsfy2A==","signatures":[{"sig":"MEUCIGEGuLHIB/1ski9OSjCbqOl06kURZWfDxc3HPiPt/aJTAiEAp3oTsK5QAl2SJGq4IIk9AST3ZnmqIUYCxDrHD2cPLJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30239967},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.3_1761668896109_0.009520142911218388","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@riposte.co/server","version":"0.3.4","_id":"@riposte.co/server@0.3.4","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"51c24134cae84a4336c91039a1bd237128445a1d","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.4.tgz","fileCount":2899,"integrity":"sha512-7bNNnmYuwchoJdaJgYDywtoHYoTwrZyfIr2QsvOA50SsmPc9hM4QnF6x9ZQ3wG0QVj1cSY8dIcQA+15xsWZ/7w==","signatures":[{"sig":"MEYCIQD9Msa/d+S14uPFB35EiQGAnODusn/0dOeLoTiw2Tno6AIhAO8YSBMLHt4d8zkTWAk9bMSjWsghf93wgMzjOw5Jndyh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30243477},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.4_1761669142680_0.30001912442215506","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@riposte.co/server","version":"0.3.5","_id":"@riposte.co/server@0.3.5","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"7e9db7ce5ae983e6a791c38bc5496af6cec82695","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.5.tgz","fileCount":2903,"integrity":"sha512-7/yE76V9QBrtiMY4waMHwlRus7+24ba6iIyrv2c90mrOT55fER/ytsI2ET4zIo/u0ZE2ZKa2wZjHxZUT5AVUHQ==","signatures":[{"sig":"MEQCICdZ75DfEAGOKHImoWY9w6PKgJ/Y6rUd1AaG2alPJHkfAiBcn+6YexQF7fHwGM9PjfRHZYERnqQEh5dzv79SUxkZxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30236161},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.5_1761670054314_0.6478529189068207","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@riposte.co/server","version":"0.3.6","_id":"@riposte.co/server@0.3.6","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"ba31f03b11413490198c24a86a4cab0c227f8d48","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.6.tgz","fileCount":2903,"integrity":"sha512-AvWq3UaIc+gVsY9WViv2jyM0XgJ2o75fDvXVpfnQGpg7UphS60iqSHKVOQaW8ht/uGdoO2RY7FKjRmNu/MTBlw==","signatures":[{"sig":"MEUCIGhBUOerI7ixYpSPzj23g6QS5XapBndNGcHbQvcsOX+SAiEAoAmagw/BKsG8GOMQqcWAQ7mz2gn/89f0oI7N99p4yTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30239845},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.6_1761670911365_0.18114982493689546","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@riposte.co/server","version":"0.3.7","_id":"@riposte.co/server@0.3.7","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"5eb6f1b55932a9479d93d590c6d75e2b2ab3dd2b","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.7.tgz","fileCount":2903,"integrity":"sha512-chEFaAOq1mW4RDTktu/cJkE49Eu8q8fidJ/IdRSI2iQUiwY+NCFg9lSNTQ2OyavpAwPDnjf3P6/CIZpBbONqWg==","signatures":[{"sig":"MEUCIChCslKdgpGxioD4dp19GSiy8J4OMVkpj2/YKvz3cLjkAiEArg7Wr8+03/0Zi0FKvXlniHeb3Ijy/b7swNpxzMuyh2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30247624},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.7_1761671494380_0.4147710514914922","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@riposte.co/server","version":"0.3.8","_id":"@riposte.co/server@0.3.8","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"189f0c3e85395aa964c2d81b407cb1779fc144ab","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.3.8.tgz","fileCount":2903,"integrity":"sha512-BWulVW+BHIYv4766Pt3Fky9oLRVg1VictWjIosaiGmi3xNZCioGz6poItmkovcvUrNtQTA6HBJuf6c6ZNi3BUA==","signatures":[{"sig":"MEQCIH36dOGOZD7QQr7yZ8V/Um1ajDeg9RCOdGhH7ZzMjGeAAiADpOZ9v/UDY8NFweKipljvfQ58Ut/W2pVbCD3GeYL1Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30235146},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"334d2e502af221e3121ec8c56a27445264e1498d","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.8_1761672673614_0.10646901280861254","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@riposte.co/server","version":"0.4.0","_id":"@riposte.co/server@0.4.0","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"b9ed555e421535540c658b1952fd977e9219abdf","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.0.tgz","fileCount":2908,"integrity":"sha512-OsZrlndT74JjzrLjYSnFdmAmHNbcnFnDeDnbuTt2soqqNgC/I2qlFxOBU0qHqWZ6TtoUpaBqQddWBiKgvSc7Mw==","signatures":[{"sig":"MEUCIQDSU19691u+jNJMoD0GxM9hrrUs5FWQ3tZut8dyEkzoLgIgANP6N/ngQXMCC2T95ODWf+kDXEL03idDXqNR8NDxqdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30279650},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"54dd855435610c4063f252d5cf35677c4068b557","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.2.1","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.0_1761875490915_0.9291363428143167","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@riposte.co/server","version":"0.4.1","_id":"@riposte.co/server@0.4.1","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"73e2800fa4517a6b78245022972202914b46e4cc","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.1.tgz","fileCount":2908,"integrity":"sha512-k1DWMsjx/VJFEIKApjQG8jvrCzsKW4BL4yBpJCGRhFikcugwiYZm8PkhWfYtCRfUX7VMRAdiLT0X3NYkZtjckQ==","signatures":[{"sig":"MEUCICks/29bApi9m/2TY3KD6DkvZlDrKxl/IOPO5tFModANAiEAiVrezzCmyPDeh3nVSrXbpbD+wVuyCBBRPrYuJuqC9ss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30271258},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"54dd855435610c4063f252d5cf35677c4068b557","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.4.x","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.1_1761876082670_0.2961073541861372","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@riposte.co/server","version":"0.4.2","_id":"@riposte.co/server@0.4.2","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"d6bf5b1089b49d3eb4fb2f381bae5d3e6ec8b6d3","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.2.tgz","fileCount":2924,"integrity":"sha512-pr880H9OfGherh/cTLdxT/25dXiOOtwvtaPJxuXFMUUBTlHLcJ9YSW6LxXzR3+Wt74BkLJ7odh8S6jolylb5lw==","signatures":[{"sig":"MEUCIQDMkRuj+oQmEE53t32Jj8cAlfQotgOBf4ex6aHkjMu73wIgE01KcQZ8ARG4M9GKP8zCiSJ4nOw5G1bZ///IuAozQmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30315864},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"18eb727063373ea53db2d3c5d2939e380d984007","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.4.x","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.2_1762355988142_0.3757762565666585","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@riposte.co/server","version":"0.4.3","_id":"@riposte.co/server@0.4.3","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"700245f91293faaee79866eccec293ffa0e6d385","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.3.tgz","fileCount":2908,"integrity":"sha512-nOyF032eb5ROrUTc9OA7V1daEUBkZzOWxbsbKfqqEpsHCQPy3ndmRpcwG5rkipEKMZ+VXJ3dnMWyAVTII6sFWg==","signatures":[{"sig":"MEQCIHfDa+bl4e6L1cT/5U/Twez8jwsFf8OfafehjO3Myo0IAiAnxBd+1NM2E6l4Pdk/+4J63TJwes0rhQen4FLzlcEahA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30300762},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"090ce1e0567c66c92d0de163d5e379be58129ff0","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.4.x","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.3_1762362042929_0.39020970765343077","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@riposte.co/server","version":"0.4.4","_id":"@riposte.co/server@0.4.4","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"ad0f6db258a73efaa143d3ddf3f74cdf870cb345","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.4.tgz","fileCount":2912,"integrity":"sha512-PvYcrfFb8IkQeXoYKNRa/uKIGre7kovdZ7UywAyib6EDxhlnzYAYuiX/PDDoyIvGp6dDI6jO6odL+fznnkz0sA==","signatures":[{"sig":"MEUCIQDFvpRKAnlcewo2NIMZdK9DVpeQPhUplmbQT99fGhLcqwIgXVPJPXxUssWY7hba+RmCmuStIAAWRhGydG7qtsTjhqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30290667},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"e8d9b7358340e01658c7693404efbb6597abd563","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.4.x","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.4_1762449963853_0.15056920057576795","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@riposte.co/server","version":"0.4.5","_id":"@riposte.co/server@0.4.5","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"homepage":"https://riposte.co","bin":{"riposte-run":"dist/cli/run.js","riposte-init":"dist/cli/setup.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js"},"dist":{"shasum":"2f43ee43a478f9a593ebb9d358052a70f5d18799","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.5.tgz","fileCount":2924,"integrity":"sha512-LjbV3tvWpaCA16ENYsYcVfnmwhj3KTBNJ2U4OkqM2eBvNiofkSMSLk+6yI1/JGLcgwtOEMff006bZ3p0NAUlfg==","signatures":[{"sig":"MEUCIFCd/DQlplM5mREer1RbmhB9hqiugvz+ebqm1o6idOGHAiEA8GjQhNGX2Z+OxvyP5PFl0+5AZgNOk4pF01hDiPt6pz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30320535},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","module":"dist/esm/src/index.js","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/esm/src/index.js","require":"./dist/src/index.js"},"./*":"./*","./package.json":"./package.json"},"gitHead":"3fa4216759fe6614497e74a88620fa05341fd4b7","private":false,"scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","start":"node dist/src/index.js","cli:run":"tsx cli/run.ts","license":"tsx scripts/generate-license.ts","prepack":"npm run build","test:ui":"vitest --ui","test:run":"vitest run","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","cli:setup":"tsx cli/setup.ts","cli:config":"tsx cli/config.ts","db:migrate":"tsx scripts/run-migrations.ts","test:setup":"./scripts/test.sh","test:watch":"vitest --watch","build:admin":"node scripts/build-admin.js","db:generate":"tsx scripts/generate-migration.ts","publish:sdk":"cd sdk && npm publish --access public","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","generate:sdk":"node scripts/generate-sdk.js","test:coverage":"vitest run --coverage","build:obfuscate":"node scripts/obfuscate.js","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","cli:provider-test":"tsx cli/provider-test.ts","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run"},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"_npmVersion":"10.8.2","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.16.3","ora":"^5.4.1","diff":"^5.1.0","pino":"^9.9.5","uuid":"^8.3.2","chalk":"^4.1.2","sharp":"^0.33.2","bullmq":"^4.0.0","dotenv":"^17.2.2","fastify":"^5.6.0","ioredis":"^5.3.2","inquirer":"^8.2.5","commander":"^9.5.0","googleapis":"^159.0.0","drizzle-orm":"^0.44.5","pino-pretty":"^13.1.1","@fastify/cors":"^11.1.0","better-sqlite3":"^12.2.0","@riposte.co/sdk":"^0.4.x","@fastify/swagger":"^9.5.1","@fastify/formbody":"^8.0.2","@fastify/swagger-ui":"^5.2.3","strip-json-comments":"^5.0.3","@google-cloud/pubsub":"^4.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","eslint":"^8.53.0","rimraf":"^5.0.5","vitest":"^1.6.1","ts-node":"^10.9.1","prettier":"^3.6.2","@types/pg":"^8.15.5","@types/ws":"^8.18.1","@vitest/ui":"^1.6.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/node":"^24.6.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/inquirer":"^9.0.9","node-mocks-http":"^1.17.2","javascript-obfuscator":"^4.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.5_1762543306923_0.8399490479562741","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@riposte.co/server","private":false,"type":"commonjs","version":"0.4.6","main":"dist/src/index.js","module":"dist/esm/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","require":"./dist/src/index.js","import":"./dist/esm/src/index.js"},"./*":"./*","./package.json":"./package.json"},"homepage":"https://riposte.co","bin":{"riposte-init":"dist/cli/setup.js","riposte-run":"dist/cli/run.js","riposte-migrate":"dist/cli/migrate.js","riposte-provider-test":"dist/cli/provider-test.js","riposte-admin":"dist/cli/admin.js","riposte-config":"dist/cli/config.js"},"publishConfig":{"access":"public"},"scripts":{"dev":"tsx watch src/index.ts","build":"npm run build:scheduler && npm run build:server && npm run build:obfuscate && npm run build:admin && npm run build:sdk","build:server":"rimraf dist && tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/postbuild-esm.js && node scripts/fix-esm-imports.js","build:obfuscate":"node scripts/obfuscate.js","build:admin":"node scripts/build-admin.js","generate:sdk":"node scripts/generate-sdk.js","build:sdk":"rm -rf sdk/dist && npm run generate:sdk && tsc -p sdk/tsconfig.json","publish:sdk":"cd sdk && npm publish --access public","publish:sdk:dry-run":"cd sdk && npm publish --access public --dry-run","prepack":"npm run build","build:scheduler":"tsc web-components/riposte-scheduler.ts --outDir web-components --target ES2020 --module CommonJS --lib ES2020,DOM --moduleResolution node --esModuleInterop --skipLibCheck","lint":"eslint . --ext .ts","test":"vitest","test:run":"vitest run","test:coverage":"vitest run --coverage","test:watch":"vitest --watch","test:ui":"vitest --ui","test:setup":"./scripts/test.sh","db:generate":"tsx scripts/generate-migration.ts","db:migrate":"tsx scripts/run-migrations.ts","license":"tsx scripts/generate-license.ts","start":"node dist/src/index.js","cli:setup":"tsx cli/setup.ts","cli:run":"tsx cli/run.ts","cli:provider-test":"tsx cli/provider-test.ts","cli:config":"tsx cli/config.ts"},"optionalDependencies":{"imapflow":"^1.0.164","mailparser":"^3.7.5"},"dependencies":{"@riposte.co/sdk":"^0.4.x","@fastify/cors":"^11.1.0","@fastify/formbody":"^8.0.2","@fastify/swagger":"^9.5.1","@fastify/swagger-ui":"^5.2.3","@google-cloud/pubsub":"^4.11.0","better-sqlite3":"^12.2.0","bullmq":"^4.0.0","chalk":"^4.1.2","commander":"^9.5.0","diff":"^5.1.0","dotenv":"^17.2.2","drizzle-orm":"^0.44.5","fastify":"^5.6.0","googleapis":"^159.0.0","inquirer":"^8.2.5","ioredis":"^5.3.2","ora":"^5.4.1","pg":"^8.16.3","pino":"^9.9.5","pino-pretty":"^13.1.1","sharp":"^0.33.2","strip-json-comments":"^5.0.3","uuid":"^8.3.2"},"devDependencies":{"@types/diff":"^7.0.2","@types/inquirer":"^9.0.9","@types/node":"^24.6.2","@types/pg":"^8.15.5","@types/uuid":"^10.0.0","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.0.0","@vitest/ui":"^1.6.1","drizzle-kit":"^0.31.4","eslint":"^8.53.0","eslint-plugin-prettier":"^5.1.3","javascript-obfuscator":"^4.1.0","node-mocks-http":"^1.17.2","prettier":"^3.6.2","rimraf":"^5.0.5","ts-node":"^10.9.1","tsx":"^4.20.5","typescript":"^5.3.3","vitest":"^1.6.1"},"_id":"@riposte.co/server@0.4.6","gitHead":"3fa4216759fe6614497e74a88620fa05341fd4b7","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-C6yqhL6Xaq3/SJpuXTEI1DCGHpwTjcyyEW73zx4vJDO92pv8rG+FwfiZNGCw2qaFYSd7HvC92aCoWOKDfBfa6g==","shasum":"3b729481396c632587b87bcbc75c2df29a20f74f","tarball":"https://registry.npmjs.org/@riposte.co/server/-/server-0.4.6.tgz","fileCount":2909,"unpackedSize":30323715,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHj5qrdeFg/oy3UiKS7BHelgXLhyXVl2Q2WPe0RLH7CCAiEA1+QAfo5d6itOpFGC7B2RCt3tesMN4cYOMD8wiNjCoGo="}]},"_npmUser":{"name":"isaacnass","email":"isaacnass@gmail.com"},"directories":{},"maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/server_0.4.6_1762543517676_0.35769762418256934"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-02T00:08:27.254Z","modified":"2025-11-07T19:25:18.284Z","0.1.0":"2025-10-02T00:08:27.791Z","0.1.1":"2025-10-02T15:20:12.317Z","0.1.2":"2025-10-02T17:03:46.361Z","0.1.3":"2025-10-05T20:44:04.501Z","0.1.4":"2025-10-05T22:22:32.847Z","0.1.5":"2025-10-05T23:14:53.053Z","0.1.6":"2025-10-05T23:36:16.041Z","0.1.7":"2025-10-05T23:48:18.667Z","0.1.8":"2025-10-06T00:34:34.424Z","0.1.10":"2025-10-06T02:03:45.588Z","0.1.11":"2025-10-13T20:32:07.823Z","0.2.0":"2025-10-26T03:32:39.012Z","0.2.1":"2025-10-27T02:38:03.193Z","0.2.2":"2025-10-27T03:26:27.254Z","0.2.4":"2025-10-27T03:49:14.369Z","0.2.5":"2025-10-27T04:27:34.665Z","0.3.0":"2025-10-28T15:21:26.098Z","0.3.1":"2025-10-28T15:38:26.279Z","0.3.2":"2025-10-28T16:13:18.385Z","0.3.3":"2025-10-28T16:28:16.451Z","0.3.4":"2025-10-28T16:32:22.990Z","0.3.5":"2025-10-28T16:47:34.630Z","0.3.6":"2025-10-28T17:01:51.711Z","0.3.7":"2025-10-28T17:11:34.740Z","0.3.8":"2025-10-28T17:31:13.990Z","0.4.0":"2025-10-31T01:51:31.254Z","0.4.1":"2025-10-31T02:01:23.116Z","0.4.2":"2025-11-05T15:19:48.449Z","0.4.3":"2025-11-05T17:00:43.237Z","0.4.4":"2025-11-06T17:26:04.103Z","0.4.5":"2025-11-07T19:21:47.226Z","0.4.6":"2025-11-07T19:25:18.020Z"},"homepage":"https://riposte.co","description":"<p align=\"center\">   <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\"> </p>","maintainers":[{"name":"isaacnass","email":"isaacnass@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"assets/riposte-text.svg\" alt=\"Riposte logo\" width=\"280\">\n</p>\n\n# Riposte\n\n**On-premise email sync service - Cloud-API alternative**\n\nRiposte provides a unified API for multiple email providers (Gmail, Microsoft, future IMAP) with 90% cost savings compared to Cloud-APIs. All data stays on your infrastructure.\n\n## 🚀 Quick Start\n\n```bash\n# Scaffold your configuration (riposte/sync.config.json + riposte/.env.example)\nnpx riposte-init\n\n# Launch the daemon with the admin portal\nnpx riposte-run\n\n# Skip the admin portal\nnpx riposte-run --no-admin\n```\n\nThat's it! Your email sync service is running at:\n\n- **API Server**: http://localhost:8080\n- **Admin Portal**: Auto-selected port printed on startup (for example http://localhost:3001)\n\n## Installation at a glance\n\nRiposte follows a three-step flow so you always know what comes next:\n\n1. **Initialize** – Run `npx riposte-init` to auto-detect local services, scaffold `riposte/sync.config.json`/`.env.example`, and hand off deeper customization to the admin onboarding wizard.\n2. **Launch** – Start the runtime with `npx riposte-run` and watch the structured logs confirm database, queue, and migration health.\n3. **Admin** – Visit the onboarding flow at the admin portal URL shown after startup. It now behaves like a linear checklist: choose Google or Microsoft first, paste credentials with the exact scopes we flag, wire databases/queues, and (optionally) authorize a pilot account before copying the API call examples into your app.\n\nEach stage is documented in the [installation guide](docs/INSTALLATION.md), which expands on prerequisites, troubleshooting tips, and day-two operations once you are live.\n\n## 📦 Installation Options\n\n### What ships in the npm tarball?\n\nRunning `npm publish --dry-run` (or `npm pack`) lists every file that would be\nincluded in the release. You will see a number of entries under\n`admin-dist/.next/standalone/node_modules/…`. Those files come from the\nNext.js \"standalone\" build that powers the bundled admin portal. They are not a\ncopy of your development `node_modules`; instead they are the trimmed runtime\ndependencies that Next.js inlines alongside `server.js` so the `riposte-admin`\nCLI can boot without relying on an external installation. The build script\nalready deletes caches and other transient output, so the additional files are\nexpected and safe to publish.\n\n### Option 1: Global Installation (Recommended)\n\n```bash\nnpm install -g @riposte.co/server\nriposte-init\nriposte-run\n```\n\n### Option 2: Local Installation\n\n```bash\nnpm install @riposte.co/server\nnpx riposte-init\nnpx riposte-run\n```\n\n### Option 3: Development Setup\n\n```bash\ngit clone <private-repo>\ncd riposte\nnpm install\nnpm run setup\nnpm start\n```\n\n## ⚙️ Configuration\n\n### Quick Start (SQLite + In-Memory)\n\n- **Database**: SQLite file (`./riposte.db`)\n- **Cache**: In-memory\n- **Queues**: In-memory\n- **Perfect for**: Trying out, development, small deployments\n\n### Production Setup (PostgreSQL + Redis)\n\n- **Database**: PostgreSQL\n- **Cache**: Redis\n- **Queues**: Redis\n- **Perfect for**: Production, horizontal scaling\n\n### Database Configuration & Migrations\n\n- Set `DATABASE_URL` (or `TEST_DATABASE_URL`) to `file:./path/to.db` or any `sqlite:` URL to run with SQLite.\n- Set the same variable to a PostgreSQL connection string (for example `postgresql://user:pass@localhost:5432/riposte`) to run with Postgres.\n- The service automatically creates SQLite database files when using `file:` URLs.\n- Generate a new migration with `npm run db:generate <migration-name>`. The command compares the current schema to your\n  target database and writes the SQL files under `drizzle/sqlite` or `drizzle/postgres` as appropriate.\n- Run migrations with `npm run db:migrate`. The script picks the correct migration directory (`drizzle/sqlite` or `drizzle/postgres`) based on the active provider.\n- Generated migrations live under `drizzle/sqlite` or `drizzle/postgres` depending on the dialect selected when running `drizzle-kit`.\n- Riposte now auto-applies pending migrations during startup. Set `AUTO_APPLY_MIGRATIONS=false` (or\n  `riposte.migrations.autoApply` to `false` in `sync.config.json`) if you prefer to run the migration script\n  manually.\n\n### Authentication screen\n\nRiposte now ships with a built-in authentication screen that runs alongside your deployment at `/auth/authorize`. The product creates short-lived sessions and returns links that you can hand to end users—no external services required. The screen detects the correct provider based on the email address, renders a consent experience, and drives the entire PKCE exchange on the server.\n\nTerminology to avoid confusion:\n- Provider callback URI: The OAuth callback URL registered with Google or Microsoft that Riposte listens on to receive the authorization code (e.g., `http://localhost:8080/providers/gmail/callback`). Configure this under `riposte.oauth.<provider>.redirectUri` or the matching environment variable.\n- App redirect URL: The user-facing URL in your product where the browser should land after Riposte finishes authentication (e.g., `https://app.example.com/connect/success`). Configure this under `riposte.app.redirectUrl` or pass it when creating an auth session.\n\nOnce the provider completes the handshake, Riposte exchanges the code for tokens, associates the account with the originating session, and redirects the browser to your app redirect URL.\n\nCustomize the experience under `riposte.authScreen` inside `riposte/sync.config.json`. All of the values live in source control so you can review branding changes just like any other configuration update:\n\n```jsonc\n{\n  \"riposte\": {\n    \"authScreen\": {\n      \"enabled\": true,\n      \"publicUrl\": \"https://mail.example.com\",\n      \"brandName\": \"Acme Support\",\n      \"logoText\": \"AS\",\n      \"title\": \"Connect your email\",\n      \"subtitle\": \"We will securely connect your inbox for {{brand}}.\",\n      \"supportEmail\": \"support@example.com\",\n      \"submitButtonLabel\": \"Continue\",\n      \"customCssFile\": \"./branding/auth-screen.css\",\n      \"cors\": {\n        \"origin\": \"*\",\n      },\n    },\n  },\n}\n```\n\nPoint `customCssFile` at a stylesheet to control colors, fonts, or layout. The file is reloaded whenever it changes so you can iterate quickly in development. When `enabled` is set to `false` the server returns `503` for new session requests to make it clear that the experience has been turned off.\n\nBy default the screen is accessible from any origin. Set `riposte.authScreen.cors.origin` to a specific origin (or list of origins) if you need to lock it down for production embeds.\n\n## 🧪 Live provider smoke tests\n\nThe repository includes a Vitest suite that exercises real providers end-to-end. Enable it locally by setting `RUN_LIVE_PROVIDER_TESTS=true` and pointing the harness at one or more seeded accounts via either `PROVIDER_TEST_RUNS` (JSON array) or the simpler `PROVIDER_TEST_SENDER_ID`/`PROVIDER_TEST_RECIPIENT_IDS` flags described in `product/src/__tests__/integration/live-provider.integration.test.ts`.\n\nWhen calendar access is provisioned for the connected account the harness now validates basic calendar CRUD in addition to email send/receive. Specify `PROVIDER_TEST_CALENDAR_ID` to force the test to use a specific calendar; otherwise the first calendar returned by the provider will be used. Temporary events are deleted automatically even if an assertion fails.\n\n## 🔐 Licensing\n\nRiposte now enforces a license key for deployments that connect more than 100 accounts. Without a valid license the server will refuse new authorizations once 100 accounts are connected. A valid license lifts that limit (or applies a custom max if specified) and is verified with an Ed25519 signature at startup.\n\n### Configure license verification\n\nSet the following environment variable (typically inside `riposte/.env`):\n\n| Variable              | Description                                  |\n| --------------------- | -------------------------------------------- |\n| `RIPOSTE_LICENSE_KEY` | The signed license string issued by Riposte. |\n\nThe verifier ships with a baked-in Ed25519 public key (`product/src/common/license-authority.ts`). Riposte ignores runtime overrides unless the process runs under `NODE_ENV=test` so operators cannot self-issue licenses by swapping keys. Unit tests rely on that test-only escape hatch to inject ephemeral key pairs.\n\n> **Note:** If no valid license is configured the server logs a warning at startup and enforces the 100-account cap automatically.\n\n### Generate a signing key pair\n\nUse the bundled helper to create an Ed25519 key pair for signing licenses:\n\n```bash\nnpm run license -- keypair --output ./license-keys\n# or omit --output to print keys to the console only\n```\n\nThe command prints:\n\n- `riposte-license-private-key.pem` (PKCS8 private key for signing)\n- `riposte-license-public-key.pem` (SPKI public key)\n- Base64url versions of the public key for reference\n\nAfter generating a new pair, update `product/src/common/license-authority.ts` and `license/canonical-public-key.raw` with the printed base64url raw public key. Distribute the corresponding private key securely for license issuance; it should never be committed to git.\n\n### Sign a license key\n\nCreate licenses with custom expirations and limits using the same helper:\n\n```bash\nnpm run license -- sign \\\n  --expires 2025-12-31 \\\n  --max-accounts 1000 \\\n  --name \"Acme Corp\" \\\n  --id enterprise-2025 \\\n  --private-key-path ./license-keys/riposte-license-private-key.pem\n```\n\nKey details:\n\n- `--expires` accepts ISO-8601 dates or relative durations such as `180d` or `2y`.\n- `--max-accounts` is optional; omit it for unlimited accounts on that license.\n- `--name` and `--id` embed metadata that appears in server logs when the license is loaded.\n- Provide the private key via `--private-key`, `--private-key-path`, or the environment variables `RIPOSTE_LICENSE_PRIVATE_KEY(_PATH)`.\n\nThe command prints the signed license payload and the final `RIPOSTE_LICENSE_KEY` value to distribute.\n\n## 🔄 Migration\n\nWhen you're ready to scale from SQLite to PostgreSQL:\n\n```bash\nriposte-migrate --to postgresql\n```\n\nThis will:\n\n1. Back up your SQLite data\n2. Update configuration to PostgreSQL\n3. Restart the service\n4. Validate the migration\n\n## 🏗️ Architecture\n\n### Core Components\n\n- **API Server**: Fastify-based REST API (port 8080)\n- **Admin Portal**: Next.js web interface served from its own HTTP listener (auto-selected port, printed on startup)\n- **Database**: SQLite (dev) or PostgreSQL (prod)\n- **Cache/Queues**: In-memory (dev) or Redis (prod)\n\n### Supported Providers\n\n- **Gmail**: Full sync, labels, drafts, send\n- **Microsoft**: Full sync, folders, drafts, send\n- **IMAP**: Mailbox sync and raw message access (bring your own IMAP server)\n\n#### IMAP provider setup\n\nIMAP support is designed for legacy mailboxes that expose username/password or app-specific password credentials. Because IMAP\ndoes not provide OAuth, credentials are stored as provider tokens. To enable IMAP:\n\n1. Install the optional runtime dependencies in the environment where Riposte runs:\n\n   ```bash\n   npm install imapflow mailparser\n   ```\n\n2. Create an account in the `ProviderAuthToken` table (via the admin UI or directly through the database) using a JSON payload in\n   the `accessToken` field. Example:\n\n   ```json\n   {\n     \"host\": \"imap.example.com\",\n     \"port\": 993,\n     \"secure\": true,\n     \"username\": \"user@example.com\",\n     \"password\": \"app-specific-password\",\n     \"mailbox\": \"INBOX\"\n   }\n   ```\n\n   Additional `tls` options (for example `{\"rejectUnauthorized\": false}`) can be provided if your server uses a self-signed\n   certificate.\n\n3. Queue a historical sync or use the `/sync` endpoints to pull messages. IMAP support currently focuses on read-only\n   synchronization and raw message retrieval. Sending, label management, and calendar/contacts are not yet implemented for IMAP\n   accounts.\n\n### Key Features\n\n- **Real-time sync**: Push notifications + polling\n- **Rate limiting**: Global queue with provider limits\n- **Horizontal scaling**: Redis-based distributed system\n- **Data sovereignty**: Everything stays on-premise\n- **Cost savings**: 90% cheaper than Cloud-APIs\n\n## 📊 Business Value\n\n### Cost Comparison\n\n- **Cloud-APIs**: $1.50 per connected account\n- **Riposte**: $99/month unlimited accounts\n- **Savings**: 90% cost reduction\n\n### Target Market\n\n- **SMBs**: Priced out of Cloud-APIs\n- **Enterprises**: Want cost savings + data control\n- **Agencies**: Managing multiple clients\n- **Developers**: Building CRMs, ATSs, etc.\n\n## 🔧 Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm or yarn\n- PostgreSQL (for production)\n- Redis (for production)\n- [Optional] [`better-sqlite3`](https://github.com/WiseLibs/better-sqlite3) when running against SQLite (install with `npm install better-sqlite3`)\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone <private-repo>\ncd riposte\n\n# Install dependencies\nnpm install\n\n# Set up development environment\nnpm run setup\n\n# Start development server\nnpm run dev\n```\n\n### Notifications\n\nEach provider can use either webhook deliveries or polling to detect mailbox changes. Configure the preference in the `notifications` section of your `sync.config.json` (or via the corresponding environment variables). Gmail defaults to webhooks, while Microsoft starts in polling mode so the integration works without hosting a public webhook endpoint. Switch Microsoft to webhooks by setting `notifications.providers.microsoft.mode` to `\"webhook\"` once you have a reachable HTTPS callback.\n\nThe built-in polling engine runs automatically for every provider configured with `mode: \"polling\"`. Tune its behaviour under `notifications.polling`:\n\n```jsonc\n{\n  \"notifications\": {\n    \"polling\": {\n      \"intervalMs\": 60000, // How often Riposte polls each account\n      \"batchSize\": 25, // Messages fetched per account during a cycle\n      \"initialLookbackMs\": 900000, // Look back window for the very first poll (in ms)\n      \"maxAccountsPerCycle\": 10, // Accounts processed per polling loop\n    },\n  },\n}\n```\n\nOverride the same values via environment variables:\n\n```\nNOTIFICATIONS_POLLING_INTERVAL_MS=60000\nNOTIFICATIONS_POLLING_BATCH_SIZE=25\nNOTIFICATIONS_POLLING_INITIAL_LOOKBACK_MS=900000\nNOTIFICATIONS_POLLING_MAX_ACCOUNTS=10\n```\n\nWhenever a new account connects we enqueue an immediate polling run so you receive `message.received` events without waiting for the next interval.\n\n### Building for Production\n\n```bash\n# Build everything\nnpm run build\n\n# Start production server\nnpm start\n```\n\n## 📝 API Documentation\n\nOnce running, visit:\n\n- **Swagger UI**: http://localhost:8080/docs\n- **API Reference**: http://localhost:8080/documentation/json\n\n## 🛡️ Security\n\n- **API Key Authentication**: All endpoints require API key\n- **Data Encryption**: Sensitive data encrypted at rest\n- **On-premise Only**: No external data sharing\n- **Token Management**: Secure OAuth token storage\n\n## 📈 Monitoring\n\n- **Health Check**: `GET /healthz`\n- **Metrics**: Built-in performance monitoring\n- **Logs**: Structured logging with Pino\n- **Alerts**: Configurable error notifications\n\n## 🤝 Support\n\nFor support and questions:\n\n- **Documentation**: See `/docs` endpoint\n- **Issues**: Contact support team\n- **Updates**: `npm update riposte`\n\n## 📄 License\n\nUNLICENSED - Proprietary software\n\n---\n\n**Riposte** - The Cloud-API alternative that saves you 90% on email integration costs.\n","readmeFilename":"README.md"}