{"_id":"@digigov-oss/disability-registry-epan-client","_rev":"3-954209ede1ea57ba2b271e95b47268e3","name":"@digigov-oss/disability-registry-epan-client","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.0":{"name":"@digigov-oss/disability-registry-epan-client","version":"0.1.0","keywords":["epan","disability-registry","amka","vat"],"author":{"name":"Panagiotis Giannitsaros","email":"pgiannitsaros@admin.grnet.gr"},"_id":"@digigov-oss/disability-registry-epan-client@0.1.0","maintainers":[{"name":"pskarvelis","email":"pskarvelis@admin.grnet.gr"},{"name":"dmichail","email":"dimitrios.michail@gmail.com"},{"name":"dmassaad-grnet","email":"dmassaad@admin.grnet.gr"}],"homepage":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/blob/main/README.md","bugs":{"url":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/issues"},"dist":{"shasum":"1699de961d28e26e3e3f3c88b6b8b6e06b9144e8","tarball":"https://registry.npmjs.org/@digigov-oss/disability-registry-epan-client/-/disability-registry-epan-client-0.1.0.tgz","fileCount":28,"integrity":"sha512-OrL7qdfG/l2cAsPdZfuuV8Mii1+2IJlp/4eakA9cjek7ZjaDn6NJuFbtuZudPkPF46vsL/ja9CvWXDi499CpNw==","signatures":[{"sig":"MEYCIQDxhEoOKqGB0rFwL7tt+90Hecs9OcWF+G+AJ+pHbAwmKQIhAPrZPyDVxb+CGPAJwHkga69S7glxBMKqF2x0jqZPPM6N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63917},"main":"dist/cjs/index.js","type":"module","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=16.13.1"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"813ce7ea4065da6478cca77dbf787df1b1c683d9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"node --experimental-specifier-resolution=node --experimental-modules --no-warnings --loader ts-node/esm ./test/test.ts","build":"rm -fr dist/* && tsc -p tsconfig.json && tsc -p tsconfig.commonjs.json && ./setType.sh","format":"prettier --write \"src/**/*.{ts,json}\" \"test/**/*.{ts,json}\"","testcjs":"node ./test/test.cjs","testesm":"node --experimental-json-modules --no-warnings ./test/test.mjs","lint:fix":"eslint \"src/**/*.ts\" \"test/**/*.ts\" --fix","format:check":"prettier --check \"src/**/*.{ts,json}\" \"test/**/*.{ts,json}\""},"_npmUser":{"name":"dmichail","email":"dimitrios.michail@gmail.com"},"licenses":[{"url":"http://en.wikipedia.org/wiki/MIT_License","type":"MIT"}],"repository":{"url":"git+https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client.git","type":"git"},"_npmVersion":"10.8.2","description":"Client for Disability Registry API of EPAN","directories":{"src":"src","test":"test"},"_nodeVersion":"20.18.3","dependencies":{"axios":"^1.9.0"},"eslintConfig":{"rules":{"max-len":["error",{"code":100}],"no-console":1,"no-extra-boolean-cast":0,"@typescript-eslint/no-explicit-any":0,"@typescript-eslint/no-floating-promises":0,"@typescript-eslint/no-unsafe-assignment":0,"@typescript-eslint/restrict-plus-operands":0,"@typescript-eslint/no-unsafe-member-access":0,"@typescript-eslint/explicit-module-boundary-types":0},"parser":"@typescript-eslint/parser","extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"plugins":["@typescript-eslint"],"overrides":[{"files":["src/**/*.ts"],"extends":["plugin:@typescript-eslint/recommended-requiring-type-checking"],"parserOptions":{"project":"./tsconfig.json"}},{"files":["test/**/*.ts"],"rules":{"no-console":0}}],"parserOptions":{"sourceType":"module","ecmaVersion":2020}},"eslintIgnore":[],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","ts-node":"^10.4.0","prettier":"^2.8.8","typescript":"^4.5.4","@types/node":"^16.9.0","object-inspect":"^1.12.2","tsconfig-paths":"^3.12.0","@types/object-inspect":"^1.8.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/disability-registry-epan-client_0.1.0_1766573031918_0.8557434327750362","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@digigov-oss/disability-registry-epan-client","version":"0.1.9","keywords":["epan","disability-registry","amka","vat"],"author":{"name":"Panagiotis Giannitsaros","email":"pgiannitsaros@admin.grnet.gr"},"license":"MIT","_id":"@digigov-oss/disability-registry-epan-client@0.1.9","maintainers":[{"name":"pskarvelis","email":"pskarvelis@admin.grnet.gr"},{"name":"dmichail","email":"dimitrios.michail@gmail.com"},{"name":"dmassaad-grnet","email":"dmassaad@admin.grnet.gr"}],"homepage":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/blob/main/README.md","bugs":{"url":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/issues"},"dist":{"shasum":"6c1aef318d97f8690d60482c4aed23344fe4bcc8","tarball":"https://registry.npmjs.org/@digigov-oss/disability-registry-epan-client/-/disability-registry-epan-client-0.1.9.tgz","fileCount":15,"integrity":"sha512-aI6U9AyWRIt0+mjDd57w5/Fx0aYbRytg1qnRzaQ91Htab6EgaysN1oB61JhBLCJP05CbtgMG2UjbfDBVqTNNXw==","signatures":[{"sig":"MEUCIEouyPR5hEh3WocSKeZG92Kp9KGBjf9UCEU1EobxfIRXAiEAmqY+46UNVNyUC/UGQcsA9U48lwifOPVwVT5Xh/CVskU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43677},"main":"dist/cjs/index.js","type":"module","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=16.13.1"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"9a2a4dd4544a9c397d90950ed8fc2ed3267de652","scripts":{"test":"node --experimental-specifier-resolution=node --experimental-modules --no-warnings --loader ts-node/esm ./test/test.ts","build":"rm -fr dist/* && tsc -p tsconfig.json && tsc -p tsconfig.commonjs.json && ./setType.sh","testcjs":"node ./test/test.cjs","testesm":"node --experimental-json-modules --no-warnings ./test/test.mjs"},"_npmUser":{"name":"dmichail","email":"dimitrios.michail@gmail.com"},"repository":{"url":"git+https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client.git","type":"git"},"_npmVersion":"10.8.2","description":"Client for Disability Registry API of EPAN","directories":{"src":"src","test":"test"},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"axios":"^1.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.4.0","typescript":"^4.5.4","@types/node":"^16.9.0","tsconfig-paths":"^3.12.0"},"_npmOperationalInternal":{"tmp":"tmp/disability-registry-epan-client_0.1.9_1767185334099_0.4335831996429429","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@digigov-oss/disability-registry-epan-client","version":"0.1.10","type":"module","description":"Client for Disability Registry API of EPAN","author":{"name":"Panagiotis Giannitsaros","email":"pgiannitsaros@admin.grnet.gr"},"license":"MIT","engines":{"node":">=16.13.1"},"dependencies":{"axios":"^1.9.0"},"repository":{"type":"git","url":"git+https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client.git"},"bugs":{"url":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/issues"},"homepage":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/blob/main/README.md","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts"}},"publishConfig":{"access":"public"},"sideEffects":false,"directories":{"src":"src","test":"test"},"scripts":{"prepublishOnly":"npm run build","build":"rm -fr dist/* && tsc -p tsconfig.json && tsc -p tsconfig.commonjs.json && cp src/config-registry.json dist/esm/config-registry.json && cp src/config-registry.json dist/cjs/config-registry.json && cp src/config-validation.json dist/esm/config-validation.json && cp src/config-validation.json dist/cjs/config-validation.json && ./setType.sh","format":"prettier --write \"src/**/*.{ts,json}\" \"test/**/*.{ts,json}\" \"*.{md,json}\"","format:check":"prettier --check \"src/**/*.{ts,json}\" \"test/**/*.{ts,json}\" \"*.{md,json}\"","lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","lint:fix":"eslint \"src/**/*.ts\" \"test/**/*.ts\" --fix","type-check":"tsc --noEmit","test":"node --experimental-specifier-resolution=node --experimental-modules --no-warnings --loader ts-node/esm ./test/test-disability-registry.ts","test-disability-validation":"node --experimental-specifier-resolution=node --experimental-modules --no-warnings --loader ts-node/esm ./test/test-disability-validation.ts","test-disability-registry":"node --experimental-specifier-resolution=node --experimental-modules --no-warnings --loader ts-node/esm ./test/test-disability-registry.ts","testesm":"node --experimental-json-modules --no-warnings ./test/test-disability-registry.mjs","testesm-disability-validation":"node --experimental-json-modules --no-warnings ./test/test-disability-validation.mjs","testesm-disability-registry":"node --experimental-json-modules --no-warnings ./test/test-disability-registry.mjs","testcjs":"node ./test/test-disability-registry.cjs","testcjs-disability-validation":"node ./test/test-disability-validation.cjs","testcjs-disability-registry":"node ./test/test-disability-registry.cjs"},"keywords":["epan","disability-registry","amka","vat"],"devDependencies":{"@types/node":"^16.9.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.57.0","prettier":"^3.0.0","ts-node":"^10.4.0","tsconfig-paths":"^3.12.0","typescript":"^4.5.4"},"_id":"@digigov-oss/disability-registry-epan-client@0.1.10","gitHead":"ecd067fcb876a0df920add3debdc1e75b99d7a85","_nodeVersion":"20.18.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-6MVzVVFWlz52T954xkH9N4xarHLMpe+agZERtRvDb9ocJERRU4Aiz7DLEkEImerDiGHPQAeKG1G9W1FmmqdWtQ==","shasum":"474ce9644e7b6313246073cd8c781d622f9ef653","tarball":"https://registry.npmjs.org/@digigov-oss/disability-registry-epan-client/-/disability-registry-epan-client-0.1.10.tgz","fileCount":17,"unpackedSize":45236,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHv2eJ63wcLLTaJ73Pr642GfQnKdV4tP1yePQvmFDsleAiBDQQRNQN6m9E2GD0+TFvUVQkX9cu3f0jrRKtvcYDRDPg=="}]},"_npmUser":{"name":"dmichail","email":"dimitrios.michail@gmail.com"},"maintainers":[{"name":"pskarvelis","email":"pskarvelis@admin.grnet.gr"},{"name":"dmichail","email":"dimitrios.michail@gmail.com"},{"name":"dmassaad-grnet","email":"dmassaad@admin.grnet.gr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/disability-registry-epan-client_0.1.10_1767619303929_0.3239587134200115"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-24T10:43:51.815Z","modified":"2026-01-05T13:21:44.324Z","0.1.0":"2025-12-24T10:43:52.064Z","0.1.9":"2025-12-31T12:48:54.247Z","0.1.10":"2026-01-05T13:21:44.069Z"},"bugs":{"url":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/issues"},"author":{"name":"Panagiotis Giannitsaros","email":"pgiannitsaros@admin.grnet.gr"},"license":"MIT","homepage":"https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client/-/blob/main/README.md","keywords":["epan","disability-registry","amka","vat"],"repository":{"type":"git","url":"git+https://gitlab.grnet.gr/digigov-oss/disability-registry-epan-client.git"},"description":"Client for Disability Registry API of EPAN","maintainers":[{"name":"pskarvelis","email":"pskarvelis@admin.grnet.gr"},{"name":"dmichail","email":"dimitrios.michail@gmail.com"},{"name":"dmassaad-grnet","email":"dmassaad@admin.grnet.gr"}],"readme":"# Client for Disability Registry API of EPAN\n\nClient to connect to Disability Registry API, useful for nextjs/nodejs projects.\n\nThis client supports two different APIs:\n\n1. **Disability Registry API** (`authenticate`, `searchCard`, `updateContact`):\n   - Base URLs: `test-mitroo.epan.gov.gr` / `mitroo.epan.gov.gr`\n   - Auth: Bearer Token (JWT) + API Key\n\n2. **Disability Validation API** (`validateByAmka`):\n   - Base URL: `api.karta.epan.gov.gr`\n   - Auth: Bearer Token + IP whitelisting (no API Key needed)\n\nFor detailed API documentation, see:\n- [Disability Registry API Specification](disability-registry.api.md) - for `authenticate`, `searchCard`, and `updateContact`\n- [Disability Validation API Specification](disability-validation.api.md) - for `validateByAmka`\n\n## Quick Start\n\n```javascript\nimport {\n  authenticate,\n  searchCard,\n  updateContact,\n  validateByAmka,\n} from \"@digigov-oss/disability-registry-epan-client\";\n\n// Example: Disability Registry API workflow\nconst example = async () => {\n  const overrides = {\n    prod: false,\n    apiKey: \"your-api-key-here\",\n  };\n\n  try {\n    // Authenticate to get a token\n    const tokenResponse = await authenticate(\"username\", \"password\", overrides);\n\n    // Search for a disability card by AMKA\n    const cardData = await searchCard(\n      { amka: \"30119500000\" },\n      { email: \"test@example.com\", mobile: \"6983619982\" },\n      {\n        ...overrides,\n        token: tokenResponse.id_token,\n      },\n    );\n\n    // Update contact information\n    await updateContact(\n      \"16000000\", // VAT number\n      { email: \"newemail@example.com\", mobile: \"6983619982\" },\n      { ...overrides, token: tokenResponse.id_token },\n    );\n  } catch (error) {\n    console.error(error);\n  }\n};\n\n// Example: Disability Validation API\nconst validateExample = async () => {\n  try {\n    const result = await validateByAmka(\"17074604863\", {\n      token: \"your-jwt-token-here\",\n    });\n\n    if (result.isValid) {\n      console.log(\"Valid disability card with >= 50% disability\");\n    } else {\n      console.log(result.reason || \"Does not meet criteria\");\n    }\n  } catch (error) {\n    console.error(error);\n  }\n};\n```\n\n## Configuration\n\nYou can use `overrides` to override the default configuration:\n\n- `baseUrl`: Override the base URL (defaults to test or prod based on `prod` flag, or validation endpoint for `validateByAmka`)\n- `prod`: Set to `true` for production environment, `false` for test (default: `false`)\n- `apiKey`: Your API Key for requests (required for Disability Registry API endpoints, optional for `validateByAmka`)\n- `token`: Pre-authenticated JWT token or long-lived token (required for all endpoints including `validateByAmka`)\n\n```javascript\nconst overrides = {\n  baseUrl: \"https://custom-endpoint.example.com\",\n  prod: true,\n  apiKey: \"your-api-key-here\",\n  token: \"your-jwt-token-here\",\n};\n```\n\n## Testing\n\nThe project includes test scripts for both APIs. Before running tests, create configuration files from the templates:\n\n1. **For Disability Registry API:**\n   ```bash\n   cp test/config-disability-registry.json.template test/config-disability-registry.json\n   # Edit test/config-disability-registry.json with your credentials\n   ```\n\n2. **For Disability Validation API:**\n   ```bash\n   cp test/config-disability-validation.json.template test/config-disability-validation.json\n   # Edit test/config-disability-validation.json with your AMKA, token, and optionally baseUrl and apiKey\n   ```\n\n**Available test scripts:**\n- `npm test` or `npm run test-disability-registry` - Run TypeScript tests for Disability Registry API\n- `npm run test-disability-validation` - Run TypeScript tests for Disability Validation API\n- `npm run testesm` or `npm run testesm-disability-registry` - Run ESM tests for Disability Registry API\n- `npm run testesm-disability-validation` - Run ESM tests for Disability Validation API\n- `npm run testcjs` or `npm run testcjs-disability-registry` - Run CommonJS tests for Disability Registry API\n- `npm run testcjs-disability-validation` - Run CommonJS tests for Disability Validation API\n\n## Important Notes\n\n- The token obtained from `authenticate()` is valid for 1 day. You can also use a long-lived token via `overrides.token`\n- All API calls (except `authenticate`) require a Bearer token\n- Disability Registry API endpoints (`authenticate`, `searchCard`, `updateContact`) require both Bearer token and API Key\n- `validateByAmka` requires Bearer token and IP whitelisting (no API Key needed)\n- `searchCard` accepts either `amka` or `vatNumber` (or both) in search parameters\n- `updateContact` requires a `vatNumber` parameter\n- For detailed endpoint specifications, request/response formats, and error handling, see the [Disability Registry API Specification](disability-registry.api.md) and [Disability Validation API Specification](disability-validation.api.md)\n\n## Known Issues\n\nThis client is still under development and may contain issues. The Disability Registry API was implemented according to the documentation available [here](https://test-mitroo.epan.gov.gr/documentation/card/redoc/index.html).\n","readmeFilename":"README.md"}