{"_id":"@ahextechnology/sucess-error-responses","_rev":"3-d45dbba890660e9e8b13161e7e91b2da","name":"@ahextechnology/sucess-error-responses","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@ahextechnology/sucess-error-responses","version":"1.0.0","keywords":["clientError","serverError","express-async-errors","handleErrors","pagination","successResponse"],"author":{"name":"Maneesha Padavala"},"license":"ISC","_id":"@ahextechnology/sucess-error-responses@1.0.0","maintainers":[{"name":"shivam30","email":"shivam@ahex.co.in"},{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},{"name":"saurabh.ahex","email":"saurabh@ahex.co.in"}],"homepage":"https://github.com/Maneesha7390/Error-handling#readme","bugs":{"url":"https://github.com/Maneesha7390/Error-handling/issues"},"dist":{"shasum":"f1aea6d8b157d67b94af608853ecd065dc577445","tarball":"https://registry.npmjs.org/@ahextechnology/sucess-error-responses/-/sucess-error-responses-1.0.0.tgz","fileCount":8,"integrity":"sha512-ZhOQlBQK6AQEYQIB8VUSSX83EOjDZJo4F+UeVYBb2LsBfp9br5KdKgPNkHvWj2b9nwuTzk07HUxl376K9ovy5w==","signatures":[{"sig":"MEYCIQDke09aWAhod1+Aemom4PpoNlAB+uZts4e99KADoxoOVAIhAPZgeTH5cxNHPmkCJAmcHVklgH7PXlurFNEj830p7JOd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13974},"main":"app.js","gitHead":"fae3616dacc0951d9b7a597ddc68dccc6d105d81","scripts":{"start":"nodemon app.js"},"_npmUser":{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},"repository":{"url":"git+https://github.com/Maneesha7390/Error-handling.git","type":"git"},"_npmVersion":"10.7.0","description":"This module provides a set of classes and functions for handling errors and sending responses in a Node.js application. It includes custom error classes, a status class, pagination support, and utility functions for error handling and sending structured r","directories":{},"_nodeVersion":"20.15.0","dependencies":{"moment":"^2.30.1","nodemon":"^3.1.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sucess-error-responses_1.0.0_1721121651813_0.5427548731646408","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@ahextechnology/sucess-error-responses","version":"1.1.0","keywords":["clientError","serverError","express-async-errors","handleErrors","pagination","successResponse"],"author":{"name":"Maneesha Padavala"},"license":"ISC","_id":"@ahextechnology/sucess-error-responses@1.1.0","maintainers":[{"name":"shivam30","email":"shivam@ahex.co.in"},{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},{"name":"saurabh.ahex","email":"saurabh@ahex.co.in"}],"homepage":"https://github.com/Maneesha7390/Error-handling#readme","bugs":{"url":"https://github.com/Maneesha7390/Error-handling/issues"},"dist":{"shasum":"e56b2472c11a3354d11728aad5666176ef8944b2","tarball":"https://registry.npmjs.org/@ahextechnology/sucess-error-responses/-/sucess-error-responses-1.1.0.tgz","fileCount":14,"integrity":"sha512-1Yd5+YtDOC2fMrgr50nm0WQ5ItB/LccLhZg0APLBT3tuhuY5Fg11MyQ8HhNcbkSu5m2r6g2nmEAS/JRGGwYOJg==","signatures":[{"sig":"MEUCIQC4Bw1juNG03ox28cmFS499iVFOKb35qTbgGn6VDSD+FQIgFWI1kNMapCkR7rPY53QcEzmDiTSm6kByE3Hx/+1eK9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25311},"main":"app.js","gitHead":"de983ec0c656af2082b53a14c9e2e8a7280e2b0d","scripts":{"start":"nodemon app.js"},"_npmUser":{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},"repository":{"url":"git+https://github.com/Maneesha7390/Error-handling.git","type":"git"},"_npmVersion":"10.8.2","description":"This module provides a set of classes and functions for handling errors and sending responses in a Node.js application. It includes custom error classes, a status class, pagination support, and utility functions for error handling and sending structured r","directories":{},"_nodeVersion":"20.19.2","dependencies":{"moment":"^2.30.1","nodemon":"^3.1.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sucess-error-responses_1.1.0_1774255846960_0.042360643567845635","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@ahextechnology/sucess-error-responses","version":"1.1.1","main":"app.js","scripts":{"start":"nodemon app.js"},"repository":{"type":"git","url":"git+https://github.com/Maneesha7390/Error-handling.git"},"keywords":["clientError","serverError","express-async-errors","handleErrors","pagination","successResponse"],"author":{"name":"Maneesha Padavala"},"license":"ISC","bugs":{"url":"https://github.com/Maneesha7390/Error-handling/issues"},"homepage":"https://github.com/Maneesha7390/Error-handling#readme","description":"This module provides a set of classes and functions for handling errors and sending responses in a Node.js application. It includes custom error classes, a status class, pagination support, and utility functions for error handling and sending structured r","dependencies":{"moment":"^2.30.1","nodemon":"^3.1.4"},"_id":"@ahextechnology/sucess-error-responses@1.1.1","gitHead":"aeee5e09f6b9bdb0811ef2b961a92f774a2ea0a9","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-uXsUSDM38I8zftJmRU9KXs68EnxgQVqm6IHpcqGYH8mip6kfRQ56TXdUiZOgfLLruFUmbr33bqK+hYnTXI6Qjg==","shasum":"e042688058175ac6b28f419ba1071cc992b90c98","tarball":"https://registry.npmjs.org/@ahextechnology/sucess-error-responses/-/sucess-error-responses-1.1.1.tgz","fileCount":14,"unpackedSize":25868,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIErtpMs7veJF5vkFqIU/ZbaBWQh4sV14Z6fiSEwIHtg9AiEA/dm/xY2n5X0E4DLz/+cTEXCezxmsH1+ZDo9QzXrH9sQ="}]},"_npmUser":{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},"directories":{},"maintainers":[{"name":"shivam30","email":"shivam@ahex.co.in"},{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},{"name":"saurabh.ahex","email":"saurabh@ahex.co.in"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sucess-error-responses_1.1.1_1774256188805_0.7371699829941678"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-16T09:20:51.699Z","modified":"2026-03-23T08:56:29.099Z","1.0.0":"2024-07-16T09:20:52.093Z","1.1.0":"2026-03-23T08:50:47.096Z","1.1.1":"2026-03-23T08:56:28.934Z"},"bugs":{"url":"https://github.com/Maneesha7390/Error-handling/issues"},"author":{"name":"Maneesha Padavala"},"license":"ISC","homepage":"https://github.com/Maneesha7390/Error-handling#readme","keywords":["clientError","serverError","express-async-errors","handleErrors","pagination","successResponse"],"repository":{"type":"git","url":"git+https://github.com/Maneesha7390/Error-handling.git"},"description":"This module provides a set of classes and functions for handling errors and sending responses in a Node.js application. It includes custom error classes, a status class, pagination support, and utility functions for error handling and sending structured r","maintainers":[{"name":"shivam30","email":"shivam@ahex.co.in"},{"name":"maneeshapadavala","email":"maneesha.p@ahex.co.in"},{"name":"saurabh.ahex","email":"saurabh@ahex.co.in"}],"readme":"# @ahextechnology/sucess-error-responses\r\n\r\nUtility package for consistent API responses in Node.js/Express applications.\r\n\r\nIt supports:\r\n- Legacy response format (`sendResponse`, `handleError`, `Status`, `Pagination`)\r\n- Standardized success/error envelopes (`successResponse`, `errorResponse`)\r\n- Custom application errors (`AppError`, `createErrorCatalog`, `errorResponseFromError`)\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @ahextechnology/sucess-error-responses\r\n```\r\n\r\n## Exports\r\n\r\n```js\r\nconst {\r\n  // Legacy API\r\n  NoResponseError,\r\n  ServerError,\r\n  ClientError,\r\n  Status,\r\n  Pagination,\r\n  handleError,\r\n  sendResponse,\r\n\r\n  // Standardized API\r\n  successResponse,\r\n  errorResponse,\r\n  errorResponseFromError,\r\n  SuccessResponse,\r\n  ErrorResponse,\r\n  Meta,\r\n  ErrorDetail,\r\n\r\n  // Custom error utilities\r\n  AppError,\r\n  createErrorCatalog,\r\n} = require('@ahextechnology/sucess-error-responses');\r\n```\r\n\r\n## Standardized Response Format\r\n\r\n### Success response shape\r\n\r\n```json\r\n{\r\n  \"success\": true,\r\n  \"message\": \"User fetched successfully\",\r\n  \"data\": { \"id\": 1, \"name\": \"John\" },\r\n  \"meta\": null,\r\n  \"timestamp\": \"2026-03-23T06:58:26.641Z\"\r\n}\r\n```\r\n\r\n### Error response shape\r\n\r\n```json\r\n{\r\n  \"success\": false,\r\n  \"message\": \"Validation failed\",\r\n  \"error\": {\r\n    \"code\": \"VALIDATION_ERROR\",\r\n    \"statusCode\": 422,\r\n    \"details\": [\r\n      { \"field\": \"email\", \"message\": \"Email is required\" }\r\n    ]\r\n  },\r\n  \"timestamp\": \"2026-03-23T06:58:26.641Z\"\r\n}\r\n```\r\n\r\n## Usage\r\n\r\n### 1) successResponse\r\n\r\n```js\r\nconst express = require('express');\r\nconst { successResponse } = require('@ahextechnology/sucess-error-responses');\r\n\r\nconst app = express();\r\n\r\napp.get('/user/:id', (req, res) => {\r\n  const user = { id: Number(req.params.id), name: 'John' };\r\n  return successResponse(res, 'User fetched successfully', user);\r\n});\r\n```\r\n\r\nWith pagination metadata:\r\n\r\n```js\r\nconst { successResponse } = require('@ahextechnology/sucess-error-responses');\r\n\r\napp.get('/users', (req, res) => {\r\n  const users = [{ id: 1 }, { id: 2 }];\r\n  return successResponse(\r\n    res,\r\n    'Users listed',\r\n    users,\r\n    { page: 1, limit: 10, total: 25 } // meta\r\n  );\r\n});\r\n```\r\n\r\n### 2) errorResponse\r\n\r\n```js\r\nconst { errorResponse, ErrorDetail } = require('@ahextechnology/sucess-error-responses');\r\n\r\napp.get('/not-found', (req, res) => {\r\n  return errorResponse(res, 'User not found', 'USER_NOT_FOUND', 404);\r\n});\r\n\r\napp.get('/validation', (req, res) => {\r\n  const details = [\r\n    new ErrorDetail('email', 'Email is required'),\r\n    new ErrorDetail('password', 'Password must be at least 8 characters'),\r\n  ];\r\n  return errorResponse(res, 'Validation failed', 'VALIDATION_ERROR', 422, details);\r\n});\r\n```\r\n\r\nMasked error example (hide real HTTP status from clients):\r\n\r\n```js\r\nreturn errorResponse(\r\n  res,\r\n  'Database connection failed',\r\n  'DB_CONNECTION_FAILED',\r\n  503,   // real status\r\n  null,\r\n  true,  // maskError\r\n  1001   // body.error.statusCode\r\n);\r\n```\r\n\r\n### 3) AppError + createErrorCatalog + errorResponseFromError\r\n\r\n```js\r\nconst {\r\n  createErrorCatalog,\r\n  errorResponseFromError,\r\n} = require('@ahextechnology/sucess-error-responses');\r\n\r\nconst DB_ERRORS = createErrorCatalog({\r\n  CONNECTION_FAILED: {\r\n    message: 'Database connection failed',\r\n    code: 'DB_CONNECTION_FAILED',\r\n    statusCode: 503,\r\n    errorNumber: 1001,\r\n  },\r\n  RECORD_NOT_FOUND: {\r\n    message: 'Record not found',\r\n    code: 'NOT_FOUND',\r\n    statusCode: 404,\r\n  },\r\n});\r\n\r\napp.get('/catalog-error', (req, res) => {\r\n  return errorResponseFromError(res, DB_ERRORS.CONNECTION_FAILED, true);\r\n});\r\n```\r\n\r\n## Legacy API (Backward Compatibility)\r\n\r\nThe original API is still available:\r\n- `sendResponse(req, res, next, items, statusModel, pagination)`\r\n- `handleError(err, req, res, next)`\r\n- `Status`, `Pagination`\r\n- `NoResponseError`, `ServerError`, `ClientError`\r\n\r\nExample:\r\n\r\n```js\r\nconst {\r\n  sendResponse,\r\n  Status,\r\n  Pagination,\r\n} = require('@ahextechnology/sucess-error-responses');\r\n\r\napp.get('/legacy/items', (req, res, next) => {\r\n  const items = [{ id: 1 }, { id: 2 }];\r\n  const status = new Status(200, 'Success', 'Items fetched successfully');\r\n  const pagination = new Pagination('id', 'asc', 2, 10, 1, false);\r\n  return sendResponse(req, res, next, items, status, pagination);\r\n});\r\n```\r\n\r\n## Local Verification\r\n\r\n```bash\r\nnpm test\r\n```\r\n\r\n## Publish Checklist (npm)\r\n\r\n1. Update `version` in `package.json` (semver).\r\n2. Confirm package name is correct: `@ahextechnology/sucess-error-responses`.\r\n3. Run:\r\n   ```bash\r\n   npm install\r\n   npm test\r\n   ```\r\n4. Login and publish:\r\n   ```bash\r\n   npm login\r\n   npm publish --access public\r\n   ```\r\n\r\n## License\r\n\r\nISC\r\n","readmeFilename":"README.md"}