From f568099a3bb9b38f309e6a7df7284d1a9b904cbc Mon Sep 17 00:00:00 2001 From: Pyry Rouvila Date: Wed, 6 Sep 2023 14:40:18 +0300 Subject: [PATCH] feat: fetch registrations with id's from search events (#2) --- .eslintrc.json | 18 +- package-lock.json | 1483 +++---- packages/dci-api/package.json | 4 +- packages/dci-api/src/constants.ts | 10 +- packages/dci-api/src/error.ts | 6 +- .../healthcheck/healthcheck-handler.test.ts | 38 +- .../src/healthcheck/healthcheck-handler.ts | 4 +- packages/dci-api/src/index.ts | 8 +- packages/dci-api/src/registry-core-api.d.ts | 2029 ++++----- packages/dci-api/src/routes.ts | 22 +- packages/dci-api/src/server.ts | 66 +- .../sync-search/sync-search-handler.test.ts | 62 +- .../src/sync-search/sync-search-handler.ts | 51 +- .../test-fetchregistration-response.json | 57 + .../test-opencrvs-api-response.json | 116 - .../test-searchevents-response.json | 12 + packages/dci-api/src/test-utilities.ts | 22 +- packages/dci-opencrvs-bridge/package.json | 4 + .../src/dci-to-opencrvs.ts | 48 +- packages/dci-opencrvs-bridge/src/error.ts | 4 +- packages/dci-opencrvs-bridge/src/index.ts | 6 +- .../src/opencrvs-to-dci.ts | 294 +- packages/dci-opencrvs-bridge/src/types.ts | 11 +- packages/opencrvs-api/codegen.yml | 2 +- packages/opencrvs-api/graphql.schema.json | 1069 ++--- packages/opencrvs-api/src/constants.ts | 21 +- packages/opencrvs-api/src/error.ts | 4 +- packages/opencrvs-api/src/gateway.ts | 3922 ++++++++--------- packages/opencrvs-api/src/index.ts | 208 +- packages/opencrvs-api/src/types.ts | 55 + packages/opencrvs-api/tsconfig.json | 2 +- 31 files changed, 4358 insertions(+), 5300 deletions(-) create mode 100644 packages/dci-api/src/sync-search/test-fetchregistration-response.json delete mode 100644 packages/dci-api/src/sync-search/test-opencrvs-api-response.json create mode 100644 packages/dci-api/src/sync-search/test-searchevents-response.json create mode 100644 packages/opencrvs-api/src/types.ts diff --git a/.eslintrc.json b/.eslintrc.json index a645e5d..6f6b555 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -15,9 +15,19 @@ }, "rules": { "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/no-floating-promises": "off" + "@typescript-eslint/no-floating-promises": "off", + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "lodash", + "message": "Please use lodash/fp instead." + } + ], + "patterns": ["lodash/*", "!lodash/fp"] + } + ] }, - "ignorePatterns": [ - "*.d.ts" - ] + "ignorePatterns": ["*.d.ts"] } diff --git a/package-lock.json b/package-lock.json index 706c32d..9f7c2e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,9 +33,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -46,9 +45,8 @@ }, "node_modules/@ardatan/relay-compiler": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", - "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -77,9 +75,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -88,9 +85,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -101,9 +97,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -113,9 +108,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -128,9 +122,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -140,15 +133,13 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@ardatan/relay-compiler/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -168,9 +159,8 @@ }, "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -181,9 +171,8 @@ }, "node_modules/@ardatan/sync-fetch": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", - "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1" }, @@ -193,9 +182,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" @@ -206,9 +194,8 @@ }, "node_modules/@babel/code-frame/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -218,9 +205,8 @@ }, "node_modules/@babel/code-frame/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -232,33 +218,29 @@ }, "node_modules/@babel/code-frame/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/code-frame/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/code-frame/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -268,29 +250,27 @@ }, "node_modules/@babel/compat-data": { "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz", - "integrity": "sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.15", - "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.15", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -307,9 +287,8 @@ }, "node_modules/@babel/core/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -324,9 +303,8 @@ }, "node_modules/@babel/core/node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -336,26 +314,23 @@ }, "node_modules/@babel/core/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.22.10", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.22.10", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -366,9 +341,8 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -376,9 +350,8 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -387,13 +360,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.22.10", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", + "@babel/helper-validator-option": "^7.22.5", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -404,38 +376,34 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-member-expression-to-functions": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -451,27 +419,24 @@ }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.5", "@babel/types": "^7.22.5" @@ -482,9 +447,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -493,40 +457,37 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", - "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz", - "integrity": "sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==", + "version": "7.22.9", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-module-imports": "^7.22.5", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.15" + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -537,9 +498,8 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -549,18 +509,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-member-expression-to-functions": "^7.22.5", @@ -575,9 +533,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -587,9 +544,8 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -599,9 +555,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -611,40 +566,36 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", + "version": "7.22.5", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.22.5", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", - "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" }, "engines": { "node": ">=6.9.0" @@ -652,9 +603,8 @@ }, "node_modules/@babel/highlight": { "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.4.2", @@ -666,9 +616,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -678,9 +627,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -692,33 +640,29 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -727,10 +671,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.15.tgz", - "integrity": "sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==", + "version": "7.22.14", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -740,10 +683,8 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -757,10 +698,8 @@ }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.7", @@ -777,9 +716,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -789,9 +727,8 @@ }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz", - "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -804,9 +741,8 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -819,9 +755,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -834,9 +769,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -846,9 +780,8 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -861,9 +794,8 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -875,10 +807,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", - "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", + "version": "7.22.10", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -890,18 +821,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "version": "7.22.6", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -914,18 +844,16 @@ }, "node_modules/@babel/plugin-transform-classes/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.5" @@ -938,10 +866,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", - "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", + "version": "7.22.10", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -954,9 +881,8 @@ }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz", - "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-flow": "^7.22.5" @@ -969,10 +895,9 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -985,9 +910,8 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.5", "@babel/helper-function-name": "^7.22.5", @@ -1002,9 +926,8 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1017,9 +940,8 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1031,12 +953,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", - "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.9", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1049,9 +970,8 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.5" @@ -1064,10 +984,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1080,9 +999,8 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1095,9 +1013,8 @@ }, "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1109,16 +1026,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-module-imports": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1129,9 +1045,8 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1144,9 +1059,8 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1160,9 +1074,8 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1174,10 +1087,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", - "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1186,33 +1098,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.22.5", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.15.tgz", - "integrity": "sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/parser": "^7.22.11", + "@babel/types": "^7.22.11", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1222,9 +1132,8 @@ }, "node_modules/@babel/traverse/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -1239,27 +1148,24 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/traverse/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/types": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz", - "integrity": "sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==", + "version": "7.22.11", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1376,9 +1282,8 @@ }, "node_modules/@graphql-codegen/add": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-3.2.3.tgz", - "integrity": "sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^3.1.1", "tslib": "~2.4.0" @@ -1389,15 +1294,13 @@ }, "node_modules/@graphql-codegen/add/node_modules/tslib": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/cli": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-3.3.1.tgz", - "integrity": "sha512-4Es8Y9zFeT0Zx2qRL7L3qXDbbqvXK6aID+8v8lP6gaYD+uWx3Jd4Hsq5vxwVBR+6flm0BW/C85Qm0cvmT7O6LA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/generator": "^7.18.13", "@babel/template": "^7.18.10", @@ -1447,9 +1350,8 @@ }, "node_modules/@graphql-codegen/cli/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1464,15 +1366,13 @@ }, "node_modules/@graphql-codegen/cli/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/core": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-3.1.0.tgz", - "integrity": "sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.1.0", "@graphql-tools/schema": "^9.0.0", @@ -1485,9 +1385,8 @@ }, "node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1502,15 +1401,13 @@ }, "node_modules/@graphql-codegen/core/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/introspection": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/introspection/-/introspection-3.0.1.tgz", - "integrity": "sha512-D6vJQTEL/np4EmeUHm5spLK59cr+AMXEoLRoTI+dagFzlHYDTfXZH6F7uhKaakxcj0SAQhIWKvGMggotUdEtyg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.1.0", "@graphql-codegen/visitor-plugin-common": "^3.0.1", @@ -1522,9 +1419,8 @@ }, "node_modules/@graphql-codegen/introspection/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1539,15 +1435,13 @@ }, "node_modules/@graphql-codegen/introspection/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/plugin-helpers": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1562,15 +1456,13 @@ }, "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/schema-ast": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz", - "integrity": "sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.1.0", "@graphql-tools/utils": "^9.0.0", @@ -1582,9 +1474,8 @@ }, "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1599,15 +1490,13 @@ }, "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-3.0.4.tgz", - "integrity": "sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.2.0", "@graphql-codegen/schema-ast": "^3.0.1", @@ -1621,9 +1510,8 @@ }, "node_modules/@graphql-codegen/typescript-operations": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz", - "integrity": "sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.2.0", "@graphql-codegen/typescript": "^3.0.4", @@ -1637,9 +1525,8 @@ }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1654,15 +1541,13 @@ }, "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1677,15 +1562,13 @@ }, "node_modules/@graphql-codegen/typescript/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-codegen/visitor-plugin-common": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.1.tgz", - "integrity": "sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-codegen/plugin-helpers": "^4.2.0", "@graphql-tools/optimize": "^1.3.0", @@ -1704,9 +1587,8 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz", - "integrity": "sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.0.0", "change-case-all": "1.0.15", @@ -1721,15 +1603,13 @@ }, "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@graphql-tools/apollo-engine-loader": { "version": "7.3.26", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz", - "integrity": "sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/utils": "^9.2.1", @@ -1742,9 +1622,8 @@ }, "node_modules/@graphql-tools/batch-execute": { "version": "8.5.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz", - "integrity": "sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "dataloader": "^2.2.2", @@ -1757,9 +1636,8 @@ }, "node_modules/@graphql-tools/code-file-loader": { "version": "7.3.23", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz", - "integrity": "sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-tag-pluck": "7.5.2", "@graphql-tools/utils": "^9.2.1", @@ -1773,9 +1651,8 @@ }, "node_modules/@graphql-tools/delegate": { "version": "9.0.35", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.35.tgz", - "integrity": "sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/batch-execute": "^8.5.22", "@graphql-tools/executor": "^0.0.20", @@ -1791,9 +1668,8 @@ }, "node_modules/@graphql-tools/executor": { "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.20.tgz", - "integrity": "sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@graphql-typed-document-node/core": "3.2.0", @@ -1807,9 +1683,8 @@ }, "node_modules/@graphql-tools/executor-graphql-ws": { "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz", - "integrity": "sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@repeaterjs/repeater": "3.0.4", @@ -1825,9 +1700,8 @@ }, "node_modules/@graphql-tools/executor-http": { "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz", - "integrity": "sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@repeaterjs/repeater": "^3.0.4", @@ -1844,9 +1718,8 @@ }, "node_modules/@graphql-tools/executor-legacy-ws": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz", - "integrity": "sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "@types/ws": "^8.0.0", @@ -1860,9 +1733,8 @@ }, "node_modules/@graphql-tools/git-loader": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.3.0.tgz", - "integrity": "sha512-gcGAK+u16eHkwsMYqqghZbmDquh8QaO24Scsxq+cVR+vx1ekRlsEiXvu+yXVDbZdcJ6PBIbeLcQbEu+xhDLmvQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-tag-pluck": "7.5.2", "@graphql-tools/utils": "^9.2.1", @@ -1877,9 +1749,8 @@ }, "node_modules/@graphql-tools/github-loader": { "version": "7.3.28", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.28.tgz", - "integrity": "sha512-OK92Lf9pmxPQvjUNv05b3tnVhw0JRfPqOf15jZjyQ8BfdEUrJoP32b4dRQQem/wyRL24KY4wOfArJNqzpsbwCA==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/executor-http": "^0.1.9", @@ -1895,9 +1766,8 @@ }, "node_modules/@graphql-tools/graphql-file-loader": { "version": "7.5.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz", - "integrity": "sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/import": "6.7.18", "@graphql-tools/utils": "^9.2.1", @@ -1911,9 +1781,8 @@ }, "node_modules/@graphql-tools/graphql-tag-pluck": { "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz", - "integrity": "sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.16.8", "@babel/plugin-syntax-import-assertions": "^7.20.0", @@ -1928,9 +1797,8 @@ }, "node_modules/@graphql-tools/import": { "version": "6.7.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.18.tgz", - "integrity": "sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "resolve-from": "5.0.0", @@ -1942,18 +1810,16 @@ }, "node_modules/@graphql-tools/import/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@graphql-tools/json-file-loader": { "version": "7.4.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz", - "integrity": "sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "globby": "^11.0.3", @@ -1966,9 +1832,8 @@ }, "node_modules/@graphql-tools/load": { "version": "7.8.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.14.tgz", - "integrity": "sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/schema": "^9.0.18", "@graphql-tools/utils": "^9.2.1", @@ -1981,9 +1846,8 @@ }, "node_modules/@graphql-tools/merge": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/utils": "^9.2.1", "tslib": "^2.4.0" @@ -1994,9 +1858,8 @@ }, "node_modules/@graphql-tools/optimize": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", - "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -2006,9 +1869,8 @@ }, "node_modules/@graphql-tools/prisma-loader": { "version": "7.2.72", - "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz", - "integrity": "sha512-0a7uV7Fky6yDqd0tI9+XMuvgIo6GAqiVzzzFV4OSLry4AwiQlI3igYseBV7ZVOGhedOTqj/URxjpiv07hRcwag==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/url-loader": "^7.17.18", "@graphql-tools/utils": "^9.2.1", @@ -2035,9 +1897,8 @@ }, "node_modules/@graphql-tools/prisma-loader/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -2052,15 +1913,13 @@ }, "node_modules/@graphql-tools/prisma-loader/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@graphql-tools/relay-operation-optimizer": { "version": "6.5.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", - "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/relay-compiler": "12.0.0", "@graphql-tools/utils": "^9.2.1", @@ -2072,9 +1931,8 @@ }, "node_modules/@graphql-tools/schema": { "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/merge": "^8.4.1", "@graphql-tools/utils": "^9.2.1", @@ -2087,9 +1945,8 @@ }, "node_modules/@graphql-tools/url-loader": { "version": "7.17.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz", - "integrity": "sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==", "dev": true, + "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", "@graphql-tools/delegate": "^9.0.31", @@ -2111,9 +1968,8 @@ }, "node_modules/@graphql-tools/utils": { "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "tslib": "^2.4.0" @@ -2124,9 +1980,8 @@ }, "node_modules/@graphql-tools/wrap": { "version": "9.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.4.2.tgz", - "integrity": "sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/delegate": "^9.0.31", "@graphql-tools/schema": "^9.0.18", @@ -2140,9 +1995,8 @@ }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "dev": true, + "license": "MIT", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -2458,9 +2312,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2480,9 +2333,8 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2578,10 +2430,8 @@ }, "node_modules/@parcel/watcher": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", - "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -2610,34 +2460,13 @@ "@parcel/watcher-win32-x64": "2.3.0" } }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", - "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@parcel/watcher-darwin-arm64": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", - "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2650,211 +2479,10 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", - "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", - "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", - "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", - "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", - "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", - "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", - "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", - "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", - "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", - "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@peculiar/asn1-schema": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", - "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", "dev": true, + "license": "MIT", "dependencies": { "asn1js": "^3.0.5", "pvtsutils": "^1.3.2", @@ -2863,9 +2491,8 @@ }, "node_modules/@peculiar/json-schema": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -2875,9 +2502,8 @@ }, "node_modules/@peculiar/webcrypto": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", - "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", @@ -2891,8 +2517,9 @@ }, "node_modules/@pkgr/utils": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "fast-glob": "^3.3.0", @@ -2910,9 +2537,8 @@ }, "node_modules/@repeaterjs/repeater": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", - "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node10": { "version": "1.0.9", @@ -2946,9 +2572,8 @@ }, "node_modules/@types/js-yaml": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", - "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.12", @@ -2957,15 +2582,19 @@ }, "node_modules/@types/json-stable-stringify": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", - "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "dev": true, "license": "MIT" }, + "node_modules/@types/lodash": { + "version": "4.14.197", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "20.5.6", "dev": true, @@ -2973,9 +2602,8 @@ }, "node_modules/@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.0", @@ -2989,9 +2617,8 @@ }, "node_modules/@types/ws": { "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3263,15 +2890,13 @@ }, "node_modules/@whatwg-node/events": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", - "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@whatwg-node/fetch": { "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", - "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/webcrypto": "^1.4.0", "@whatwg-node/node-fetch": "^0.3.6", @@ -3282,18 +2907,16 @@ }, "node_modules/@whatwg-node/fetch/node_modules/web-streams-polyfill": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@whatwg-node/node-fetch": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", - "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", "dev": true, + "license": "MIT", "dependencies": { "@whatwg-node/events": "^0.0.3", "busboy": "^1.6.0", @@ -3350,9 +2973,8 @@ }, "node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -3362,9 +2984,8 @@ }, "node_modules/agent-base/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -3379,15 +3000,13 @@ }, "node_modules/agent-base/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3599,15 +3218,13 @@ }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/asn1js": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "pvtsutils": "^1.3.2", "pvutils": "^1.1.3", @@ -3619,9 +3236,8 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3635,9 +3251,8 @@ }, "node_modules/auto-bind": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", - "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3658,15 +3273,13 @@ }, "node_modules/babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", @@ -3725,8 +3338,9 @@ }, "node_modules/big-integer": { "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", "dev": true, - "license": "Unlicense", "engines": { "node": ">=0.6" } @@ -3751,8 +3365,9 @@ }, "node_modules/bplist-parser": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", "dev": true, - "license": "MIT", "dependencies": { "big-integer": "^1.6.44" }, @@ -3782,8 +3397,6 @@ }, "node_modules/browserslist": { "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, "funding": [ { @@ -3799,6 +3412,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001517", "electron-to-chromium": "^1.4.477", @@ -3814,9 +3428,8 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } @@ -3854,8 +3467,9 @@ }, "node_modules/bundle-name": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", "dev": true, - "license": "MIT", "dependencies": { "run-applescript": "^5.0.0" }, @@ -3898,9 +3512,8 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -3908,17 +3521,14 @@ }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001527", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz", - "integrity": "sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==", + "version": "1.0.30001525", "dev": true, "funding": [ { @@ -3933,13 +3543,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capital-case": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -3963,9 +3573,8 @@ }, "node_modules/change-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -3983,9 +3592,8 @@ }, "node_modules/change-case-all": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", "dev": true, + "license": "MIT", "dependencies": { "change-case": "^4.1.2", "is-lower-case": "^2.0.2", @@ -4032,9 +3640,8 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4063,9 +3670,8 @@ }, "node_modules/cli-truncate": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -4145,9 +3751,8 @@ }, "node_modules/common-tags": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -4159,9 +3764,8 @@ }, "node_modules/constant-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -4170,9 +3774,8 @@ }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.5.0", @@ -4184,9 +3787,8 @@ }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -4205,9 +3807,8 @@ }, "node_modules/cross-fetch": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } @@ -4227,9 +3828,8 @@ }, "node_modules/dataloader": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dateformat": { "version": "4.6.3", @@ -4249,9 +3849,8 @@ }, "node_modules/debounce": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { "version": "3.2.7", @@ -4263,9 +3862,8 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4277,8 +3875,9 @@ }, "node_modules/default-browser": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", "dev": true, - "license": "MIT", "dependencies": { "bundle-name": "^3.0.0", "default-browser-id": "^3.0.0", @@ -4294,8 +3893,9 @@ }, "node_modules/default-browser-id": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, - "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -4320,8 +3920,9 @@ }, "node_modules/define-lazy-prop": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -4346,27 +3947,24 @@ }, "node_modules/dependency-graph": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -4406,9 +4004,8 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -4416,9 +4013,8 @@ }, "node_modules/dotenv": { "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -4428,18 +4024,16 @@ }, "node_modules/dset": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", - "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/electron-to-chromium": { "version": "1.4.508", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz", - "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -4456,9 +4050,8 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -4796,8 +4389,9 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", + "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.8.5" @@ -4972,8 +4566,9 @@ }, "node_modules/execa": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -4994,8 +4589,9 @@ }, "node_modules/execa/node_modules/mimic-fn": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -5005,8 +4601,9 @@ }, "node_modules/execa/node_modules/onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -5032,9 +4629,8 @@ }, "node_modules/extract-files": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", - "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20 || >= 14.13" }, @@ -5049,9 +4645,8 @@ }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -5060,8 +4655,9 @@ }, "node_modules/fast-diff": { "version": "1.3.0", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.1", @@ -5090,9 +4686,8 @@ }, "node_modules/fast-querystring": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", - "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", "dev": true, + "license": "MIT", "dependencies": { "fast-decode-uri-component": "^1.0.1" } @@ -5111,18 +4706,16 @@ }, "node_modules/fast-url-parser": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^1.3.2" } }, "node_modules/fast-url-parser/node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", @@ -5134,18 +4727,16 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fbjs": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "dev": true, + "license": "MIT", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -5158,9 +4749,8 @@ }, "node_modules/fbjs-css-vars": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/figures": { "version": "3.2.0", @@ -5256,6 +4846,18 @@ "dev": true, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "dev": true, @@ -5288,9 +4890,8 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -5318,8 +4919,9 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -5455,9 +5057,8 @@ }, "node_modules/graphql-config": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.5.0.tgz", - "integrity": "sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-tools/graphql-file-loader": "^7.3.7", "@graphql-tools/json-file-loader": "^7.3.7", @@ -5486,9 +5087,8 @@ }, "node_modules/graphql-config/node_modules/cosmiconfig": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -5501,18 +5101,16 @@ }, "node_modules/graphql-config/node_modules/jiti": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.17.1.tgz", - "integrity": "sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/graphql-config/node_modules/minimatch": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", - "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5522,9 +5120,8 @@ }, "node_modules/graphql-request": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "dev": true, + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -5535,8 +5132,7 @@ }, "node_modules/graphql-tag": { "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "license": "MIT", "dependencies": { "tslib": "^2.1.0" }, @@ -5549,9 +5145,8 @@ }, "node_modules/graphql-ws": { "version": "5.12.1", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.12.1.tgz", - "integrity": "sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5645,9 +5240,8 @@ }, "node_modules/header-case": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, + "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -5706,9 +5300,8 @@ }, "node_modules/http-proxy-agent": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-6.1.1.tgz", - "integrity": "sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -5719,9 +5312,8 @@ }, "node_modules/http-proxy-agent/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5736,15 +5328,13 @@ }, "node_modules/http-proxy-agent/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-6.2.1.tgz", - "integrity": "sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -5755,9 +5345,8 @@ }, "node_modules/https-proxy-agent/node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5772,14 +5361,14 @@ }, "node_modules/https-proxy-agent/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/human-signals": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } @@ -5828,9 +5417,8 @@ }, "node_modules/immutable": { "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.8.0" } @@ -5852,9 +5440,8 @@ }, "node_modules/import-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.2" }, @@ -5872,9 +5459,8 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -5933,18 +5519,16 @@ }, "node_modules/invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, + "license": "MIT", "dependencies": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" @@ -5968,9 +5552,8 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -6047,8 +5630,9 @@ }, "node_modules/is-docker": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6088,8 +5672,9 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -6113,9 +5698,8 @@ }, "node_modules/is-lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", - "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -6183,9 +5767,8 @@ }, "node_modules/is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, + "license": "MIT", "dependencies": { "is-unc-path": "^1.0.0" }, @@ -6206,8 +5789,9 @@ }, "node_modules/is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6259,9 +5843,8 @@ }, "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, + "license": "MIT", "dependencies": { "unc-path-regex": "^0.1.2" }, @@ -6282,9 +5865,8 @@ }, "node_modules/is-upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", - "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -6302,17 +5884,17 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -6322,8 +5904,9 @@ }, "node_modules/is-wsl/node_modules/is-docker": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6346,27 +5929,24 @@ }, "node_modules/isomorphic-ws": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", "dev": true, + "license": "MIT", "peerDependencies": { "ws": "*" } }, "node_modules/jiti": { "version": "1.19.3", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz", - "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/jose": { - "version": "4.14.6", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.6.tgz", - "integrity": "sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==", + "version": "4.14.4", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } @@ -6389,9 +5969,8 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -6406,9 +5985,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -6423,9 +6001,8 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -6434,9 +6011,8 @@ }, "node_modules/json-stable-stringify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", "dev": true, + "license": "MIT", "dependencies": { "jsonify": "^0.0.1" }, @@ -6451,9 +6027,8 @@ }, "node_modules/json-to-pretty-yaml": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", - "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "remedial": "^1.0.7", "remove-trailing-spaces": "^1.0.6" @@ -6475,9 +6050,8 @@ }, "node_modules/jsonify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, + "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6504,15 +6078,13 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", - "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -6537,9 +6109,8 @@ }, "node_modules/listr2/node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6568,7 +6139,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { @@ -6593,9 +6163,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -6611,9 +6180,8 @@ }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6628,9 +6196,8 @@ }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -6640,18 +6207,16 @@ }, "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lower-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", - "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -6674,17 +6239,17 @@ }, "node_modules/map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", @@ -6696,9 +6261,8 @@ }, "node_modules/meros": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz", - "integrity": "sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=13" }, @@ -6823,9 +6387,8 @@ }, "node_modules/no-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -6833,9 +6396,8 @@ }, "node_modules/node-addon-api": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-domexception": { "version": "1.0.0", @@ -6876,15 +6438,13 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nodemon": { "version": "3.0.1", @@ -6953,8 +6513,9 @@ }, "node_modules/npm-run-path": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -6967,8 +6528,9 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6978,15 +6540,13 @@ }, "node_modules/nullthrows": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7095,8 +6655,9 @@ }, "node_modules/open": { "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, - "license": "MIT", "dependencies": { "default-browser": "^4.0.0", "define-lazy-prop": "^3.0.0", @@ -7222,9 +6783,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -7237,18 +6797,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/param-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -7267,9 +6825,8 @@ }, "node_modules/parse-filepath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -7281,9 +6838,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -7299,9 +6855,8 @@ }, "node_modules/pascal-case": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -7309,9 +6864,8 @@ }, "node_modules/path-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -7348,9 +6902,8 @@ }, "node_modules/path-root": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, + "license": "MIT", "dependencies": { "path-root-regex": "^0.1.0" }, @@ -7360,9 +6913,8 @@ }, "node_modules/path-root-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7550,8 +7102,9 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -7572,9 +7125,8 @@ }, "node_modules/promise": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, + "license": "MIT", "dependencies": { "asap": "~2.0.3" } @@ -7603,18 +7155,16 @@ }, "node_modules/pvtsutils": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.6.1" } }, "node_modules/pvutils": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -7675,9 +7225,8 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", @@ -7697,9 +7246,8 @@ }, "node_modules/relay-runtime": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", - "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "fbjs": "^3.0.0", @@ -7708,24 +7256,21 @@ }, "node_modules/remedial": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", - "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", "dev": true, + "license": "(MIT OR Apache-2.0)", "engines": { "node": "*" } }, "node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/remove-trailing-spaces": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", - "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/require-directory": { "version": "2.1.1", @@ -7737,9 +7282,8 @@ }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve": { "version": "1.22.4", @@ -7788,9 +7332,8 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", @@ -7808,8 +7351,9 @@ }, "node_modules/run-applescript": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, - "license": "MIT", "dependencies": { "execa": "^5.0.0" }, @@ -7822,8 +7366,9 @@ }, "node_modules/run-applescript/node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -7844,16 +7389,18 @@ }, "node_modules/run-applescript/node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/run-applescript/node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -7863,8 +7410,9 @@ }, "node_modules/run-applescript/node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -7874,8 +7422,9 @@ }, "node_modules/run-applescript/node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7980,9 +7529,8 @@ }, "node_modules/scuid": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", - "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/secure-json-parse": { "version": "2.7.0", @@ -8005,9 +7553,8 @@ }, "node_modules/sentence-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -8016,15 +7563,13 @@ }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -8047,9 +7592,8 @@ }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8074,9 +7618,8 @@ }, "node_modules/signedsource": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", - "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/simple-update-notifier": { "version": "2.0.0", @@ -8099,9 +7642,8 @@ }, "node_modules/slice-ansi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -8113,9 +7655,8 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -8137,9 +7678,8 @@ }, "node_modules/sponge-case": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", - "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -8173,9 +7713,8 @@ }, "node_modules/string-env-interpolation": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", - "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width": { "version": "4.2.3", @@ -8253,8 +7792,9 @@ }, "node_modules/strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -8297,17 +7837,17 @@ }, "node_modules/swap-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", - "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/synckit": { "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, - "license": "MIT", "dependencies": { "@pkgr/utils": "^2.3.1", "tslib": "^2.5.0" @@ -8338,17 +7878,17 @@ }, "node_modules/title-case": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/titleize": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -8369,9 +7909,8 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8416,9 +7955,8 @@ }, "node_modules/ts-log": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", - "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ts-node": { "version": "10.9.1", @@ -8573,8 +8111,6 @@ }, "node_modules/ua-parser-js": { "version": "1.0.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", - "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "dev": true, "funding": [ { @@ -8586,6 +8122,7 @@ "url": "https://paypal.me/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } @@ -8606,9 +8143,8 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8631,9 +8167,8 @@ }, "node_modules/unixify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", "dev": true, + "license": "MIT", "dependencies": { "normalize-path": "^2.1.1" }, @@ -8643,9 +8178,8 @@ }, "node_modules/unixify/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -8655,16 +8189,15 @@ }, "node_modules/untildify": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -8680,6 +8213,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -8693,18 +8227,16 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -8719,9 +8251,8 @@ }, "node_modules/urlpattern-polyfill": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/util-deprecate": { "version": "1.0.2", @@ -8735,9 +8266,8 @@ }, "node_modules/value-or-promise": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -8760,9 +8290,8 @@ }, "node_modules/webcrypto-core": { "version": "1.7.7", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", - "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", "dev": true, + "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", @@ -8816,9 +8345,8 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.11", @@ -8858,9 +8386,8 @@ }, "node_modules/ws": { "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -8892,18 +8419,16 @@ }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yaml-ast-parser": { "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/yargs": { "version": "17.7.2", @@ -8956,9 +8481,11 @@ "@hapi/boom": "^10.0.1", "@hapi/hapi": "^21.3.2", "hapi-pino": "^12.1.0", + "lodash": "^4.17.21", "typescript": "^5.1.6" }, "devDependencies": { + "@types/lodash": "^4.14.197", "@types/node": "^20.5.3", "msw": "0.0.0-fetch.rc-16", "nodemon": "^3.0.1", @@ -8970,7 +8497,11 @@ "packages/dci-opencrvs-bridge": { "version": "0.1", "license": "ISC", + "dependencies": { + "lodash": "^4.17.21" + }, "devDependencies": { + "@types/lodash": "^4.14.197", "typescript": "^5.2.2" } }, diff --git a/packages/dci-api/package.json b/packages/dci-api/package.json index 2cd6a12..778e18b 100644 --- a/packages/dci-api/package.json +++ b/packages/dci-api/package.json @@ -8,15 +8,17 @@ "start": "nodemon --watch ../../packages --exec ts-node src/index.ts", "test": "node --require ts-node/register --test src/**/*.test.ts", "test:watch": "node --require ts-node/register --test --watch src/**/*.test.ts", - "generate-openapi-types": "openapi-typescript https://raw.githubusercontent.com/spdci/standards/draft/release/yaml/registry_core_api_v1.0.0.yaml -o ./src/registry-core-api.d.ts" + "generate-openapi-types": "openapi-typescript https://raw.githubusercontent.com/spdci/standards/draft/release/yaml/registry_core_api_v1.0.0.yaml -o ./src/registry-core-api.d.ts && npx prettier --write ./src/registry-core-api.d.ts" }, "dependencies": { "@hapi/boom": "^10.0.1", "@hapi/hapi": "^21.3.2", "hapi-pino": "^12.1.0", + "lodash": "^4.17.21", "typescript": "^5.1.6" }, "devDependencies": { + "@types/lodash": "^4.14.197", "@types/node": "^20.5.3", "msw": "0.0.0-fetch.rc-16", "nodemon": "^3.0.1", diff --git a/packages/dci-api/src/constants.ts b/packages/dci-api/src/constants.ts index 3fb6729..44b17e8 100644 --- a/packages/dci-api/src/constants.ts +++ b/packages/dci-api/src/constants.ts @@ -1,7 +1,7 @@ -export const HOST = process.env.HOST ?? "0.0.0.0"; -export const PORT = process.env.PORT ?? 1660; -export const DEFAULT_TIMEOUT_MS = 600000; -export const NODE_ENV = process.env.NODE_ENV; +export const HOST = process.env.HOST ?? '0.0.0.0' +export const PORT = process.env.PORT ?? 1660 +export const DEFAULT_TIMEOUT_MS = 600000 +export const NODE_ENV = process.env.NODE_ENV /** Tests */ -export const NO_RESPONSE_MOCK = Boolean(process.env.NO_RESPONSE_MOCK); +export const NO_RESPONSE_MOCK = Boolean(process.env.NO_RESPONSE_MOCK) diff --git a/packages/dci-api/src/error.ts b/packages/dci-api/src/error.ts index f588b4a..715156f 100644 --- a/packages/dci-api/src/error.ts +++ b/packages/dci-api/src/error.ts @@ -1,4 +1,4 @@ -import type * as Hapi from "@hapi/hapi"; +import type * as Hapi from '@hapi/hapi' export function error( req: Hapi.Request, @@ -7,7 +7,7 @@ export function error( ) { return res .response({ - error: { code, message: req.response.message }, + error: { code, message: req.response.message } }) - .code(code); + .code(code) } diff --git a/packages/dci-api/src/healthcheck/healthcheck-handler.test.ts b/packages/dci-api/src/healthcheck/healthcheck-handler.test.ts index d0f7f9f..825d1d9 100644 --- a/packages/dci-api/src/healthcheck/healthcheck-handler.test.ts +++ b/packages/dci-api/src/healthcheck/healthcheck-handler.test.ts @@ -1,27 +1,27 @@ -import { afterEach, beforeEach, describe, it } from "node:test"; -import assert from "node:assert"; -import type * as Hapi from "@hapi/hapi"; -import { createServer } from "../server"; +import { afterEach, beforeEach, describe, it } from 'node:test' +import assert from 'node:assert' +import type * as Hapi from '@hapi/hapi' +import { createServer } from '../server' -describe("GET /health", () => { - let server: Hapi.Server; +describe('GET /health', () => { + let server: Hapi.Server beforeEach(async () => { - const { init } = await createServer(); - server = await init(); - }); + const { init } = await createServer() + server = await init() + }) afterEach(async () => { - await server.stop(); - }); + await server.stop() + }) - it("responds with success", async () => { + it('responds with success', async () => { const res = await server.inject({ - method: "GET", - url: "/health", - }); + method: 'GET', + url: '/health' + }) - assert.strictEqual(res.statusCode, 200); - assert.strictEqual(res.payload, JSON.stringify({ success: true })); - }); -}); + assert.strictEqual(res.statusCode, 200) + assert.strictEqual(res.payload, JSON.stringify({ success: true })) + }) +}) diff --git a/packages/dci-api/src/healthcheck/healthcheck-handler.ts b/packages/dci-api/src/healthcheck/healthcheck-handler.ts index 8253306..8279ba8 100644 --- a/packages/dci-api/src/healthcheck/healthcheck-handler.ts +++ b/packages/dci-api/src/healthcheck/healthcheck-handler.ts @@ -1,3 +1,3 @@ export const healthcheckHandler = () => { - return { success: true }; -}; + return { success: true } +} diff --git a/packages/dci-api/src/index.ts b/packages/dci-api/src/index.ts index 17ae78f..696f8d8 100644 --- a/packages/dci-api/src/index.ts +++ b/packages/dci-api/src/index.ts @@ -1,7 +1,7 @@ -import { createServer } from "./server"; +import { createServer } from './server' createServer().then(async (server) => { - await server.start(); -}); + await server.start() +}) -export type * from "./registry-core-api"; +export type * from './registry-core-api' diff --git a/packages/dci-api/src/registry-core-api.d.ts b/packages/dci-api/src/registry-core-api.d.ts index a83ef6a..f62e06c 100644 --- a/packages/dci-api/src/registry-core-api.d.ts +++ b/packages/dci-api/src/registry-core-api.d.ts @@ -4,79 +4,86 @@ */ export interface paths { - "/registry/search": { + '/registry/search': { /** * /registry/search * @description Search person(s) in registry using identifier or custome attributes */ - post: operations["post_reg_search"]; - }; - "/registry/on-search": { + post: operations['post_reg_search'] + } + '/registry/on-search': { /** * /registry/on-search * @description Search results through callback */ - post: operations["post_reg_on-search"]; - }; - "/registry/subscribe": { + post: operations['post_reg_on-search'] + } + '/registry/subscribe': { /** * /registry/subscribe * @description Subscribe to a life event with registry */ - post: operations["post_reg_subscribe"]; - }; - "/registry/notify": { + post: operations['post_reg_subscribe'] + } + '/registry/on-subscribe': { + /** + * /registry/on-subscribe + * @description Subscribe results through callback + */ + post: operations['post_reg_on-subscribe'] + } + '/registry/notify': { /** * /registry/notify * @description Registry to notify a life event to subscrbiers */ - post: operations["post_reg_notify"]; - }; - "/registry/txn/status": { + post: operations['post_reg_notify'] + } + '/registry/unsubscribe': { + /** + * /registry/unsubscribe + * @description Unsubscribe existing subscription(s) by subscription_code + */ + post: operations['post_reg_unsubscribe'] + } + '/registry/on-unsubscribe': { + /** + * /registry/on-unsubscribe + * @description Unsubscribe response as a callback + */ + post: operations['post_reg_on-unsubscribe'] + } + '/registry/txn/status': { /** * /registry/txn/status * @description Perform async status check of previous civil registry transanctions using transaction_id and/or reference_id(s) */ - post: operations["post_reg_txnstatus"]; - }; - "/registry/txn/on-status": { + post: operations['post_reg_txnstatus'] + } + '/registry/txn/on-status': { /** * /registry/txn/on-status * @description Response to async status check of previous civil registrt transanctions using callback */ - post: operations["post_reg_on-txnstatus"]; - }; - "/registry/sync/search": { + post: operations['post_reg_on-txnstatus'] + } + '/registry/sync/search': { /** * /registry/sync/search * @description Search person(s) in registry using identifier or custome attributes */ - post: operations["post_reg_sync_search"]; - }; - "/registry/sync/subscriptions": { - /** - * /registry/sync/subscriptions - * @description To retrive list of subscriptions - */ - post: operations["post_reg_sync_subscriptions"]; - }; - "/registry/sync/unsubscribe": { - /** - * /registry/sync/unsubscribe - * @description Unsubscribe to a life event with registry - */ - post: operations["post_reg_sync_unsubscribe"]; - }; - "/registry/sync/txn/status": { + post: operations['post_reg_sync_search'] + } + '/registry/sync/txn/status': { /** * /registry/sync/txn/status - * @description Perform async status check of previous civil registry transanctions using transaction_id and/or reference_id(s) + * @description Sync status check of registry Async APIs */ - post: operations["post_reg_sync_txnstatus"]; - }; + post: operations['post_reg_sync_txnstatus'] + } } -export type webhooks = Record; +export type webhooks = Record export interface components { schemas: { @@ -86,14 +93,14 @@ export interface components { * 2. This will enumerate foundational and functioanl id's to easily resolvable addressess
* 3. This property is intended to unambiguously refer to an object, such as a person, beneficiary, user, etc.,
* 4. Few examples:
- * - id@identifier-type.id-provider e.g token:12345@mosip, vid:543215@mosip
- * - id@civil-registry.issuing-agency e.g id:12345@crvs, brn:12345@crvs, mrn:12345@crvs
+ * - id@identifier-type.id-provider e.g token:12345@nid, vid:543215@nid
+ * - id@civil-registry.issuing-agency e.g id:12345@civil-reg, brn:12345@civil-reg, mrn:12345@civil-reg
* - id@functional-identifier.issuing-agency e.g id:12345@voter-id, id:12345@driving-license, mobile:12345@farmer-reg
* Note: id provider should be made configurable and solutions should adapt to the local jurisdiction and policies. * - * @example vid:54321@mosip + * @example vid:54321@nid */ - cdpi_PersonId: string; + cdpi_PersonId: Record /** * @description An identifier type includes unique numbers legally assigned to individuals.
* Reference: [Types of ID](https://id4d.worldbank.org/guide/types-id-systems) @@ -105,12 +112,12 @@ export interface components { * * @enum {string} */ - dci_IdentifierType: "UIN" | "BRN" | "MRN" | "DRN"; + dci_IdentifierType: 'UIN' | 'BRN' | 'MRN' | 'DRN' dci_IdentifierTypeValue: { - identifier_type?: components["schemas"]["dci_IdentifierType"]; + identifier_type?: components['schemas']['dci_IdentifierType'] /** @description Value of the identifier */ - identifier_value?: string; - }; + identifier_value?: string + } /** * @description Marital status reference database: Standardized codes/values representing different marital status categories
* Reference: [FHIR Marital Status](https://hl7.org/fhir/DSTU2/valueset-marital-status.html)
@@ -126,7 +133,7 @@ export interface components { * * @enum {string} */ - dci_MaritalStatus: "S" | "M" | "W" | "A" | "D" | "L" | "U"; + dci_MaritalStatus: 'S' | 'M' | 'W' | 'A' | 'D' | 'L' | 'U' /** * @description The name data object represents a person's name with various components.
* Reference: [FHIR XPN - extended person name](https://v2plus.hl7.org/2021Jan/data-type/XPN.html#XPN-1)
@@ -134,60 +141,63 @@ export interface components { */ dci_Name: { /** @description Surname(s) or last name(s) of the applicant */ - sur_name?: string; + sur_name?: string /** @description Given name(s) or first name(s) of the applicant */ - given_name?: string; + given_name?: string /** @description Second name(s) or middle name(s) of the applicant */ - second_name?: string; + second_name?: string /** @description Suffix part of the applicant's name */ - suffix?: string; + suffix?: string /** @description Prefix part of the applicant's name */ - prefix?: string; - }; + prefix?: string + } /** * @description 1. Attributes of a person to create fetch records, create verifiable credentials or use in search criteria. * 3. Allowes Country/Registry specific implementation extensions using Attribute Name/Value pairs. */ dci_PersonRecord: { - identifier_type?: components["schemas"]["dci_IdentifierType"]; + identifier_type?: components['schemas']['dci_IdentifierType'] /** @description Value of the identifier */ - identifier?: string; - name?: components["schemas"]["dci_Name"]; + identifier?: string + name?: components['schemas']['dci_Name'] /** @description Applicant preferred phone number as in [E.164](https://www.itu.int/rec/T-REC-E.164-201011-I/en) */ - phone_number?: string; + phone_number?: string + /** @description True if the End-User's phone number has been verified; otherwise false. */ + phone_number_verified?: string /** @description Applicant preferred e-mail address as in [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322) [addr-spec](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) [specification](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) */ - email?: string; - sex?: components["schemas"]["dci_Sex"]; + email?: string + /** @description Email address was controlled by the End-User at the time the verification was performed. The means by which an e-mail address is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the parties are operating. */ + email_verified?: boolean + sex?: components['schemas']['dci_Sex'] /** @description Represents Date and time of the applicant's birth as in [ISO 8601](https://www.iso.org/standard/40874.html) */ - birthdate?: string; - birthplace?: components["schemas"]["openid_Address"]; - deathdate?: components["schemas"]["DateTime"]; - deathplace?: components["schemas"]["openid_Address"]; - address?: components["schemas"]["openid_Address"]; - marital_status?: components["schemas"]["dci_MaritalStatus"]; - marriagedate?: components["schemas"]["DateTime"]; - divorcedate?: components["schemas"]["DateTime"]; + birthdate?: string + birthplace?: components['schemas']['openid_Address'] + deathdate?: components['schemas']['DateTime'] + deathplace?: components['schemas']['openid_Address'] + address?: components['schemas']['openid_Address'] + marital_status?: components['schemas']['dci_MaritalStatus'] + marriagedate?: components['schemas']['DateTime'] + divorcedate?: components['schemas']['DateTime'] parent1_identifier?: { - identifier_type?: components["schemas"]["dci_IdentifierType"]; + identifier_type?: components['schemas']['dci_IdentifierType'] /** @description Value of the identifier */ - identifier?: string; - }; + identifier?: string + } parent2_identifier?: { - identifier_type?: components["schemas"]["dci_IdentifierType"]; + identifier_type?: components['schemas']['dci_IdentifierType'] /** @description Value of the identifier */ - identifier?: string; - }; - }; + identifier?: string + } + } /** * @description Predefined registry record to return in respone as object * * @enum {string} */ - dci_RecordType: "person" | "other"; + dci_RecordType: 'person' | 'other' /** * @description Standardized codes/values representing diverse Sex categories. * Reference: [ISO/IEC 5218:2022](https://www.iso.org/standard/81682.html) - * * 1 : Male * 2 : Female * 3 : Others @@ -195,7 +205,7 @@ export interface components { * * @enum {string} */ - dci_Sex: "1" | "2" | "3" | "4"; + dci_Sex: '1' | '2' | '3' | '4' /** * @description Standardized codes/values represent vital events in an individual's life. * Reference: [Vital Events Statistics](https://mospi.gov.in/sites/default/files/publication_reports/vital_statistics_2010_0.pdf)
@@ -208,19 +218,19 @@ export interface components { * * @enum {string} */ - dci_VitalEvents: "1" | "2" | "3" | "4" | "5" | "6"; + dci_VitalEvents: '1' | '2' | '3' | '4' | '5' | '6' /** @description Refer [Plus Codes](https://github.com/google/open-location-code/wiki/Plus-codes-API) for more details */ GooglePlusCode: { /** @example */ - global_code?: string; + global_code?: string geometry?: { bounds?: { - northeast?: components["schemas"]["LatLong"]; - southwest?: components["schemas"]["LatLong"]; - }; - location?: components["schemas"]["LatLong"]; - }; - }; + northeast?: components['schemas']['LatLong'] + southwest?: components['schemas']['LatLong'] + } + location?: components['schemas']['LatLong'] + } + } /** * @description Standardized codes/values represent key events to [integrate](https://docs.mosip.io/1.2.0/integrations/mosip-opencrvs-integration#scope) with civil registries.

* **Sample flow to explain birth registration between MOSIP and CRVS systems:** @@ -240,226 +250,221 @@ export interface components { * @enum {string} */ mosip_EventType: - | "BIRTH_REGISTERED" - | "DEATH_REGISTERED" - | "DEATH_REVERSAL" - | "DATA_MODIFICATION"; + | 'BIRTH_REGISTERED' + | 'DEATH_REGISTERED' + | 'DEATH_REVERSAL' + | 'DATA_MODIFICATION' /** @description multi language value object */ mosip_LangaugeValue: { /** @example eng */ - langugage?: string; + langugage?: string /** @example value */ - value?: string; - }; - mosip_LanguageValueList: components["schemas"]["mosip_LangaugeValue"][]; + value?: string + } + mosip_LanguageValueList: components['schemas']['mosip_LangaugeValue'][] /** @description MOSIP Verifiable Credential for a [person](https://github.com/opencrvs/mosip-mediator/blob/master/samples/decrypted-sample-received-credentials.json) */ mosip_MOSIPVerifiableCredential: { - issuedTo?: string; - protectedAttributes?: string[]; + issuedTo?: string + protectedAttributes?: string[] /** @description MOSIP Verifiable Credential for Proof of identity */ credentialSubject?: { - gender?: components["schemas"]["mosip_LanguageValueList"]; - city?: components["schemas"]["mosip_LanguageValueList"]; + gender?: components['schemas']['mosip_LanguageValueList'] + city?: components['schemas']['mosip_LanguageValueList'] /** @example 14022 */ - postalCode?: string; + postalCode?: string /** @example Thirteen Mosip */ - fullName?: string; + fullName?: string /** @example 2022 */ - dateOfBirth?: string; - province?: components["schemas"]["mosip_LanguageValueList"]; + dateOfBirth?: string + province?: components['schemas']['mosip_LanguageValueList'] /** @example 9898989898 */ - phone?: string; - addressLine1?: components["schemas"]["mosip_LanguageValueList"]; - addressLine2?: components["schemas"]["mosip_LanguageValueList"]; + phone?: string + addressLine1?: components['schemas']['mosip_LanguageValueList'] + addressLine2?: components['schemas']['mosip_LanguageValueList'] /** @example 2835824850916304 */ - id?: string; + id?: string /** @example 7346597054 */ - UIN?: string; - region?: components["schemas"]["mosip_LanguageValueList"]; + UIN?: string + region?: components['schemas']['mosip_LanguageValueList'] /** @example thirteen.mosip.123@mailinator.com */ - email?: string; - }; + email?: string + } /** @example http://mosip.io/credentials/e2039315-87b0-4012-942e-e0d7c879994b */ - id?: string; - type?: string[]; - consent?: string; + id?: string + type?: string[] + consent?: string /** @example https://mosip.io/issuers/ */ - issuer?: string; - }; + issuer?: string + } /** * @description Predefined registry record to return in respone as object * * @enum {string} */ - mosip_RecordType: "RegistrationRecord" | "MOSIPVerifiableCredential"; + mosip_RecordType: 'RegistrationRecord' | 'MOSIPVerifiableCredential' /** @description Birth Registration record to sync with MOSIP. [Reference](https://github.com/mosip/mosip-opencrvs/blob/develop/mediator/src/main/java/io/mosip/opencrvs/dto/SyncDto.java) */ mosip_RegistrationRecord: { - registrationId?: string; - packetId?: string; - additionalInfoReqId?: string; - name?: string; - email?: string; - phone?: string; - registrationType?: string; - packetHashValue?: string; - packetSize?: number; - supervisorStatus?: string; - supervisorComment?: string; - opentionalValues?: string[]; - langCode?: string; - createDateTime?: components["schemas"]["DateTime"]; - updateDateTime?: components["schemas"]["DateTime"]; - deletedDateTime?: components["schemas"]["DateTime"]; - isActive?: boolean; - isDeleted?: boolean; - }; + registrationId?: string + packetId?: string + additionalInfoReqId?: string + name?: string + email?: string + phone?: string + registrationType?: string + packetHashValue?: string + packetSize?: number + supervisorStatus?: string + supervisorComment?: string + opentionalValues?: string[] + langCode?: string + createDateTime?: components['schemas']['DateTime'] + updateDateTime?: components['schemas']['DateTime'] + deletedDateTime?: components['schemas']['DateTime'] + isActive?: boolean + isDeleted?: boolean + } /** @description Deceased record obtainable from registries */ nid_DeceasedRecord: { /** @description unique reference number mantained in the registry for recording death record or */ - reference_number?: string; + reference_number?: string /** @description End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences. */ - name?: string; + name?: string /** @description End-User's gender. Values defined by this specification are female, male, transgender. */ - gender?: string; + gender?: string /** @description Date of Birth in DDMMYYYY format */ - dob?: string; + dob?: string /** @description Date of Death in DDMMYYYY format */ - dod?: string; + dod?: string /** @description Date in DDMMYYYY format to record on which the death incident reported */ - reported_date?: string; + reported_date?: string /** @description whether demo check has been undertaken or not */ - demo_check_status?: boolean; + demo_check_status?: boolean /** @description Date in DDMMYYYY format to capture the Demo Check Date */ - demo_check_date?: string; - /** @description Reference document collected for registering the deceased information */ - document?: components["schemas"]["nid_Document"]; - }; - /** @description Supporting document of the Resident */ + demo_check_date?: string + document?: components['schemas']['nid_Document'] + } + /** @description Supporting document of the Resident,Reference document collected for registering the deceased information,Document encoded as Base64 string */ nid_Document: { /** @description Name of the document */ - document_name?: string; + document_name?: string /** @description Bases 64 encoded document */ - document?: string; - }; - /** @description eKYC details of the resident */ + document?: string + } + /** @description eKYC details of the resident ,ekyc Details undertaken by the Resident */ nid_EKycDetails: { /** @description Date on which eKYC has been done. A null value indicates that eKYC has not been undertaken */ - ekyc_date?: string; - }; + ekyc_date?: string + } /** * @description Predefined registry record to return in respone as object * * @enum {string} */ - nid_RecordType: "resident_record" | "deceased_record"; + nid_RecordType: 'resident_record' | 'deceased_record' /** @description Address of the Resident in English Language */ nid_ResidentAddress: { /** @description Care of information */ - care_of?: string; + care_of?: string /** @description Building identity */ - building?: string; + building?: string /** @description Street details */ - street?: string; + street?: string /** @description Landmark details */ - landmark?: string; + landmark?: string /** @description Pincode */ - pincode?: string; + pincode?: string /** @description Post office name */ - "po-name"?: string; + 'po-name'?: string /** @description Village Town City Code */ - vtc?: string; + vtc?: string /** @description Village/Town/City Name */ - "vtc-name"?: string; + 'vtc-name'?: string /** @description Sub District Name */ - "sub-district-name"?: string; + 'sub-district-name'?: string /** @description District Name */ - "district-name"?: string; + 'district-name'?: string /** @description State Name */ - state?: string; + state?: string /** @description Country Name */ - country?: string; - }; + country?: string + } /** @description Resident Local Address */ nid_ResidentLocalAddress: { /** @description Care of information in local language */ - "local-careof"?: string; + 'local-careof'?: string /** @description Building information in local language */ - "local-building"?: string; + 'local-building'?: string /** @description Street information in local language */ - "local-street"?: string; + 'local-street'?: string /** @description Landmark information in local language */ - "local-landmark"?: string; + 'local-landmark'?: string /** @description locality information in local language */ - "local-locality"?: string; + 'local-locality'?: string /** @description pincode */ - pincode?: string; + pincode?: string /** @description Post office name in local */ - "po-name-local"?: string; + 'po-name-local'?: string /** @description vtc information in local language */ - "local-vtc"?: string; + 'local-vtc'?: string /** @description Sub district information in local language */ - "local-subdistrict"?: string; + 'local-subdistrict'?: string /** @description district information in local language */ - "local-district"?: string; + 'local-district'?: string /** @description State information in local language */ - "local-state"?: string; + 'local-state'?: string /** @description Country information in local language */ - "local-country"?: string; - }; + 'local-country'?: string + } /** @description Resident Local Name */ nid_ResidentLocalName: { - language_code?: components["schemas"]["LanguageCode"]; + language_code?: components['schemas']['LanguageCode'] /** @description Local name of the Resident */ - local_name?: string; - }; - /** @description Resident Nationality Information */ + local_name?: string + } + /** @description Resident Nationality Information,Nationality information of the Resident */ nid_ResidentNationality: { /** @description Nationality information of the Resident */ - nationality?: string; + nationality?: string /** @description Passport number of the Resident */ - passport_number?: string; + passport_number?: string /** @description Passport validity date in DDMMYYYY format */ - passport_valid_upto?: string; + passport_valid_upto?: string /** @description Visa number of the Resident */ - visa_number?: string; + visa_number?: string /** @description Visa validity details */ - visa_vald_upto?: string; + visa_vald_upto?: string /** @description OCI card deatils */ - oci_number?: string; + oci_number?: string /** @description OCI Validity date in DDMMYYYY format */ - oci_valid_upto?: string; - }; - /** @description Resident Photo */ + oci_valid_upto?: string + } + /** @description Resident Photo,Image encoded as Base64 string */ nid_ResidentPhoto: { /** @description Photo encoded as Base64 string */ - photo?: string; - }; + photo?: string + } /** @description Resident Information */ nid_ResidentRecord: { /** @description End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences. */ - name?: string; + name?: string /** @description End-User's gender. Values defined by this specification are female, male, transgender. */ - gender?: string; + gender?: string /** @description Date of Birth in DDMMYYYY format */ - dob?: string; + dob?: string /** @description Date of Birth Type i.e Declared, Approximate, Verified */ - dob_type?: string; + dob_type?: string /** @description Phone number of the resident. If the number contains an extension, it is RECOMMENDED that the extension be represented using the RFC 3966 [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678. */ - phone?: string; + phone?: string /** @description End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this value being unique, as discussed in Section 5.7. */ - email?: string; - address?: components["schemas"]["nid_ResidentAddress"]; - local_name?: components["schemas"]["nid_ResidentLocalName"]; - local_address?: components["schemas"]["nid_ResidentLocalAddress"]; - /** @description Image encoded as Base64 string */ - photo?: components["schemas"]["nid_ResidentPhoto"]; - /** @description Nationality information of the Resident */ - nationality?: components["schemas"]["nid_ResidentNationality"]; - /** @description ekyc Details undertaken by the Resident */ - kyc_status?: components["schemas"]["nid_EKycDetails"]; - /** @description Document encoded as Base64 string */ - document?: components["schemas"]["nid_Document"]; - }; + email?: string + address?: components['schemas']['nid_ResidentAddress'] + local_name?: components['schemas']['nid_ResidentLocalName'] + local_address?: components['schemas']['nid_ResidentLocalAddress'] + photo?: components['schemas']['nid_ResidentPhoto'] + nationality?: components['schemas']['nid_ResidentNationality'] + kyc_status?: components['schemas']['nid_EKycDetails'] + document?: components['schemas']['nid_Document'] + } /** * Address * @description Address info as per OpenID specs @@ -469,39 +474,39 @@ export interface components { * @description Full mailing address, formatted for display or use on a mailing label. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line feed pair ("\r\n") or as a single line feed character ("\n"). * @example */ - address_line1?: string; + address_line1?: string /** * @description Full street address component, which MAY include house number, street name, Post Office Box, and multi-line extended street address information. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line feed pair ("\r\n") or as a single line feed character ("\n"). * @example */ - address_line_2?: string; + address_line_2?: string /** * @description City or locality component. * @example */ - locality?: string; + locality?: string /** @description District or sub-regional code */ - sub_region_code?: string; + sub_region_code?: string /** * @description State, province, prefecture, or region component. * @example */ - region_code?: string; + region_code?: string /** * @description Zip code or postal code component. * @example */ - postal_code?: string; + postal_code?: string /** * @description Country part of an address represented using an ISO 3-letter code [ISO3166-3], e.g., "USA" or "JPN". 2-letter ISO codes [ISO3166-1] e.g. ,e.g. US, JP * @example */ - country_code?: string; + country_code?: string /** @description Refer [Plus Codes](https://github.com/google/open-location-code/wiki/Plus-codes-API) for more details */ geo_location?: - | components["schemas"]["LatLong"] - | components["schemas"]["GooglePlusCode"]; - }; + | components['schemas']['LatLong'] + | components['schemas']['GooglePlusCode'] + } /** * @description 1. Attributes of a person to create fetch records, create verifiable credentials or use in search criteria. * 2. Allowes Country/Registry specific implementation extensions using Attribute Name/Value pairs. @@ -510,183 +515,96 @@ export interface components { */ openid_PersonRecord: { /** @description Subject - Identifier for the End-User at the Issuer. */ - sub?: string; + sub?: string /** @description End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences. */ - name?: string; + name?: string /** @description Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with the names being separated by space characters. */ - given_name?: string; + given_name?: string /** @description Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can be present, with the names being separated by space characters. */ - family_name?: string; + family_name?: string /** @description Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names being separated by space characters. Also note that in some cultures, middle names are not used. */ - middle_name?: string; + middle_name?: string /** @description Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned alongside a given_name value of Michael. */ - nickname?: string; + nickname?: string /** @description Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string including special characters such as @, /, or whitespace. The RP MUST NOT rely upon this value being unique, as discussed in */ - preferred_username?: string; + preferred_username?: string /** @description URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User. */ - profile?: string; + profile?: string /** @description URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the End-User, rather than an arbitrary photo taken by the End-User. */ - picture?: string; + picture?: string /** @description URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the End-User is affiliated with. */ - website?: string; + website?: string /** @description End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this value being unique, as discussed in Section 5.7. */ - email?: string; + email?: string /** @description address was controlled by the End-User at the time the verification was performed. The means by which an e-mail address is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the parties are operating. */ - email_verified?: boolean; + email_verified?: boolean /** @description End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values are applicable. */ - gender?: string; + gender?: string /** @description YYYY format is allowed. Note that depending on the underlying platform's date related function, providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process the dates. */ - birthdate?: string; + birthdate?: string /** @description End-User's place of birth. The value of this member is a JSON structure containing some or all of the following members */ - place_of_birth?: Record; + place_of_birth?: Record /** @description YYYY format is allowed. Note that depending on the underlying platform's date related function, providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process the dates. */ - deathdate?: string; + deathdate?: string /** @description End-User's place of birth. The value of this member is a JSON structure containing some or all of the following members */ - place_of_death?: Record; + place_of_death?: Record /** @description number contains an extension, it is RECOMMENDED that the extension be represented using the RFC 3966 [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678. */ - phone_number?: string; + phone_number?: string /** @description True if the End-User's phone number has been verified; otherwise false. When this Claim Value is true, this means that the OP took affirmative steps to ensure that this phone number was controlled by the End-User at the time the verification was performed. The means by which a phone number is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the parties are operating. When true, the phone_number Claim MUST be in E.164 format and any extensions MUST be represented in RFC 3966 format. */ - phone_number_verified?: string; - address?: components["schemas"]["openid_Address"]; + phone_number_verified?: string + address?: components['schemas']['openid_Address'] /** @description String from zoneinfo [zoneinfo] time zone database representing the End-User's time zone. For example, Europe/Paris or America/Los_Angeles. */ - zoneinfo?: string; + zoneinfo?: string /** @description Alpha-2 [ISO3166‑1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US; Relying Parties MAY choose to accept this locale syntax as well. */ - locale?: string; + locale?: string /** @description End-User's nationalities using ICAO 3-letter codes [ICAO-Doc9303], e.g., "USA" or "JPN". 2-letter ICAO codes MAY be used in some circumstances for compatibility reasons. */ - nationalities?: string[]; + nationalities?: string[] /** @description Time the End-User's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the date/time */ - updated_at?: number; + updated_at?: number /** @description End-User's family name(s) when they were born, or at least from the time they were a child. This term can be used by a person who changes the family name later in life for any reason. Note that in some cultures, people can have multiple family names or no family name; all can be present, with the names being separated by space characters. */ - birth_family_name?: string; + birth_family_name?: string /** @description End-User's given name(s) when they were born, or at least from the time they were a child. This term can be used by a person who changes the given name later in life for any reason. Note that in some cultures, people can have multiple given names; all can be present, with the names being separated by space characters. */ - birth_given_name?: string; + birth_given_name?: string /** @description End-User's middle name(s) when they were born, or at least from the time they were a child. This term can be used by a person who changes the middle name later in life for any reason. Note that in some cultures, people can have multiple middle names; all can be present, with the names being separated by space characters. Also note that in some cultures, middle names are not used. */ - birth_middle_name?: string; + birth_middle_name?: string /** @description End-User's salutation, e.g., "Mr." */ - salutation?: string; + salutation?: string /** @description End-User's title, e.g., "Dr." */ - title?: string; + title?: string /** @description End-User's mobile phone number formatted according to ITU-T recommendation [E.164], e.g., "1999550123" */ - msisdn?: string; + msisdn?: string /** @description Stage name, religious name or any other type of alias/pseudonym with which a person is known in a specific context besides its legal name. This must be part of the applicable legislation and thus the trust framework (e.g., be an attribute on the identity card). */ - also_known_as?: string; - additional_attributes?: components["schemas"]["AttributeNameValueList"]; - }; + also_known_as?: string + additional_attributes?: components['schemas']['AttributeNameValueList'] + } /** * @description 1. Person document detials as per OpenID [identity-assurance](https://openid.net/specs/openid-connect-4-identity-assurance-1_0-13.html#name-evidence-element) * 2. JSON object representing the document used to perform the identity verification. */ openid_PersonDocDetails: { /** @description String denoting the type of the document. The OP MAY use other than the predefined values in which case the RPs will either be unable to process the assertion, just store this value for audit purposes, or apply bespoken business logic to it. */ - type: string; + type: string /** @description String Representing an identifier/number that uniquely identifies a document that was issued to the End-User. This is used on one document and will change if it is reissued, e.g., a passport number, certificate number, etc. Note, number can be used as an alias for 'document_number' for backward compatibility purposes but will be deprecated in future releases, implementers are recommended to use document_number. */ - document_number?: string; + document_number?: string /** @description String representing an identifier that is assigned to the End-User and is not limited to being used in one document, for example a national identification number, personal identity number, citizen number, social security number, driver number, account number, customer number, licensee number, etc. */ - personal_number?: string; + personal_number?: string /** @description String representing an identifier/number that identifies the document irrespective of any personalization information (this usually only applies to physical artifacts and is present before personalization). */ - serial_number?: string; + serial_number?: string /** @description The date the document was issued as ISO 8601 [ISO8601] YYYY-MM-DD format. */ - date_of_issuance?: string; + date_of_issuance?: string /** @description The date the document will expire as ISO 8601 [ISO8601] YYYY-MM-DD format. */ - date_of_expiry?: string; + date_of_expiry?: string /** @description JSON object containing information about the issuer of this document. This object consists of the following properties */ issuer?: { /** @description Designation of the issuer of the document */ - name?: string; - address?: components["schemas"]["openid_Address"]; + name?: string + address?: components['schemas']['openid_Address'] /** @description String denoting the country or supranational organization that issued the document as ISO 3166/ICAO 3-letter codes [ICAO-Doc9303], e.g., "USA" or "JPN". 2-letter ICAO codes MAY be used in some circumstances for compatibility reasons. */ - country_code?: string; + country_code?: string /** @description String containing the name of the region(s)/state(s)/province(s)/municipality(ies) that issuer has jurisdiction over (if this information is not common knowledge or derivable from the address). */ - jurisdiction?: string; - }; - }; - /** - * @description 1. Civil registration event list used to record and interact with a typical civil registry - * 2. This is an indicative list as reference and every country, organisation, system shall customise to local requirements as extensions - * 3. Example Civil Registration events: person, birth, death, marriage, divorce, annulment, seperation, adoption, demo_change, unregister, etc., - * - * @example [ - * "person", - * "birth", - * "death", - * "marriage", - * "divorce", - * "annulment", - * "seperation", - * "adoption", - * "demo_change", - * "unregister" - * ] - */ - civilReg_EventType: string; - /** - * @description 1. A sample person record to identity an individual or civil regisration event in a typical civil registry - * 2, This is an indicative list as reference and every country, organisation, system shall customise to local requirements as extensions - */ - civilReg_PersonRecord: components["schemas"]["openid_PersonRecord"] & { - /** Format: date-time */ - issue_date?: string; - /** @description Civil registry status */ - status?: string; - registration_type?: components["schemas"]["civilReg_EventType"]; - /** @description Registration number */ - registration_number?: string; - /** @description Registration date */ - registration_date?: unknown; - /** @description Registration number to related record. e.g birth registration no for death, marriage registration no for divorce/annulment, etc., */ - link_registration_number?: string; - related_persons?: components["schemas"]["civilReg_RelatedPerson"][]; - }; - /** - * @description 1. A sample record list to identity various records that civil registry can produce - * 2, This is an indicative list as reference and every country, organisation, system shall customise to local requirements as extensions - * 3. Example Civil Registry records - person_record, birth_cert, death_cert, marriage_cert, etc., - * - * @example [ - * "person_record", - * "brith_cert", - * "death_cert", - * "marriage_cert", - * "other_record" - * ] - */ - civilReg_RecordType: string; - /** - * @description 1. A sample related person into captured in civil registry - * 2, This is an indicative list as reference and every country, organisation, system shall customise to local requirements as extensions - */ - civilReg_RelatedPerson: { - /** @description Subject - Identifier for the End-User at the Issuer. */ - sub?: string; - /** @description End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences. */ - name?: string; - /** - * @description Indicative relationship values - mother, father, gaurdian, bride, groom, wife, husband, spouse, partner, other - * - * @example [ - * "mother", - * "father", - * "gaurdian", - * "bride", - * "groom", - * "wife", - * "husband", - * "spouse", - * "partner", - * "other" - * ] - */ - relationship?: string; - }; - /** - * @description 1. List of all events type defined by respective registries, entities, coutnries and organisation as extensions - * 2. Events can be used for defining custom selection criteria with in the context of registry domain - */ - coreReg_AllEvents: - | components["schemas"]["dci_VitalEvents"] - | components["schemas"]["civilReg_EventType"] - | components["schemas"]["mosip_EventType"] - | components["schemas"]["coreReg_EventType"]; + jurisdiction?: string + } + } /** * @description 1. Pre defined query objects injected by each country/org/system to query a registry * 2. Implementing systems may create pre-defined query objects based on use cases and inject as custom extensions @@ -695,264 +613,353 @@ export interface components { * - search or subscribe to birth, death events; e.g any new birth in postal_code 12345 after 1/jan/2023 * - search all farmers with land area less than 2 acers in district code 504 */ - coreReg_AllQueries: - | components["schemas"]["dci_IdentifierTypeValue"] - | components["schemas"]["cdpi_PersonId"] - | components["schemas"]["ExpressionWithConditionList"]; - /** - * @description 1. Records retured as response to search/subsribe actions to exchange registry data - * 2. record_type acts as namespace to define record being retunred for receiving system to unmarshel and use - * 3. Objects are defined in respecitive schemas definition with entity/org namespace as prefix - * 3. Implementing systems shall reference to the requires objects based on the context of these API usage - */ - coreReg_AllRecords: - | components["schemas"]["civilReg_PersonRecord"] - | components["schemas"]["dci_PersonRecord"] - | components["schemas"]["nid_ResidentRecord"] - | components["schemas"]["nid_DeceasedRecord"] - | components["schemas"]["mosip_RegistrationRecord"] - | components["schemas"]["mosip_MOSIPVerifiableCredential"]; + RegistryQueries: + | components['schemas']['IdentifierTypeValue'] + | components['schemas']['ExpTemplate'] + | components['schemas']['ExpPredicateWithConditionList'] + /** @description Registry to notify a event to subscrbiers */ + NotifyEventRequest: { + transaction_id: components['schemas']['TransactionId'] + notify_event: { + reference_id: components['schemas']['ReferenceId'] + timestamp: components['schemas']['DateTime'] + /** @description Registry data being notified as an outcome of event subscription with registry */ + data: { + /** @default 1.0.0 */ + version?: string + reg_type?: components['schemas']['RegistryType'] + reg_event_type: components['schemas']['RegistryEventType'] + reg_record_type: components['schemas']['RegistryRecordType'] + reg_records: unknown + } + locale?: components['schemas']['LanguageCode'] + }[] + } + /** @description Registry supported event types */ + RegistryEventType: { + /** + * @description namespace to refer to registry event types; e.g, ns:dci:vital-events:v1 + * @example ns:dci:vital-events:v1 + */ + namespace?: string + /** + * @description refUri to reference schema of registry event types. + * @example https://digital-convergence-initiative-d.gitbook.io/dci-standards-1/standards/1.-crvs/6.5-data-standards/6.5.2-code-directory#cd.04-vital_events + */ + refUri?: string + /** + * @description Registry event type value. + * @example 1 + */ + value: string + } /** - * @description 1. RecordType are pre defined as list of attributes or an object to return upon successful search/subscribe requests - * 2. This is equivalent to column list in a typical sql query i.e select col1, col2, col3 from table where condition - * 3. Based on record_type, required object definition are added as extension payloads + * @description Registy record object based on record_type attribute. + * @example { + * "$ref": "components[\"schemas\"][\"dci_PersonRecord\"]" + * } */ - coreReg_AllRecordTypes: - | components["schemas"]["civilReg_RecordType"] - | components["schemas"]["dci_RecordType"] - | components["schemas"]["nid_RecordType"] - | components["schemas"]["mosip_RecordType"] - | components["schemas"]["other_RecordType"]; + RegistryRecord: Record /** - * @description Functional registry event types: - * 1. update - search or subscribe to update events; e.g update to postal_code 12345 between date_range - * 2. link - search or subscribe to linking events; e.g mobile no link with ID, national ID link with civil reg record, etc., - * 3. unlink - search or subscribe to unlinking events;
- * - * Note: update event can also cover link/unlink events on a registry record. - * - * @enum {string} + * @description Record type to represent in + * 1. Search request to request search result record type to return + * 2. Notify event to represent record type being returned based on subscription to registry event type */ - coreReg_EventType: "update" | "link" | "unlink"; - /** @description Fetch list of active subscriptions based on sender id,registry type and event type */ - FetchSubscriptionsRequest: { - transaction_id: components["schemas"]["TransactionId"]; - fetch_subscriptions_request?: { - timestamp: components["schemas"]["DateTime"]; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; - subscription_code?: components["schemas"]["SubscriptionCode"]; - locale?: components["schemas"]["LanguageCode"]; - }; - }; - /** @description Subscription list */ - FetchSubscriptionsResponse: { - transaction_id: components["schemas"]["TransactionId"]; - timestamp?: components["schemas"]["DateTime"]; - subscriptions: components["schemas"]["SubscriptionInfo"][]; - }; - /** @description Registry to notify a event to subscrbiers */ - NotifyEventRequest: { - transaction_id: components["schemas"]["TransactionId"]; - notify_event: { - reference_id: components["schemas"]["ReferenceId"]; - timestamp: components["schemas"]["DateTime"]; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; - /** @description Search result record as an outcome of search/subscribe action */ - registry_data: { - record_type: components["schemas"]["coreReg_AllRecordTypes"]; - record: components["schemas"]["coreReg_AllRecords"]; - }; - locale?: components["schemas"]["LanguageCode"]; - }[]; - }; - other_RecordType: string[]; + RegistryRecordType: { + /** + * @description namespace to refer to registry record types; e.g, ns:dci:record-type:PersonRecord:v1 + * @example [ + * "ns:dci:record-type:PersonRecord:v1", + * "ns:openid:record-type:PersonRecord:v1" + * ] + */ + namespace?: string + /** + * @description refUri to reference schema of registry record types. + * @example [ + * "https://digital-convergence-initiative-d.gitbook.io/dci-standards-1/standards/1.-crvs/6.5-data-standards/6.5.1-data-elements#do.01-person", + * "https://openid.net/specs/openid-connect-core-1_0.html#Claims" + * ] + */ + refUri?: string + /** + * @description registry record type value.
+ * e.g,: civil, population, national-id, family, household, social, beneficiary, disability, student, farmer, land, utiltiy, other + * + * @example [ + * "person", + * "vc-person", + * "vc-brith-certificate", + * "vc-marriage-certificate", + * "vc-death-certificate", + * "social", + * "disability", + * "student", + * "farmer", + * "land", + * "utility", + * "other" + * ] + */ + value: string + } /** - * @description 1. Country specific implementations should extend and allow other registries. - * 2. In most scenarios, receiver i.e receipient of search/subsribe request determine which registry is being searched - * 3. example: civil, population, national-id, family, household, social, beneficiary, disability, student, farmer, land, utiltiy, other - * - * @example [ - * "civil", - * "population", - * "national-id", - * "family", - * "household", - * "social", - * "beneficiary", - * "disability", - * "student", - * "farmer", - * "land", - * "utility", - * "other" - * ] + * @description 1. Country specific implementations should publish /.well-known files or refUris + * 2. In most scenarios, receiver i.e receipient of search/subsribe request determine which registry to search + * 3. Example: civil, population, national-id, family, household, social, beneficiary, disability, student, farmer, land, utiltiy, other */ - coreReg_Type: string; + RegistryType: { + /** + * @description namespace to refer to registry types; e.g, ns:dci:registry-type:v1 + * @example ns:dci:registry-type:v1 + */ + namespace?: string + /** + * @description refUri to reference schema of registry types. + * @example https://digital-convergence-initiative-d.gitbook.io/dci-standards-1/standards/1.-crvs/6.5-data-standards/6.5.2-code-directory + */ + refUri?: string + /** + * @description registry type value.
+ * e.g,: civil, population, national-id, family, household, social, beneficiary, disability, student, farmer, land, utiltiy, other + * + * @example [ + * "civil", + * "population", + * "national-id", + * "family", + * "household", + * "social", + * "beneficiary", + * "disability", + * "student", + * "farmer", + * "land", + * "utility", + * "other" + * ] + */ + value: string + } /** * @description 1. Functional registry specific extension to search. * 2. Additional checks using conditioanl expressions is possible. * 3. Allows Country/Registry specific implementation extensions using key/value pairs. */ SearchRequest: { - transaction_id: components["schemas"]["TransactionId"]; + transaction_id: components['schemas']['TransactionId'] + /** @description 1. Batch requests enabel multiple individual requests with respective consent/authorize codes */ search_request: { - reference_id: components["schemas"]["ReferenceId"]; - timestamp: components["schemas"]["DateTime"]; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; + reference_id: components['schemas']['ReferenceId'] + timestamp: components['schemas']['DateTime'] search_criteria: { - query: components["schemas"]["coreReg_AllQueries"]; - record_type: components["schemas"]["coreReg_AllRecordTypes"]; - sort?: components["schemas"]["SearchSortList"]; - pagination?: components["schemas"]["PaginationRequest"]; - }; - consent?: components["schemas"]["Consent"]; - locale?: components["schemas"]["LanguageCode"]; - }[]; - }; + /** @default 1.0.0 */ + version?: string + reg_type?: components['schemas']['RegistryType'] + reg_event_type?: components['schemas']['RegistryEventType'] + query_type: components['schemas']['QueryType'] + query: components['schemas']['RegistryQueries'] + result_record_type: components['schemas']['RegistryRecordType'] + sort?: components['schemas']['SearchSortList'] + pagination?: components['schemas']['PaginationRequest'] + consent?: components['schemas']['Consent'] + authorize?: components['schemas']['Authorize'] + } + locale?: components['schemas']['LanguageCode'] + }[] + } /** @description Response to search request. Multiple repsonses for each page can be pushed to the caller as an implementation! */ SearchResponse: { - transaction_id: components["schemas"]["TransactionId"]; + transaction_id: components['schemas']['TransactionId'] + /** + * @description 1. correlation_id acknowledged by end txn processing system (i.e receiver) to co-relate all related requests in the context of a business transaction. + * 2. correlation_id uniqueness is ensured by txn processing system (i.e receiver) + * + * @example 9876543210 + */ + correlation_id: string search_response: { - reference_id: components["schemas"]["ReferenceId"]; - timestamp: components["schemas"]["DateTime"]; - status: components["schemas"]["RequestStatus"]; - status_reason_code?: components["schemas"]["SearchStatusReasonCode"]; + reference_id: components['schemas']['ReferenceId'] + timestamp: components['schemas']['DateTime'] + status: components['schemas']['RequestStatus'] + status_reason_code?: components['schemas']['SearchStatusReasonCode'] /** @description Status reason code message. Helps actionanble messaging for systems/end users */ - status_reason_message?: string; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; + status_reason_message?: string /** @description Search result record as an outcome of search/subscribe action */ - registry_data?: { - record_type: components["schemas"]["coreReg_AllRecordTypes"]; - record: components["schemas"]["coreReg_AllRecords"]; - }; - pagination?: components["schemas"]["Pagination"]; - locale?: components["schemas"]["LanguageCode"]; - }[]; - }; + data?: { + /** @default 1.0.0 */ + version?: string + reg_type?: components['schemas']['RegistryType'] + reg_event_type?: components['schemas']['RegistryEventType'] + reg_record_type: components['schemas']['RegistryRecordType'] + reg_records: unknown + } + pagination?: components['schemas']['Pagination'] + locale?: components['schemas']['LanguageCode'] + }[] + } /** * @description Identity verification request status reason codes * @enum {string} */ SearchStatusReasonCode: - | "rjct.reference_id.invalid" - | "rjct.reference_id.duplicate" - | "rjct.timestamp.invalid" - | "rjct.search_criteria.invalid" - | "rjct.filter.invalid" - | "rjct.sort.invalid" - | "rjct.pagination.invalid" - | "rjct.search.too_many_records_found"; + | 'rjct.reference_id.invalid' + | 'rjct.reference_id.duplicate' + | 'rjct.timestamp.invalid' + | 'rjct.search_criteria.invalid' + | 'rjct.filter.invalid' + | 'rjct.sort.invalid' + | 'rjct.pagination.invalid' + | 'rjct.search.too_many_records_found' /** @description Subscribe to a life event with crvs */ SubscribeRequest: { - transaction_id: components["schemas"]["TransactionId"]; + transaction_id: components['schemas']['TransactionId'] subscribe_request: { - reference_id: components["schemas"]["ReferenceId"]; - timestamp: components["schemas"]["DateTime"]; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; - frequency?: components["schemas"]["EventFrequency"]; + reference_id: components['schemas']['ReferenceId'] + timestamp: components['schemas']['DateTime'] subscribe_criteria: { - query: components["schemas"]["coreReg_AllQueries"]; - record_type: components["schemas"]["coreReg_AllRecordTypes"]; - }; - locale?: components["schemas"]["LanguageCode"]; - }[]; - }; + /** @default 1.0.0 */ + version?: string + reg_type?: components['schemas']['RegistryType'] + reg_event_type: components['schemas']['RegistryEventType'] + frequency?: components['schemas']['EventFrequency'] + filter_type?: components['schemas']['QueryType'] + filter: components['schemas']['RegistryQueries'] + notify_record_type: components['schemas']['RegistryRecordType'] + authorize?: components['schemas']['Authorize'] + } + locale?: components['schemas']['LanguageCode'] + }[] + } + /** @description Response to subscribe request. */ + SubscribeResponse: { + transaction_id: components['schemas']['TransactionId'] + correlation_id: components['schemas']['SearchResponse']['correlation_id'] + subscribe_response: { + reference_id: components['schemas']['ReferenceId'] + timestamp: components['schemas']['DateTime'] + status: components['schemas']['RequestStatus'] + status_reason_code?: components['schemas']['SubscribeStatusReasonCode'] + /** @description Status reason code message. Helps actionanble messaging for systems/end users */ + status_reason_message?: string + subscriptions?: components['schemas']['SubscriptionInfo'][] + pagination?: components['schemas']['Pagination'] + locale?: components['schemas']['LanguageCode'] + }[] + } /** * @description Identity verification request status reason codes * @enum {string} */ SubscribeStatusReasonCode: - | "rjct.reference_id.invalid" - | "rjct.reference_id.duplicate" - | "rjct.timestamp.invalid" - | "rjct.notify_types.invalid" - | "rjct.notify_details.invalid" - | "rjct.person_id.invalid" - | "rjct.event.already_subscribed"; + | 'rjct.reference_id.invalid' + | 'rjct.reference_id.duplicate' + | 'rjct.timestamp.invalid' + | 'rjct.notify_types.invalid' + | 'rjct.notify_details.invalid' + | 'rjct.person_id.invalid' + | 'rjct.event.already_subscribed' /** - * @description Unique code to ideintiy the subscription request by the entity providing subscription service. + * @description Unique code to identify the subscription request by the entity providing subscription service. * Helps to check status, unsubscribe etc., */ - SubscriptionCode: string; + SubscriptionCode: string + SubscriptionCodeList: unknown SubscriptionInfo: { - subscription_code: components["schemas"]["SubscriptionCode"]; - timestamp: components["schemas"]["DateTime"]; - registry_type?: components["schemas"]["coreReg_Type"]; - event_type: components["schemas"]["coreReg_AllEvents"]; - frequency?: components["schemas"]["EventFrequency"]; - subscribe_criteria: { - query: components["schemas"]["coreReg_AllQueries"]; - record_type?: components["schemas"]["coreReg_AllRecordTypes"]; - }; - locale?: components["schemas"]["LanguageCode"]; - }; + /** @default 1.0.0 */ + version?: string + code?: components['schemas']['SubscriptionCode'] + status?: components['schemas']['SubscriptionStatus'] + timestamp: components['schemas']['DateTime'] + reg_type?: components['schemas']['RegistryType'] + reg_event_type?: components['schemas']['RegistryEventType'] + frequency?: components['schemas']['EventFrequency'] + filter_type?: components['schemas']['QueryType'] + filter?: components['schemas']['RegistryQueries'] + notify_record_type?: components['schemas']['RegistryRecordType'] + locale?: components['schemas']['LanguageCode'] + } /** * @description subscription status * @enum {string} */ - SubscriptionStatus: "subscribe" | "unsubscribe"; - /** @description Request to search identity service requests */ + SubscriptionStatus: 'subscribe' | 'unsubscribe' + /** @description Request to fetch txn status on various service requests */ TxnStatusRequest: { - transaction_id: components["schemas"]["TransactionId"]; + transaction_id: components['schemas']['TransactionId'] txnstatus_request: { - reference_id: components["schemas"]["ReferenceId"]; + reference_id: components['schemas']['ReferenceId'] + /** + * @description txn type to fetch status + * @enum {string} + */ + txn_type: 'search' | 'subscribe' | 'unsubscribe' /** @enum {string} */ - search_type: "transaction_id" | "reference_id_list"; - search_attribute: - | components["schemas"]["TransactionId"] - | components["schemas"]["ReferenceIdList"]; - locale?: components["schemas"]["LanguageCode"]; - }; - }; + attribute_type: + | 'transaction_id' + | 'reference_id_list' + | 'correlation_id' + | 'subscription_code_list' + attribute_value: + | components['schemas']['TransactionId'] + | components['schemas']['ReferenceIdList'] + | components['schemas']['SearchResponse']['correlation_id'] + | components['schemas']['SubscriptionCodeList'] + locale?: components['schemas']['LanguageCode'] + } + } + /** @description txn status info on various service requests */ TxnStatusResponse: { - transaction_id: components["schemas"]["TransactionId"]; + transaction_id: components['schemas']['TransactionId'] + correlation_id: components['schemas']['SearchResponse']['correlation_id'] /** * @example { - * "txnstatus_response": { - * "reference_id": "test", - * "status": "SUCC" - * } + * "$ref": "components[\"schemas\"][\"SearchResponse\"]" * } */ - txnstatus_response: - | components["schemas"]["SearchResponse"] - | components["schemas"]["NotifyEventRequest"]; - }; - /** @description Un-Subscribe to a life event with crvs */ + txnstatus_response: { + /** + * @description txn type to fetch status + * @enum {string} + */ + txn_type: 'on-search' | 'on-subscribe' | 'on-unsubscribe' + txn_status: + | components['schemas']['SearchResponse'] + | components['schemas']['SubscribeResponse'] + | components['schemas']['UnSubscribeResponse'] + } + } + /** @description Un-Subscribe to registred subscriptions */ UnSubscribeRequest: { - transaction_id: components["schemas"]["TransactionId"]; - timesstamp?: components["schemas"]["DateTime"]; - subscription_codes?: components["schemas"]["SubscriptionCode"][]; - }; + transaction_id: components['schemas']['TransactionId'] + timesstamp?: components['schemas']['DateTime'] + subscription_codes?: components['schemas']['SubscriptionCode'][] + } /** @description Un-Subscribe to a life event with crvs */ UnSubscribeResponse: { - transaction_id: components["schemas"]["TransactionId"]; - timesatmp?: components["schemas"]["DateTime"]; - status: components["schemas"]["RequestStatus"]; - status_reason_code?: components["schemas"]["UnSubscribeStatusReasonCode"]; + transaction_id: components['schemas']['TransactionId'] + correlation_id: components['schemas']['SearchResponse']['correlation_id'] + timesatmp?: components['schemas']['DateTime'] + status: components['schemas']['RequestStatus'] + status_reason_code?: components['schemas']['UnSubscribeStatusReasonCode'] /** @description Status reason code message. Helps actionanble messaging for systems/end users */ - status_reason_message?: string; + status_reason_message?: string subscription_status?: { - subscription_code: components["schemas"]["SubscriptionCode"]; - subscription_status: components["schemas"]["SubscriptionStatus"]; - }[]; - }; + code: components['schemas']['SubscriptionCode'] + status: components['schemas']['SubscriptionStatus'] + }[] + } /** * @description Identity verification request status reason codes * @enum {string} */ UnSubscribeStatusReasonCode: - | "rjct.reference_id.invalid" - | "rjct.reference_id.duplicate" - | "rjct.timestamp.invalid" - | "rjct.subscription_code.invalid" - | "rjct.requester.invalid" - | "rjct.event.already_unsubscribed"; + | 'rjct.reference_id.invalid' + | 'rjct.reference_id.duplicate' + | 'rjct.timestamp.invalid' + | 'rjct.subscription_code.invalid' + | 'rjct.requester.invalid' + | 'rjct.event.already_unsubscribed' /** * @description 1. ACK: If the request is valid (for basic checks) and async callback (i.e webhook) will be invoked by reciever back to the sender. * 2. NACK: If the request is valid (for basic checks) and there is no futher updates from reciever back to the sender. @@ -960,68 +967,88 @@ export interface components { * * @enum {string} */ - Ack: "ACK" | "NACK" | "ERR"; + Ack: 'ACK' | 'NACK' | 'ERR' /** @description Additional JSON property oject to hold custom user defined contextual data */ - AdditionalInfo: Record; + AdditionalInfo: Record /** @description Attribute name value object */ AttributeNameValue: { /** @example phone_number */ - name: string; - value: components["schemas"]["AttributeValue"]; - }; + name: string + value: components['schemas']['AttributeValue'] + } /** @description List of attribute Name/Value */ - AttributeNameValueList: components["schemas"]["AttributeNameValue"][]; - /** @example +91 9876543210 */ - AttributeValue: unknown; + AttributeNameValueList: components['schemas']['AttributeNameValue'][] + /** @example +11 1111111111 */ + AttributeValue: string | number | boolean | Record + /** @description Authorize artefact. TODO - review and update! */ + Authorize: { + /** + * Format: uri or did + * @description authorize-id + */ + id?: string + ts?: components['schemas']['DateTime'] + purpose?: { + text?: string + /** @description From a fixed set, documented at refUri */ + code?: string + /** + * Format: uri + * @description Uri to provide more info on authorize codes + */ + refUri?: string + } + } /** @description Consent artefact. TODO - enrich consent object! */ Consent: { /** * Format: uri or did * @description consent id */ - id?: string; - ts?: components["schemas"]["DateTime"]; + id?: string + ts?: components['schemas']['DateTime'] purpose?: { - text?: string; + text?: string /** @description From a fixed set, documented at refUri */ - code?: string; + code?: string /** * Format: uri * @description Uri to provide more info on consent codes */ - refUri?: string; - }; - }; + refUri?: string + } + } /** * Format: date-time * @description 1. All dates and timestamps are represented in [ISO 8601](https://www.iso.org/standard/40874.html) format including timezone - e.g 2022-12-04T17:20:07-04:00. * * @example */ - DateTime: string; + DateTime: string /** @description Encrypted payload */ EncryptedMessage: { header: { /** @description The JWE algorithm used for encryption */ - alg: string; + alg: string /** @description The encryption algorithm used for encrypting the plaintext */ - enc: string; + enc: string /** @description The key identifier for the encryption key */ - kid: string; - }; + kid: string + } /** @description This is the result of encrypting the plaintext using the CEK and the IV. It's Base64Url-encoded. */ - data: string; + data: string /** @description The base64-url encoded encrypted key */ - encrypted_key: string; + encrypted_key: string /** @description This is a Base64Url-encoded value that provides evidence of the integrity and authenticity of the ciphertext, Initialization Vector, and Additional Authenticated Data */ - auth_tag: string; + auth_tag: string /** @description This is a Base64Url-encoded random bit string to be used as the Initialization Vector (IV) when encrypting the plaintext to produce the ciphertext. The size of the IV depends on the encryption algorithm used. */ - iv: string; - }; + iv: string + } /** - * @description Describes an error object that is returned to standard post call request.
- * 1. This object shall be sent when any request received by a participant is not parsable or message integrity check fails.
- * 2. This object may be used across all transport protocols to acknowledge the receipt of a message i.e HTTPS, FTP, Messaging etc.,
" + * @description Commumication layer Asyn errors that are returned as part of message acknowledgement. + * 1. Messages that are not parsable or message integrity check fails. + * 2. This object may be used across all transport layer protocols (https, sftp, messaging, etc,) to ack the receipt of a message. + * 3. Business context and related validation is NOT in scope of this error object. */ Error: { /** @@ -1029,117 +1056,147 @@ export interface components { * @enum {string} */ code?: - | "err.request.bad" - | "err.request.unauthorized" - | "err.request.forbidden" - | "err.request.not_found" - | "err.request.timeout" - | "err.version.not_supported" - | "err.request.too_many_requests" - | "err.sender_id.invalid" - | "err.sender_uri.invalid" - | "err.receiver_id.invalid" - | "err.signature.missing" - | "err.signature.invalid" - | "err.encryption.invalid" - | "err.service.unavailable"; + | 'err.request.bad' + | 'err.request.unauthorized' + | 'err.request.forbidden' + | 'err.request.not_found' + | 'err.request.timeout' + | 'err.version.not_supported' + | 'err.request.too_many_requests' + | 'err.sender_id.invalid' + | 'err.sender_uri.invalid' + | 'err.receiver_id.invalid' + | 'err.signature.missing' + | 'err.signature.invalid' + | 'err.encryption.invalid' + | 'err.service.unavailable' /** @description message to describe above error code */ - message?: string; - }; + message?: string + } /** * @description 1. Frequency at which subscribed services should be notified. * 2. start_time, end_time represent data range where the notification frequency is applicable */ EventFrequency: { - start_time: components["schemas"]["DateTime"]; - end_time: components["schemas"]["DateTime"]; + start_time: components['schemas']['DateTime'] + end_time: components['schemas']['DateTime'] /** * @description Frequency at which notification is required. This will be in the form of cron expression. * Example - "0 0 0 5,15 * ? *" * which says At 00:00:00am, on the 5th and 15th day, every month */ - frequency: string; - }; + frequency: string + } /** * @description Condition in an expression * @example and * @enum {string} */ - ExpCondition: "and" | "or" | "not"; + ExpCondition: 'and' | 'or' | 'not' /** * @description Operator in an expression * @example eq * @enum {string} */ - ExpOperator: "gt" | "lt" | "eq" | "ge" | "le"; + ExpOperator: 'gt' | 'lt' | 'eq' | 'ge' | 'le' | 'in' /** @description Expression */ - Expression: { - /** - * @description expression seq number for correlation - * @example 1 - */ - seq_num: number; + ExpPredicate: { /** @description attribute name */ - attribute_name: string; - operator: components["schemas"]["ExpOperator"]; - attribute_value: components["schemas"]["AttributeValue"]; - }; + attribute_name: string + operator: components['schemas']['ExpOperator'] + attribute_value: components['schemas']['AttributeValue'] + } /** @description list of attributes with matching conditions */ - ExpressionList: unknown; - /** @description Expression result */ - ExpressionResult: { + ExpPredicateList: components['schemas']['ExpPredicate'][] + ExpPredicateWithCondition: { /** - * @description expression seq number for correlation + * @description Sequence number to help define precedence for evaluating a list of expression Predicates * @example 1 */ - seq_num: number; + seq_num?: number + expression1: components['schemas']['ExpPredicate'] + condition?: components['schemas']['ExpCondition'] + expression2?: components['schemas']['ExpPredicate'] + } + ExpPredicateWithConditionList: components['schemas']['ExpPredicateWithCondition'][] + /** + * @description 1. Query expression's syntax / format is determined based on query-type. + * 2. Query expression as a template with placeholder to pass conditional search values + */ + ExpTemplate: { /** - * @example y - * @enum {string} + * Format: uri + * @description Reference to query expression template being used */ - result: "y" | "n"; - }; - ExpressionResultList: unknown; - ExpressionWithCondition: { - expression1: components["schemas"]["Expression"]; - condition?: components["schemas"]["ExpCondition"]; - expression2?: components["schemas"]["Expression"]; - }; - ExpressionWithConditionList: unknown; + namespace?: string + /** @enum {string} */ + type: 'graph-ql' | 'sql' | 'mongoDB' | 'cassandra' | 'other' + /** @description If not defined type, custom value to define other types */ + other_value?: string + /** + * Format: byte + * @description Query expression with placeholder to pass conditional search values as base64 bytes + */ + expression: string + expression_values: components['schemas']['AttributeNameValueList'] + } /** @description File info. Used in file upload feature using HTTPS */ FileInfo: { /** @description G2P Connect specific actions. Usually verb from the URI should go here to help store and fwd kind of processing requirements. */ - action: string; + action: string /** * Format: binary * @description Disbursement instruction file representing Disburse or OnDisburse end point elements i.e signature/header/message entities as a file record */ - fileName: string; + fileName: string /** * @description File content format. e.g json, csv, etc., * @default json * @example csv */ - fileFormat?: string; - }; + fileFormat?: string + } + /** @description Identifier type */ + IdentifierType: { + /** + * @description namespace to refer to identifier type; e.g, ns:dci:id-types:v1 + * @example ns:dci:id-types:v1 + */ + namespace?: string + /** + * @description refUri to reference identifier type schema + * @example https://digital-convergence-initiative-d.gitbook.io/dci-standards-1/standards/1.-crvs/6.5-data-standards/6.5.2-code-directory#cd.01-identifier_type + */ + refUri?: string + /** + * @description Identifier type + * @example UIN + */ + value: string + } + IdentifierTypeValue: { + identifier_type?: components['schemas']['IdentifierType'] + /** @example 12314567890 */ + identifier_value?: components['schemas']['AttributeValue'] + } /** * @description indicates language code. G2P Connect supports country codes as per ISO 639.3 standard * @example en */ - LanguageCode: string; + LanguageCode: string LatLong: { /** @example 11°24'12.2"N */ - latitude?: string; + latitude?: string /** @example 88°50'26.5"E */ - longitude?: string; - }; + longitude?: string + } /** @description Message header */ - "MsgCallbackHeader_V1.0.0": { + 'MsgCallbackHeader_V1.0.0': { /** * @description Messaing protocol specification version being used - * @example 0.1.0 + * @default 1.0.0 */ - version?: string; + version?: string /** * @description 1. Unique message id to communicate between sender and receiver systems to realiable deliver the message over any transport layer i.e https, pub/sub, sftp etc., * 2. The scope of message_id end with successful ack of the message by the receiver. @@ -1147,57 +1204,49 @@ export interface components { * * @example 789 */ - message_id: string; - message_ts: components["schemas"]["DateTime"]; + message_id: string + message_ts: components['schemas']['DateTime'] /** @description G2P Connect specific action. Usually verb from the URI should go here to help store and fwd kind of processing requirements. */ - action: string; - status: components["schemas"]["RequestStatus"]; - status_reason_code?: components["schemas"]["MsgHeaderStatusReasonCode"]; + action: string + status: components['schemas']['RequestStatus'] + status_reason_code?: components['schemas']['MsgHeaderStatusReasonCode'] /** @description Status reascon code message, if any, Helps actionanble messaging for system/end users */ - status_reason_message?: string; + status_reason_message?: string /** * @description Total no of requests present in the message request * @example 21800 */ - total_count?: number; + total_count?: number /** * @description No of requests in complteed state. Complete includes success and error requests due to funcational errors * @example 50 */ - completed_count?: number; + completed_count?: number /** * @description 1. sender_id registered with the receiving system or gateway. * 2. Used for authorization, encryption, digital sign verfication, etc., * * @example civilregistry.example.org */ - sender_id?: string; + sender_id?: string /** * @description receiver id registered with the calling system. Used for authorization, encryption, digital sign verfication, etc., functions. * @example registry.example.org */ - receiver_id?: string; + receiver_id?: string /** - * @description 1. If message is encrypted, Ecnryption alog used for receiver to decrypt the message payload - * 2. example: aes, rsa, aes_rsa, ecc, other - * - * @example [ - * "aes", - * "rsa", - * "aes+rsa", - * "ecc", - * "other" - * ] + * @description Is message encrypted? + * @default false */ - encryption_algo?: string; - }; + is_msg_encrypted?: boolean + } /** @description Message header */ - "MsgHeader_V1.0.0": { + 'MsgHeader_V1.0.0': { /** * @description Messaing protocol specification version being used - * @example 0.1.0 + * @default 1.0.0 */ - version?: string; + version?: string /** * @description 1. Unique message id to communicate between sender and receiver systems to realiable deliver the message over any transport layer i.e https, pub/sub, sftp etc., * 2. The scope of message_id end with successful ack of the message by the receiver. @@ -1205,17 +1254,17 @@ export interface components { * * @example 123 */ - message_id: string; - message_ts: components["schemas"]["DateTime"]; + message_id: string + message_ts: components['schemas']['DateTime'] /** @description G2P Connect specific action. Usually verb from the URI. Helps in sync, async, store/fwd processing. Helps identity payload type in message property. */ - action: string; + action: string /** * @description 1. sender_id registered with the receiving system or gateway. * 2. Used for authorization, encryption, digital sign verfication, etc., * * @example spp.example.org */ - sender_id: string; + sender_id: string /** * Format: uri * @description 1. sender url to accept callbacks. Applicable only for async communications and if response ack_status is ACK. @@ -1224,153 +1273,141 @@ export interface components { * * @example https://spp.example.org/{namespace}/callback/on-search */ - sender_uri?: string; + sender_uri?: string /** * @description receiver id registered with the calling system. Used for authorization, encryption, digital sign verfication, etc., functions. * @example pymts.example.org */ - receiver_id?: string; + receiver_id?: string /** * @description Total no of requests present in the message request * @example 21800 */ - total_count: number; + total_count: number /** - * @description 1. If message is encrypted, Ecnryption alog used for receiver to decrypt the message payload - * 2. example: aes, rsa, aes_rsa, ecc, other - * - * @example [ - * "aes", - * "rsa", - * "aes+rsa", - * "ecc", - * "other" - * ] + * @description Is message encrypted? + * @default false */ - encryption_algo?: string; - }; + is_msg_encrypted?: boolean + } /** * @description Message header related common status reason codes * @enum {string} */ MsgHeaderStatusReasonCode: - | "rjct.version.invalid" - | "rjct.message_id.duplicate" - | "rjct.message_ts.invalid" - | "rjct.action.invalid" - | "rjct.action.not_supported" - | "rjct.total_count.invalid" - | "rjct.total_count.limit_exceeded" - | "rjct.errors.too_many"; + | 'rjct.version.invalid' + | 'rjct.message_id.duplicate' + | 'rjct.message_ts.invalid' + | 'rjct.action.invalid' + | 'rjct.action.not_supported' + | 'rjct.total_count.invalid' + | 'rjct.total_count.limit_exceeded' + | 'rjct.errors.too_many' /** * @description Signature of {header}+{message} body verified using sender's signing public key * @example Signature: namespace="g2p", kidId="{sender_id}|{unique_key_id}|{algorithm}", algorithm="ed25519", created="1606970629", expires="1607030629", headers="(created) (expires) digest", signature="Base64(signing content) */ - MsgSignature: string; + MsgSignature: string /** @description Pagination definition, count starts with 1 */ Pagination: { /** * Format: int32 * @example 2000 */ - page_size: number; + page_size: number /** * Format: int32 * @example 5 */ - page_number: number; + page_number: number /** * Format: int32 * @example 24250 */ - total_count: number; - }; + total_count: number + } /** @description Pagination definition, count starts with 1 */ PaginationRequest: { /** * Format: int32 * @example 2000 */ - page_size: number; + page_size: number /** * Format: int32 * @default 1 * @example 5 */ - page_number?: number; - }; + page_number?: number + } + /** + * @description 1. Query format allow multiple ways to search registry + * 2. Templatized query expressions with placeholder for conditional values + * + * @example idtype-value + * @enum {string} + */ + QueryType: 'idtype-value' | 'expression' | 'predicate' /** * @description Unique reference_id set by txn initiating system for each request in a batch * @example 12345678901234567890 */ - ReferenceId: string; - ReferenceIdList: unknown; + ReferenceId: string + ReferenceIdList: components['schemas']['ReferenceId'][] /** * @description Request (e.g disburse, link, unlink, resolve, issue, search, verify, etc.,) status:
1. rcvd: Received; Request received
2. pdng: Pending; Request initiated
3. succ: Success; Request successful
4. rjct: Rejected; Request rejected * @enum {string} */ - RequestStatus: "rcvd" | "pdng" | "succ" | "rjct"; + RequestStatus: 'rcvd' | 'pdng' | 'succ' | 'rjct' /** @description Sorting definition */ SearchSort: { /** @description attribute name */ - attribute_name?: string; + attribute_name?: string /** @enum {string} */ - sort_order?: "asc" | "desc"; - }; - SearchSortList: unknown; + sort_order?: 'asc' | 'desc' + } + SearchSortList: components['schemas']['SearchSort'][] /** - * @description Unique transaction_id set by txn initiating system (i.e sender) to co-relate requests across processing systems/service end points - * @example 12345678901234567000 + * @description 1. transaction_id set by txn initiating system (i.e sender) to co-relate all related requests in the context of a business transaction. + * 2. transaction_id should be samme across processing systems/service end points. + * 2. transaction_id uniqueness is ensured by txn initiating system (i.e sender) + * + * @example 123456789 */ - TransactionId: string; - }; + TransactionId: string + } responses: { /** @description HTTP layer error details */ HttpErrorResponse: { content: { - "application/json": { - error?: { - /** @description error code */ - code?: string; - /** @description error message */ - message?: string; - }; - }; - }; - }; + 'application/json': { + errors?: unknown + } + } + } /** @description Acknowledgement of message received after successful validation of message and signature */ Response: { content: { - "application/json": { + 'application/json': { message?: { - ack_status?: components["schemas"]["Ack"]; - timestamp?: components["schemas"]["DateTime"]; - error?: components["schemas"]["Error"]; - }; - }; - }; - }; - }; - parameters: { - /** @description Default value: en */ - "accept-language"?: string; - /** @description request timestamp in HTTP Date format - Tue, 06 Mar 2020 21:00:00 GMT */ - timestamp: string; - /** @description Unique transaction id set by sender as part of the initiating request to co-relate requests across interface end point, sessions, etc., For e.g transaction_id be used to find status using GET call or correlate the transaction as part of the callback call. */ - transaction_id: string; - /** @description Optional. Defualt is false, If summary_only set to true then only the message header with stats / status to be returend as part of implementation */ - summary_only: boolean; - /** @description
1. Beneficiary id is a normative represenation represented as id@id-provider
2. This will enumerate foundational and functioanl id's to easily resolvable addressess
3. Few examples:
- id@id-provider e.g 12345@mosip, 12345@PhilID
- id@civil-registry.issuing-agency e.g 12345@crvs.rwanda, 12345@ejanma.karnataka - id@functional-identifier.issuing-agency e.g 12345@voter.Rwanda, 12345@DL.karnataka, 12345@fruits.karnataka
Note: id-provider should be made configurable and DPGs operating should adapt to the local jurisdiction and policies. e.g fruits.karnataka represents farmer registry in karnataka state govt.
*/ - beneficiary_id: string; - }; - requestBodies: never; - headers: never; - pathItems: never; + ack_status: components['schemas']['Ack'] + timestamp: components['schemas']['DateTime'] + error?: components['schemas']['Error'] + correlation_id: components['schemas']['SearchResponse']['correlation_id'] + } + } + } + } + } + parameters: never + requestBodies: never + headers: never + pathItems: never } -export type $defs = Record; +export type $defs = Record -export type external = Record; +export type external = Record export interface operations { /** @@ -1380,57 +1417,58 @@ export interface operations { post_reg_search: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "search"; - }; + action?: 'search' + } /** @description The search data using which registry search to be performed */ - message: components["schemas"]["SearchRequest"]; // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + message: components['schemas']['SearchRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "search"; - }; - }; - }; + action?: 'search' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["Response"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** * /registry/on-search * @description Search results through callback */ - "post_reg_on-search": { + 'post_reg_on-search': { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgCallbackHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "on-search"; - }; - message?: components["schemas"]["SearchResponse"]; + action?: 'on-search' + } + message?: components['schemas']['SearchResponse'] // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "on-search"; - }; - }; - }; + action?: 'on-search' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["Response"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** * /registry/subscribe * @description Subscribe to a life event with registry @@ -1438,29 +1476,59 @@ export interface operations { post_reg_subscribe: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "subscribe"; - }; + action?: 'subscribe' + } /** @description Subscription request which contaion query with frequency and other info on which notification to be sent by registry to subscriber */ - message: components["schemas"]["SubscribeRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + message: components['schemas']['SubscribeRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { + /** @enum {unknown} */ + action?: 'subscribe' + } + } + } + responses: { + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } + /** + * /registry/on-subscribe + * @description Subscribe results through callback + */ + 'post_reg_on-subscribe': { + requestBody: { + content: { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { + /** @enum {unknown} */ + action?: 'on-subscribe' + } + /** @description Subscription information */ + message: components['schemas']['SubscribeResponse'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "subscribe"; - }; - }; - }; + action?: 'on-subscribe' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["Response"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** * /registry/notify * @description Registry to notify a life event to subscrbiers @@ -1468,237 +1536,220 @@ export interface operations { post_reg_notify: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgCallbackHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "notify"; - }; - message?: components["schemas"]["NotifyEventRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + action?: 'notify' + } + message?: components['schemas']['NotifyEventRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "notify"; - }; - }; - }; + action?: 'notify' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["HttpErrorResponse"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['HttpErrorResponse'] + } + } /** - * /registry/txn/status - * @description Perform async status check of previous civil registry transanctions using transaction_id and/or reference_id(s) + * /registry/unsubscribe + * @description Unsubscribe existing subscription(s) by subscription_code */ - post_reg_txnstatus: { + post_reg_unsubscribe: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "subscribe" | "notify" | "on-search"; - }; - message: components["schemas"]["TxnStatusRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + action?: 'unsubscribe' + } + /** @description The unsubscribe request that contain subscription ids which to be removed from subscription list */ + message: components['schemas']['UnSubscribeRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "subscribe" | "notify" | "on-search"; - }; - }; - }; + action?: 'unsubscribe' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["Response"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** - * /registry/txn/on-status - * @description Response to async status check of previous civil registrt transanctions using callback + * /registry/on-unsubscribe + * @description Unsubscribe response as a callback */ - "post_reg_on-txnstatus": { + 'post_reg_on-unsubscribe': { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "subscribe" | "notify" | "on-search"; - }; - message?: components["schemas"]["TxnStatusResponse"]; - // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { + action?: 'on-unsubscribe' + } + message: components['schemas']['UnSubscribeResponse'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { /** @enum {unknown} */ - action?: "subscribe" | "notify" | "on-search"; - }; - }; - }; + action?: 'on-unsubscribe' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - default: components["responses"]["Response"]; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** - * /registry/sync/search - * @description Search person(s) in registry using identifier or custome attributes + * /registry/txn/status + * @description Perform async status check of previous civil registry transanctions using transaction_id and/or reference_id(s) */ - post_reg_sync_search: { + post_reg_txnstatus: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "search"; - }; - /** @description The search data using which registry search to be performed */ - message: components["schemas"]["SearchRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; + action?: 'txn-status' + } + message: components['schemas']['TxnStatusRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { + /** @enum {unknown} */ + action?: 'txn-status' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - /** @description Registry search response */ - default: { - content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"] & { - /** @enum {unknown} */ - action?: "on-search"; - }; - message?: components["schemas"]["SearchResponse"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** - * /registry/sync/subscriptions - * @description To retrive list of subscriptions + * /registry/txn/on-status + * @description Response to async status check of previous civil registrt transanctions using callback */ - post_reg_sync_subscriptions: { + 'post_reg_on-txnstatus': { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgCallbackHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "fetch_subscriptions"; - }; - /** @description To perform search based on registry type or event type */ - message: components["schemas"]["FetchSubscriptionsRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; + action?: 'txn-on-status' + } + message?: components['schemas']['TxnStatusResponse'] + // | components["schemas"]["EncryptedMessage"]; + } + 'multipart/form-data': components['schemas']['FileInfo'] & { + /** @enum {unknown} */ + action?: 'txn-on-status' + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - /** @description Subscription list response */ - default: { - content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"]; - message?: components["schemas"]["FetchSubscriptionsResponse"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; - }; - }; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + default: components['responses']['Response'] + } + } /** - * /registry/sync/unsubscribe - * @description Unsubscribe to a life event with registry + * /registry/sync/search + * @description Search person(s) in registry using identifier or custome attributes */ - post_reg_sync_unsubscribe: { + post_reg_sync_search: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "unsubscribe"; - }; - /** @description The unsubscribe request that contain subscription ids which to be removed from subscription list */ - message: components["schemas"]["UnSubscribeRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - "multipart/form-data": components["schemas"]["FileInfo"] & { - /** @enum {unknown} */ - action?: "unsubscribe"; - }; - }; - }; + action?: 'search' + } + /** @description The search data using which registry search to be performed */ + message: components['schemas']['SearchRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; - /** @description Unsubscribe response */ + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] + /** @description Registry search response */ default: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"]; - message: components["schemas"]["UnSubscribeResponse"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; - }; - }; + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgCallbackHeader_V1.0.0'] & { + /** @enum {unknown} */ + action?: 'on-search' + } + message?: components['schemas']['SearchResponse'] + // | components["schemas"]["EncryptedMessage"]; + } + } + } + } + } /** * /registry/sync/txn/status - * @description Perform async status check of previous civil registry transanctions using transaction_id and/or reference_id(s) + * @description Sync status check of registry Async APIs */ post_reg_sync_txnstatus: { requestBody: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "search" | "subscribe"; - }; - message: components["schemas"]["TxnStatusRequest"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; + action?: 'txn-status' + } + message: components['schemas']['TxnStatusRequest'] + // | components["schemas"]["EncryptedMessage"]; + } + } + } responses: { - 401: components["responses"]["HttpErrorResponse"]; - 403: components["responses"]["HttpErrorResponse"]; - 500: components["responses"]["HttpErrorResponse"]; + 401: components['responses']['HttpErrorResponse'] + 403: components['responses']['HttpErrorResponse'] + 500: components['responses']['HttpErrorResponse'] /** @description Transaction status check response */ default: { content: { - "application/json": { - signature?: components["schemas"]["MsgSignature"]; - header: components["schemas"]["MsgCallbackHeader_V1.0.0"] & { + 'application/json': { + signature?: components['schemas']['MsgSignature'] + header: components['schemas']['MsgCallbackHeader_V1.0.0'] & { /** @enum {unknown} */ - action?: "on-search" | "notify"; - }; - message?: components["schemas"]["TxnStatusResponse"]; - // | components["schemas"]["EncryptedMessage"]; - }; - }; - }; - }; - }; + action?: 'txn-on-status' + } + message?: components['schemas']['TxnStatusResponse'] + // | components["schemas"]["EncryptedMessage"]; + } + } + } + } + } } diff --git a/packages/dci-api/src/routes.ts b/packages/dci-api/src/routes.ts index a1cc559..1c11baf 100644 --- a/packages/dci-api/src/routes.ts +++ b/packages/dci-api/src/routes.ts @@ -1,16 +1,16 @@ -import type * as Hapi from "@hapi/hapi"; -import { syncSearchHandler } from "./sync-search/sync-search-handler"; -import { healthcheckHandler } from "./healthcheck/healthcheck-handler"; +import type * as Hapi from '@hapi/hapi' +import { syncSearchHandler } from './sync-search/sync-search-handler' +import { healthcheckHandler } from './healthcheck/healthcheck-handler' export const routes = [ { - method: "GET", - path: "/health", - handler: healthcheckHandler, + method: 'GET', + path: '/health', + handler: healthcheckHandler }, { - method: "POST", - path: "/registry/sync/search", - handler: syncSearchHandler, - }, -] satisfies Array>; + method: 'POST', + path: '/registry/sync/search', + handler: syncSearchHandler + } +] satisfies Array> diff --git a/packages/dci-api/src/server.ts b/packages/dci-api/src/server.ts index 1f8a5f6..ecb0f40 100644 --- a/packages/dci-api/src/server.ts +++ b/packages/dci-api/src/server.ts @@ -1,70 +1,70 @@ -import * as Hapi from "@hapi/hapi"; -import { HOST, PORT, DEFAULT_TIMEOUT_MS, NODE_ENV } from "./constants"; -import { routes } from "./routes"; -import { ParseError } from "dci-opencrvs-bridge"; -import { AuthorizationError } from "opencrvs-api/src/error"; -import pino from "hapi-pino"; -import { error } from "./error"; +import * as Hapi from '@hapi/hapi' +import { HOST, PORT, DEFAULT_TIMEOUT_MS, NODE_ENV } from './constants' +import { routes } from './routes' +import { ParseError } from 'dci-opencrvs-bridge' +import { AuthorizationError } from 'opencrvs-api/src/error' +import pino from 'hapi-pino' +import { error } from './error' export async function createServer() { const server = new Hapi.Server({ host: HOST, port: PORT, routes: { - cors: { origin: ["*"] }, - payload: { maxBytes: 52428800, timeout: DEFAULT_TIMEOUT_MS }, - }, - }); + cors: { origin: ['*'] }, + payload: { maxBytes: 52428800, timeout: DEFAULT_TIMEOUT_MS } + } + }) - server.route(routes); + server.route(routes) await server.register({ plugin: pino, options: { redact: ['req.headers["x-access-token"]'], - ...(NODE_ENV === "production" + ...(NODE_ENV === 'production' ? {} : { transport: { - target: "pino-pretty", - }, - }), - }, - }); + target: 'pino-pretty' + } + }) + } + }) - server.ext("onPreResponse", (request, reply) => { + server.ext('onPreResponse', (request, reply) => { if (request.response instanceof ParseError) { - return error(request, reply, 400); + return error(request, reply, 400) } if (request.response instanceof AuthorizationError) { - return error(request, reply, 401); + return error(request, reply, 401) } - if ("isBoom" in request.response) { - return error(request, reply, 500); + if ('isBoom' in request.response) { + return error(request, reply, 500) } - return reply.continue; - }); + return reply.continue + }) async function start() { - await server.start(); + await server.start() server.log( - "info", + 'info', `DCI-CRVS to OpenCRVS interoperability API started on ${HOST}:${PORT}` - ); + ) } async function stop() { - await server.stop(); - server.log("info", "Search server stopped"); + await server.stop() + server.log('info', 'Search server stopped') } async function init() { - await server.initialize(); - return server; + await server.initialize() + return server } - return { start, init, stop }; + return { start, init, stop } } diff --git a/packages/dci-api/src/sync-search/sync-search-handler.test.ts b/packages/dci-api/src/sync-search/sync-search-handler.test.ts index 43d9fdf..23c7c69 100644 --- a/packages/dci-api/src/sync-search/sync-search-handler.test.ts +++ b/packages/dci-api/src/sync-search/sync-search-handler.test.ts @@ -1,49 +1,53 @@ -import { afterEach, beforeEach, describe, it } from "node:test"; -import assert from "node:assert"; -import type * as Hapi from "@hapi/hapi"; -import { createServer } from "../server"; -import { withRequestInterception } from "../test-utilities"; -import { http } from "msw"; +import { afterEach, beforeEach, describe, it } from 'node:test' +import assert from 'node:assert' +import type * as Hapi from '@hapi/hapi' +import { createServer } from '../server' +import { withRequestInterception } from '../test-utilities' +import { http } from 'msw' import { AUTHENTICATE_SYSTEM_CLIENT_URL, - RECORD_SEARCH_URL, -} from "opencrvs-api"; -import testPayload from "./test-payload.json"; -import testResponse from "./test-opencrvs-api-response.json"; + OPENCRVS_GATEWAY_URL +} from 'opencrvs-api' +import testPayload from './test-payload.json' +import testFetchRegistrationResponse from './test-fetchregistration-response.json' +import testSearchEventsResponse from './test-searchevents-response.json' -describe("POST /registry/sync/search", () => { - let server: Hapi.Server; +describe('POST /registry/sync/search', () => { + let server: Hapi.Server beforeEach(async () => { - const { init } = await createServer(); - server = await init(); - }); + const { init } = await createServer() + server = await init() + }) afterEach(async () => { - await server.stop(); - }); + await server.stop() + }) it( - "responds with success", + 'responds with success', withRequestInterception( [ http.post(AUTHENTICATE_SYSTEM_CLIENT_URL.toString(), () => { - return new Response(JSON.stringify({ token: "test-token" })); + return new Response(JSON.stringify({ token: 'test-token' })) }), - http.post(RECORD_SEARCH_URL.toString(), () => { - return new Response(JSON.stringify(testResponse)); + http.post(OPENCRVS_GATEWAY_URL.toString(), () => { + return new Response(JSON.stringify(testSearchEventsResponse)) }), + http.post(OPENCRVS_GATEWAY_URL.toString(), () => { + return new Response(JSON.stringify(testFetchRegistrationResponse)) + }) ], async () => { const res = await server.inject({ - method: "POST", - url: "/registry/sync/search", - payload: testPayload, - }); + method: 'POST', + url: '/registry/sync/search', + payload: testPayload + }) - assert.strictEqual(res.statusCode, 200); - assert.strictEqual(JSON.parse(res.payload).header.version, "1.0.0"); + assert.strictEqual(res.statusCode, 200) + assert.strictEqual(JSON.parse(res.payload).header.version, '1.0.0') } ) - ); -}); + ) +}) diff --git a/packages/dci-api/src/sync-search/sync-search-handler.ts b/packages/dci-api/src/sync-search/sync-search-handler.ts index f5ac08f..a294f22 100644 --- a/packages/dci-api/src/sync-search/sync-search-handler.ts +++ b/packages/dci-api/src/sync-search/sync-search-handler.ts @@ -1,32 +1,48 @@ -import type * as Hapi from "@hapi/hapi"; -import { authenticateClient, advancedRecordSearch } from "opencrvs-api"; +import type * as Hapi from '@hapi/hapi' +import { + authenticateClient, + advancedRecordSearch, + fetchRegistration +} from 'opencrvs-api' import { registrySyncSearchBuilder, - searchRequestToAdvancedSearchParameters, -} from "dci-opencrvs-bridge"; -import type { operations, components } from "../registry-core-api"; + searchRequestToAdvancedSearchParameters +} from 'dci-opencrvs-bridge' +import type { operations, components } from '../registry-core-api' +import { compact } from 'lodash/fp' + +async function fetchRegistrations(token: string, ids: string[]) { + return await Promise.all( + ids.map(async (id) => await fetchRegistration(token, id)) + ) +} async function search( token: string, - request: components["schemas"]["SearchRequest"] + request: components['schemas']['SearchRequest'] ) { - const searchRequests = request.search_request; + const searchRequests = request.search_request const searchResults = await Promise.all( searchRequests.map(async (searchRequest) => { const response = await advancedRecordSearch( token, searchRequestToAdvancedSearchParameters(searchRequest) - ); + ) + + const responseIds = compact( + response?.results?.map((result) => result?.id) + ) + const registrations = await fetchRegistrations(token, responseIds) return { - response, + registrations: compact(registrations), responseFinishedTimestamp: new Date(), - originalRequest: searchRequest, - }; + originalRequest: searchRequest + } }) - ); + ) - return searchResults; + return searchResults } export async function syncSearchHandler( @@ -34,9 +50,8 @@ export async function syncSearchHandler( h: Hapi.ResponseToolkit ) { const payload = - request.payload as operations["post_reg_sync_search"]["requestBody"]["content"]["application/json"]; - - const token = await authenticateClient(); - const result = await search(token, payload.message); - return registrySyncSearchBuilder(result, payload); + request.payload as operations['post_reg_sync_search']['requestBody']['content']['application/json'] + const token = await authenticateClient() + const results = await search(token, payload.message) + return registrySyncSearchBuilder(results, payload) } diff --git a/packages/dci-api/src/sync-search/test-fetchregistration-response.json b/packages/dci-api/src/sync-search/test-fetchregistration-response.json new file mode 100644 index 0000000..9214708 --- /dev/null +++ b/packages/dci-api/src/sync-search/test-fetchregistration-response.json @@ -0,0 +1,57 @@ +{ + "data": { + "fetchRegistration": { + "id": "0967bab8-d5af-4bf4-a3e2-463aeed1173e", + "registration": { + "id": "97ffdfb8-52f2-4ff0-acd7-cd25bc29d638", + "type": "BIRTH", + "trackingId": "BIYCGRT", + "status": [ + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + }, + { + "type": "REGISTERED" + } + ], + "duplicates": null, + "assignment": null + }, + "__typename": "BirthRegistration", + "child": { + "id": "26e17f5c-e45d-4d23-b464-d6e4043d1b76", + "name": [ + { + "use": "en", + "firstNames": "Test", + "familyName": "Last" + } + ] + } + } + } +} diff --git a/packages/dci-api/src/sync-search/test-opencrvs-api-response.json b/packages/dci-api/src/sync-search/test-opencrvs-api-response.json deleted file mode 100644 index 3f33181..0000000 --- a/packages/dci-api/src/sync-search/test-opencrvs-api-response.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "body": { - "took": 10, - "timed_out": false, - "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, - "hits": { - "total": { "value": 1, "relation": "eq" }, - "max_score": null, - "hits": [ - { - "_index": "ocrvs", - "_type": "compositions", - "_id": "0967bab8-d5af-4bf4-a3e2-463aeed1173e", - "_score": null, - "_source": { - "event": "Birth", - "createdAt": "1692862368034", - "operationHistories": [ - { - "operatedOn": "2023-08-24T07:32:47.440Z", - "operatorFirstNames": "Kennedy", - "operatorFamilyNameLocale": "", - "operatorFamilyName": "Mweene", - "operatorFirstNamesLocale": "", - "operatorOfficeName": "Ibombo District Office", - "operatorOfficeAlias": ["Ibombo District Office"], - "operationType": "WAITING_VALIDATION", - "operatorRole": "Local Registrar" - }, - { - "operatedOn": "2023-08-24T07:32:47.440Z", - "operatorFirstNames": "Kennedy", - "operatorFamilyNameLocale": "", - "operatorFamilyName": "Mweene", - "operatorFirstNamesLocale": "", - "operatorOfficeName": "Ibombo District Office", - "operatorOfficeAlias": ["Ibombo District Office"], - "operationType": "REGISTERED", - "operatorRole": "Local Registrar" - } - ], - "eventLocationId": "619ac850-2c25-4a3a-9511-a6dc165cff67", - "childFirstNames": "Test", - "childFamilyName": "Last", - "childDoB": "2023-01-01", - "gender": "male", - "motherFirstNames": "Mother", - "motherFamilyName": "Last", - "motherDoB": "1990-01-01", - "informantFirstNames": "Mother", - "informantFamilyName": "Last", - "informantDoB": "1990-01-01", - "contactRelationship": "MOTHER", - "contactEmail": "mother@example.com", - "type": "REGISTERED", - "dateOfDeclaration": "2023-08-24T07:32:47.440Z", - "trackingId": "BIYCGRT", - "declarationLocationId": "76dd1672-3f98-4300-b749-255ed9b7b6ee", - "declarationJurisdictionIds": [ - "76dd1672-3f98-4300-b749-255ed9b7b6ee", - "904bd0fa-5f4e-4684-a23e-e5efe9752153", - "9702bf75-13d9-4d9f-973c-64087ce8b71b" - ], - "compositionType": "birth-declaration", - "createdBy": "8b64b845-abe2-4539-ad29-7bdae39fe5ca", - "updatedBy": "8b64b845-abe2-4539-ad29-7bdae39fe5ca", - "modifiedAt": "1692862371551", - "registrationNumber": "2023BIYCGRT", - "assignment": null - }, - "sort": [1692862367440] - } - ] - } - }, - "statusCode": 200, - "headers": { - "x-elastic-product": "Elasticsearch", - "warning": "299 Elasticsearch-7.17.0-bee86328705acaa9a6daede7140defd4d9ec56bd \"Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.\", 299 Elasticsearch-7.17.0-bee86328705acaa9a6daede7140defd4d9ec56bd \"[types removal] Specifying types in search requests is deprecated.\"", - "content-type": "application/json; charset=UTF-8", - "content-length": "1915" - }, - "meta": { - "context": null, - "request": { - "params": { - "method": "POST", - "path": "/ocrvs/compositions/_search", - "body": "{\"query\":{\"bool\":{\"must\":[{\"query_string\":{\"default_field\":\"type\",\"query\":\"(REGISTERED) OR (CERTIFIED)\"}},{\"multi_match\":{\"query\":\"Last\",\"fields\":\"motherFamilyName\",\"fuzziness\":\"AUTO\"}}],\"should\":[]}},\"sort\":[{\"dateOfDeclaration\":\"asc\"}]}", - "querystring": "from=0&size=10", - "headers": { - "user-agent": "elasticsearch-js/7.17.0 (linux 5.4.72-microsoft-standard-WSL2-x64; Node.js v16.20.0)", - "x-elastic-client-meta": "es=7.17.0,js=16.20.0,t=7.17.0,hc=16.20.0", - "content-type": "application/json", - "content-length": "238" - }, - "timeout": 30000 - }, - "options": {}, - "id": 80 - }, - "name": "elasticsearch-js", - "connection": { - "url": "http://localhost:9200/", - "id": "http://localhost:9200/", - "headers": {}, - "deadCount": 0, - "resurrectTimeout": 0, - "_openRequests": 0, - "status": "alive", - "roles": { "master": true, "data": true, "ingest": true, "ml": false } - }, - "attempts": 0, - "aborted": false - } -} diff --git a/packages/dci-api/src/sync-search/test-searchevents-response.json b/packages/dci-api/src/sync-search/test-searchevents-response.json new file mode 100644 index 0000000..fcf239d --- /dev/null +++ b/packages/dci-api/src/sync-search/test-searchevents-response.json @@ -0,0 +1,12 @@ +{ + "data": { + "searchEvents": { + "totalItems": 1, + "results": [ + { + "id": "0967bab8-d5af-4bf4-a3e2-463aeed1173e" + } + ] + } + } +} diff --git a/packages/dci-api/src/test-utilities.ts b/packages/dci-api/src/test-utilities.ts index ff85844..dc10ece 100644 --- a/packages/dci-api/src/test-utilities.ts +++ b/packages/dci-api/src/test-utilities.ts @@ -1,20 +1,20 @@ -import { setupServer } from "msw/node"; -import type { SetupServer } from "msw/node"; -import { NO_RESPONSE_MOCK } from "./constants"; +import { setupServer } from 'msw/node' +import type { SetupServer } from 'msw/node' +import { NO_RESPONSE_MOCK } from './constants' -type ServerOptions = Parameters; +type ServerOptions = Parameters export const withRequestInterception = (handlers: ServerOptions, test: (server: SetupServer) => any) => async () => { if (NO_RESPONSE_MOCK) { - return await Promise.resolve(test(setupServer())); + return await Promise.resolve(test(setupServer())) } - const server = setupServer(...handlers); - server.listen(); + const server = setupServer(...handlers) + server.listen() return await Promise.resolve(test(server)).finally(() => { - server.resetHandlers(); - server.close(); - }); - }; + server.resetHandlers() + server.close() + }) + } diff --git a/packages/dci-opencrvs-bridge/package.json b/packages/dci-opencrvs-bridge/package.json index 0da5568..cad389d 100644 --- a/packages/dci-opencrvs-bridge/package.json +++ b/packages/dci-opencrvs-bridge/package.json @@ -4,7 +4,11 @@ "description": "Supplies tools and types for converting DCI search queries into OpenCRVS search queries, and converting the search results into DCI search results.", "main": "src/index.ts", "license": "ISC", + "dependencies": { + "lodash": "^4.17.21" + }, "devDependencies": { + "@types/lodash": "^4.14.197", "typescript": "^5.2.2" } } diff --git a/packages/dci-opencrvs-bridge/src/dci-to-opencrvs.ts b/packages/dci-opencrvs-bridge/src/dci-to-opencrvs.ts index fbdbfda..1ce2495 100644 --- a/packages/dci-opencrvs-bridge/src/dci-to-opencrvs.ts +++ b/packages/dci-opencrvs-bridge/src/dci-to-opencrvs.ts @@ -1,44 +1,44 @@ -import type { SearchEventsQueryVariables } from "opencrvs-api"; -import type { components } from "dci-api"; -import { ParseError } from "./error"; +import type { SearchEventsQueryVariables } from 'opencrvs-api' +import type { components } from 'dci-api' +import { ParseError } from './error' export function searchRequestToAdvancedSearchParameters( - request: components["schemas"]["SearchRequest"]["search_request"][number] + request: components['schemas']['SearchRequest']['search_request'][number] ): SearchEventsQueryVariables { const query = request.search_criteria.query as { identifiers?: Array<{ - identifier_type: "BRN" | string; - identifier_value: string; - }>; - }; + identifier_type: 'BRN' | string + identifier_value: string + }> + } const sort = request.search_criteria.sort as | Array<{ - attribute_name: "dateOfDeclaration"; - sort_order: "asc" | "desc"; + attribute_name: 'dateOfDeclaration' + sort_order: 'asc' | 'desc' }> - | undefined; - const parameters: SearchEventsQueryVariables["advancedSearchParameters"] = {}; + | undefined + const parameters: SearchEventsQueryVariables['advancedSearchParameters'] = {} // let sortOrder: "asc" | "desc" = "asc"; // let sortColumn: string | undefined; // TODO: Support more than one identifier - if (query.identifiers?.[0]?.identifier_type === "BRN") { - parameters.registrationNumber = query.identifiers[0].identifier_value; - } else if (query.identifiers?.[0]?.identifier_type === "DRN") { - parameters.registrationNumber = query.identifiers[0].identifier_value; - } else if (query.identifiers?.[0]?.identifier_type === "MRN") { - parameters.registrationNumber = query.identifiers[0].identifier_value; - } else if (query.identifiers?.[0]?.identifier_type === "OPENCRVS_RECORD_ID") { - parameters.recordId = query.identifiers[0].identifier_value; + if (query.identifiers?.[0]?.identifier_type === 'BRN') { + parameters.registrationNumber = query.identifiers[0].identifier_value + } else if (query.identifiers?.[0]?.identifier_type === 'DRN') { + parameters.registrationNumber = query.identifiers[0].identifier_value + } else if (query.identifiers?.[0]?.identifier_type === 'MRN') { + parameters.registrationNumber = query.identifiers[0].identifier_value + } else if (query.identifiers?.[0]?.identifier_type === 'OPENCRVS_RECORD_ID') { + parameters.recordId = query.identifiers[0].identifier_value } else { - throw new ParseError("Unsupported identifier type"); + throw new ParseError('Unsupported identifier type') } if ((sort?.length ?? 0) > 1) { - throw new ParseError("Sorting by more than one attribute is not supported"); + throw new ParseError('Sorting by more than one attribute is not supported') } - if (sort?.[0]?.attribute_name === "dateOfDeclaration") { + if (sort?.[0]?.attribute_name === 'dateOfDeclaration') { // sortColumn = "dateOfDeclaration"; } @@ -46,5 +46,5 @@ export function searchRequestToAdvancedSearchParameters( // sortOrder = sort?.[0]?.sort_order; } - return { advancedSearchParameters: parameters }; + return { advancedSearchParameters: parameters } } diff --git a/packages/dci-opencrvs-bridge/src/error.ts b/packages/dci-opencrvs-bridge/src/error.ts index 780aedc..2b7f6d5 100644 --- a/packages/dci-opencrvs-bridge/src/error.ts +++ b/packages/dci-opencrvs-bridge/src/error.ts @@ -1,6 +1,6 @@ export class ParseError extends Error { constructor(message: string) { - super(message); - this.name = "ParseError"; + super(message) + this.name = 'ParseError' } } diff --git a/packages/dci-opencrvs-bridge/src/index.ts b/packages/dci-opencrvs-bridge/src/index.ts index 2002d06..8074ae5 100644 --- a/packages/dci-opencrvs-bridge/src/index.ts +++ b/packages/dci-opencrvs-bridge/src/index.ts @@ -1,3 +1,3 @@ -export * from "./dci-to-opencrvs"; -export * from "./opencrvs-to-dci"; -export * from "./error"; +export * from './dci-to-opencrvs' +export * from './opencrvs-to-dci' +export * from './error' diff --git a/packages/dci-opencrvs-bridge/src/opencrvs-to-dci.ts b/packages/dci-opencrvs-bridge/src/opencrvs-to-dci.ts index 585ea47..6872183 100644 --- a/packages/dci-opencrvs-bridge/src/opencrvs-to-dci.ts +++ b/packages/dci-opencrvs-bridge/src/opencrvs-to-dci.ts @@ -1,214 +1,198 @@ import type { - DeathEventSearchSet, - MarriageEventSearchSet, - BirthEventSearchSet, - EventSearchResultSet, -} from "opencrvs-api"; -import type { operations, components } from "dci-api"; -import type { SearchResponseWithMetadata } from "./types"; -import { ParseError } from "./error"; + Registration, + BirthRegistration, + DeathRegistration, + MarriageRegistration +} from 'opencrvs-api' +import type { operations, components } from 'dci-api' +import type { SearchResponseWithMetadata } from './types' +import { ParseError } from './error' +import { isNil } from 'lodash/fp' -function name({ +const name = ({ firstNames, - familyName, + familyName }: { - firstNames: string; - familyName: string; -}) { - return { - given_name: firstNames.split(" ")[0], - middle_name: firstNames.split(" ")[1], - family_name: familyName, - }; + firstNames: string | null // The names cannot be undefined, but they should be able to be null, to mark as it being intentionally empty + familyName: string | null // ^ +}) => ({ + given_name: firstNames?.split(' ')[0] ?? null, + middle_name: firstNames?.split(' ')[1] ?? null, + family_name: familyName +}) + +const sex = (value: string) => { + switch (value) { + case 'male': + return '1' + case 'female': + return '2' + case 'other': + return '3' + default: + return '4' + } } -function birthCivilRegPerson( - event: BirthEventSearchSet -): components["schemas"]["civilReg_PersonRecord"] { - const isMotherDefined = event.mothersFirstName !== undefined; - const isFatherDefined = event.fathersFirstName !== undefined; - const isInformantRelationshipUniqueAndDefined = - event.registration?.contactRelationship !== "FATHER" && - event.registration?.contactRelationship !== "MOTHER"; - // && composition.informantFirstNames !== undefined; informant names? +function birthPersonRecord(registration: BirthRegistration) { + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const motherIdentifier = !isNil(registration.mother?.identifier?.[0]?.id) + ? { + identifier_type: registration.mother!.identifier![0]!.type! as 'UIN', + identifier: registration.mother!.identifier![0]!.id + } + : undefined + + const fatherIdentifier = !isNil(registration.father?.identifier?.[0]?.id) + ? { + identifier_type: registration.father!.identifier![0]!.type! as 'UIN', + identifier: registration.father!.identifier![0]!.id + } + : undefined + /* eslint-enable @typescript-eslint/no-non-null-assertion */ return { - sub: event.id, - birthdate: event.dateOfBirth, + birthdate: registration.child.birthDate, ...name({ - firstNames: event.childName?.[0]?.firstNames ?? "", // TODO: Improve the GraphQL types to assert that these values exist - familyName: event.childName?.[0]?.familyName ?? "", // TODO: Improve the GraphQL types to assert that these values exist + firstNames: registration.child.name[0].firstNames, + familyName: registration.child.name[0].familyName }), - gender: event.childGender ?? "unknown", // TODO: Improve the GraphQL types to assert that these values exist - related_persons: [ - ...(isMotherDefined - ? [ - { - relationship: "mother", - name: `${event.mothersFirstName} ${event.mothersLastName}`, - sub: event.motherIdentifier ?? undefined, - }, - ] - : []), - ...(isFatherDefined - ? [ - { - relationship: "father", - name: `${event.fathersFirstName} ${event.fathersLastName}`, - sub: event.fatherIdentifier ?? undefined, - }, - ] - : []), - ...(isInformantRelationshipUniqueAndDefined - ? [ - { - relationship: - event.registration?.contactRelationship ?? undefined, // TODO: How to map into a DCI relationship? - name: ``, // TODO: How to get informant name? - sub: ``, // TODO: How to get informant id? - }, - ] - : []), - ], - }; + sex: sex(registration.child.gender), + parent1_identifier: motherIdentifier, + parent2_identifier: fatherIdentifier + } satisfies components['schemas']['dci_PersonRecord'] } -function deathCivilRegPerson( - event: DeathEventSearchSet -): components["schemas"]["civilReg_PersonRecord"] { - const isInformantRelationshipUniqueAndDefined = - event.registration?.contactRelationship !== "FATHER" && - event.registration?.contactRelationship !== "MOTHER"; - // && composition.informantFirstNames !== undefined; informant names? +function deathPersonRecord(registration: DeathRegistration) { + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const motherIdentifier = !isNil(registration.mother?.identifier?.[0]?.id) + ? { + identifier_type: registration.mother!.identifier![0]!.type! as 'UIN', + identifier: registration.mother!.identifier![0]!.id + } + : undefined + + const fatherIdentifier = !isNil(registration.father?.identifier?.[0]?.id) + ? { + identifier_type: registration.father!.identifier![0]!.type! as 'UIN', + identifier: registration.father!.identifier![0]!.id + } + : undefined + /* eslint-enable @typescript-eslint/no-non-null-assertion */ return { - sub: event.id, - deathdate: event.dateOfDeath, + birthdate: registration.deceased?.birthDate ?? undefined, + deathdate: registration.deceased?.deceased?.deathDate ?? undefined, ...name({ - firstNames: event.deceasedName?.[0]?.firstNames ?? "", // TODO: Improve the GraphQL types to assert that these values exist - familyName: event.deceasedName?.[0]?.familyName ?? "", // TODO: Improve the GraphQL types to assert that these values exist + firstNames: registration.deceased.name[0].firstNames, + familyName: registration.deceased.name[0].familyName }), - gender: event.deceasedGender ?? "unknown", // TODO: Improve the GraphQL types to assert that these values exist - related_persons: [ - ...(isInformantRelationshipUniqueAndDefined - ? [ - { - relationship: - event.registration?.contactRelationship ?? undefined, // TODO: How to map into a DCI relationship? - name: ``, // TODO: How to get informant name? - sub: ``, // TODO: How to get informant id? - }, - ] - : []), - ], - }; + sex: sex(registration.deceased.gender), + parent1_identifier: motherIdentifier, + parent2_identifier: fatherIdentifier + } satisfies components['schemas']['dci_PersonRecord'] } -function marriageCivilRegPerson( - event: MarriageEventSearchSet -): components["schemas"]["civilReg_PersonRecord"] { +function marriagePersonRecord( + registration: MarriageRegistration +): components['schemas']['dci_PersonRecord'] { return { // TODO: return a correct payload - sub: event.id, - }; + identifier: registration.id, + marriagedate: registration.bride?.dateOfMarriage + } } function eventType(event: string) { switch (event) { - case "Birth": - return "1" satisfies components["schemas"]["dci_VitalEvents"]; - case "Death": - return "2" satisfies components["schemas"]["dci_VitalEvents"]; - case "Marriage": - return "4" satisfies components["schemas"]["dci_VitalEvents"]; + case 'Birth': + return '1' satisfies components['schemas']['dci_VitalEvents'] + case 'Death': + return '2' satisfies components['schemas']['dci_VitalEvents'] + case 'Marriage': + return '4' satisfies components['schemas']['dci_VitalEvents'] default: - throw new ParseError("Unimplemented event type"); + throw new ParseError('Unimplemented event type') } } function isBirthEventSearchSet( - eventSearchSet: - | BirthEventSearchSet - | DeathEventSearchSet - | MarriageEventSearchSet -): eventSearchSet is BirthEventSearchSet { - return eventSearchSet.__typename === "BirthEventSearchSet"; + registration: BirthRegistration | DeathRegistration | MarriageRegistration +): registration is BirthRegistration { + return registration.__typename === 'BirthRegistration' } function isMarriageEventSearchSet( - eventSearchSet: - | BirthEventSearchSet - | DeathEventSearchSet - | MarriageEventSearchSet -): eventSearchSet is MarriageEventSearchSet { - return eventSearchSet.__typename === "MarriageEventSearchSet"; + registration: BirthRegistration | DeathRegistration | MarriageRegistration +): registration is MarriageRegistration { + return registration.__typename === 'MarriageRegistration' } export function searchResponseBuilder( - event: BirthEventSearchSet | DeathEventSearchSet | MarriageEventSearchSet, + registrations: Registration[], { referenceId, - timestamp, + timestamp }: { - referenceId: string; - timestamp: components["schemas"]["DateTime"]; - } -): components["schemas"]["SearchResponse"]["search_response"][number] { - if (event.type === undefined || event.type === null) { - // TODO: The GraphQL event type should always be defined - throw new Error("Event type is not defined"); + referenceId: string + timestamp: components['schemas']['DateTime'] } - +): components['schemas']['SearchResponse']['search_response'][number] { return { reference_id: referenceId, timestamp, - status: "succ", - event_type: eventType(event.type), - registry_type: "civil", - registry_data: { - record_type: "person", - record: isBirthEventSearchSet(event) - ? birthCivilRegPerson(event) - : isMarriageEventSearchSet(event) - ? marriageCivilRegPerson(event) - : deathCivilRegPerson(event), - }, - }; + status: 'succ', + data: { + reg_record_type: { + namespace: 'person-v1', + value: 'person' + }, + reg_event_type: { + namespace: 'ns:dci:vital-events:v1', + value: eventType('Birth') // TODO: Shouldn't this be per reg_record? + }, + reg_records: registrations.map((registration) => + isBirthEventSearchSet(registration) + ? birthPersonRecord(registration) + : isMarriageEventSearchSet(registration) + ? marriagePersonRecord(registration) + : deathPersonRecord(registration) + ) + } + } } export function registrySyncSearchBuilder( - responses: Array>, - request: operations["post_reg_sync_search"]["requestBody"]["content"]["application/json"] + responses: SearchResponseWithMetadata[], + request: operations['post_reg_sync_search']['requestBody']['content']['application/json'] ) { const totalCount = responses - .map(({ response }) => response.totalItems ?? 0) - .reduce((a, b) => a + b, 0); + .map(({ registrations }) => registrations.length ?? 0) + .reduce((a, b) => a + b, 0) return { - signature: "<>", + signature: '<>', header: { - version: "1.0.0", + version: '1.0.0', message_id: request.header.message_id, message_ts: new Date().toISOString(), - action: "on-search", - status: "succ", + action: 'on-search', + status: 'succ', total_count: totalCount, sender_id: request.header.sender_id, - receiver_id: request.header.receiver_id, + receiver_id: request.header.receiver_id }, message: { transaction_id: request.message.transaction_id, + correlation_id: '<>', // TODO: Couldn't find this from Gitbook search_response: responses.flatMap( - ({ response, originalRequest, responseFinishedTimestamp }) => - response.results?.map((search) => - // TODO: Improve the GraphQL types to assert the results do exist, but they can be an empty array - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - searchResponseBuilder(search!, { - referenceId: originalRequest.reference_id, - timestamp: responseFinishedTimestamp.toISOString(), - }) - ) ?? [] - ), - }, - } satisfies operations["post_reg_sync_search"]["responses"]["default"]["content"]["application/json"]; + ({ registrations, originalRequest, responseFinishedTimestamp }) => + // TODO: Improve the GraphQL types to assert the results do exist, but they can be an empty array + searchResponseBuilder(registrations, { + referenceId: originalRequest.reference_id, + timestamp: responseFinishedTimestamp.toISOString() + }) + ) + } + } satisfies operations['post_reg_sync_search']['responses']['default']['content']['application/json'] } diff --git a/packages/dci-opencrvs-bridge/src/types.ts b/packages/dci-opencrvs-bridge/src/types.ts index 1651abd..109cd0f 100644 --- a/packages/dci-opencrvs-bridge/src/types.ts +++ b/packages/dci-opencrvs-bridge/src/types.ts @@ -1,7 +1,8 @@ -import type { components } from "dci-api"; +import type { components } from 'dci-api' +import type { Registration } from 'opencrvs-api' -export interface SearchResponseWithMetadata { - response: T; - responseFinishedTimestamp: Date; - originalRequest: components["schemas"]["SearchRequest"]["search_request"][number]; +export interface SearchResponseWithMetadata { + registrations: Registration[] + responseFinishedTimestamp: Date + originalRequest: components['schemas']['SearchRequest']['search_request'][number] } diff --git a/packages/opencrvs-api/codegen.yml b/packages/opencrvs-api/codegen.yml index 8f08929..88dec3d 100644 --- a/packages/opencrvs-api/codegen.yml +++ b/packages/opencrvs-api/codegen.yml @@ -4,7 +4,7 @@ schema: headers: Authorization: "Bearer ${TOKEN}" documents: - - "src/**/*.ts" + - "src/index.ts" - "!src/gateway.ts" generates: src/gateway.ts: diff --git a/packages/opencrvs-api/graphql.schema.json b/packages/opencrvs-api/graphql.schema.json index 76d96ca..3b6456b 100644 --- a/packages/opencrvs-api/graphql.schema.json +++ b/packages/opencrvs-api/graphql.schema.json @@ -4769,115 +4769,83 @@ "fields": null, "inputFields": [ { - "name": "attachments", + "name": "attestedAndCopied", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AttachmentInput", - "ofType": null - } - } - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "hasShowedVerifiedDocument", + "name": "data", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "location", + "name": "hasShowedVerifiedDocument", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LocationInput", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "noSupportingDocumentationRequired", + "name": "location", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "INPUT_OBJECT", + "name": "LocationInput", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "note", + "name": "noSupportingDocumentationRequired", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "otherReason", + "name": "note", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "payment", + "name": "otherReason", "description": null, "type": { - "kind": "INPUT_OBJECT", - "name": "CorrectionPaymentInput", + "kind": "SCALAR", + "name": "String", "ofType": null }, "defaultValue": null, @@ -4885,14 +4853,14 @@ "deprecationReason": null }, { - "name": "reason", + "name": "payments", "description": null, "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "INPUT_OBJECT", + "name": "PaymentInput", "ofType": null } }, @@ -4901,27 +4869,23 @@ "deprecationReason": null }, { - "name": "requester", + "name": "reason", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "requesterOther", + "name": "requester", "description": null, "type": { "kind": "SCALAR", - "name": "String", + "name": "ID", "ofType": null }, "defaultValue": null, @@ -4932,20 +4896,12 @@ "name": "values", "description": null, "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CorrectionValueInput", - "ofType": null - } - } + "kind": "INPUT_OBJECT", + "name": "CorrectionValueInput", + "ofType": null } }, "defaultValue": null, @@ -5002,16 +4958,16 @@ }, { "kind": "INPUT_OBJECT", - "name": "CorrectionPaymentInput", + "name": "CorrectionValueInput", "description": null, "fields": null, "inputFields": [ { - "name": "_fhirID", + "name": "fieldName", "description": null, "type": { "kind": "SCALAR", - "name": "ID", + "name": "String", "ofType": null }, "defaultValue": null, @@ -5019,23 +4975,7 @@ "deprecationReason": null }, { - "name": "amount", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "attachmentData", + "name": "newValue", "description": null, "type": { "kind": "SCALAR", @@ -5046,135 +4986,13 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "date", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "outcome", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PaymentOutcomeType", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PaymentType", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CorrectionRejectionInput", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "reason", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CorrectionValueInput", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "fieldName", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newValue", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "oldValue", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null, "isDeprecated": false, @@ -5184,13 +5002,9 @@ "name": "section", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null, "isDeprecated": false, @@ -7447,30 +7261,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "documents", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Attachment", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "duplicateOf", "description": null, @@ -7535,30 +7325,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "noSupportingDocumentationRequired", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "note", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "office", "description": null, @@ -7599,18 +7365,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "payment", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "Payment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "potentialDuplicates", "description": null, @@ -7667,18 +7421,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "requesterOther", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "signature", "description": null, @@ -8055,13 +7797,9 @@ "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -8071,13 +7809,9 @@ "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -8087,13 +7821,9 @@ "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -9843,160 +9573,19 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "withinTarget", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "year", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Mutation", - "description": null, - "fields": [ - { - "name": "activateUser", - "description": null, - "args": [ - { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityQNAs", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SecurityQuestionAnswer", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approveBirthRegistrationCorrection", - "description": null, - "args": [ - { - "name": "details", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "BirthRegistrationInput", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "withinTarget", + "description": null, + "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "Int", "ofType": null } }, @@ -10004,67 +9593,45 @@ "deprecationReason": null }, { - "name": "approveDeathRegistrationCorrection", + "name": "year", "description": null, - "args": [ - { - "name": "details", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeathRegistrationInput", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "Int", "ofType": null } }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Mutation", + "description": null, + "fields": [ { - "name": "approveMarriageRegistrationCorrection", + "name": "activateUser", "description": null, "args": [ { - "name": "details", + "name": "password", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "INPUT_OBJECT", - "name": "MarriageRegistrationInput", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -10073,14 +9640,34 @@ "deprecationReason": null }, { - "name": "id", + "name": "securityQNAs", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SecurityQuestionAnswer", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "userId", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "String", "ofType": null } }, @@ -10090,13 +9677,9 @@ } ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -10346,169 +9929,14 @@ "deprecationReason": null }, { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "changePhone", - "description": null, - "args": [ - { - "name": "nonce", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "phoneNumber", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifyCode", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createBirthRegistration", - "description": null, - "args": [ - { - "name": "details", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "BirthRegistrationInput", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIds", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createBirthRegistrationCorrection", - "description": null, - "args": [ - { - "name": "details", + "name": "password", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "INPUT_OBJECT", - "name": "BirthRegistrationInput", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -10517,14 +9945,14 @@ "deprecationReason": null }, { - "name": "id", + "name": "userId", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "String", "ofType": null } }, @@ -10534,63 +9962,42 @@ } ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createDeathRegistration", + "name": "changePhone", "description": null, "args": [ { - "name": "details", + "name": "nonce", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeathRegistrationInput", + "kind": "SCALAR", + "name": "String", "ofType": null } }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIds", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createDeathRegistrationCorrection", - "description": null, - "args": [ + }, { - "name": "details", + "name": "phoneNumber", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeathRegistrationInput", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -10599,14 +10006,30 @@ "deprecationReason": null }, { - "name": "id", + "name": "userId", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifyCode", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -10616,19 +10039,15 @@ } ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createMarriageRegistration", + "name": "createBirthRegistration", "description": null, "args": [ { @@ -10639,7 +10058,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "MarriageRegistrationInput", + "name": "BirthRegistrationInput", "ofType": null } }, @@ -10661,7 +10080,7 @@ "deprecationReason": null }, { - "name": "createMarriageRegistrationCorrection", + "name": "createDeathRegistration", "description": null, "args": [ { @@ -10672,23 +10091,40 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "MarriageRegistrationInput", + "name": "DeathRegistrationInput", "ofType": null } }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatedIds", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createMarriageRegistration", + "description": null, + "args": [ { - "name": "id", + "name": "details", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "ID", + "kind": "INPUT_OBJECT", + "name": "MarriageRegistrationInput", "ofType": null } }, @@ -10701,8 +10137,8 @@ "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "ID", + "kind": "OBJECT", + "name": "CreatedIds", "ofType": null } }, @@ -11890,7 +11326,36 @@ "deprecationReason": null }, { - "name": "rejectRegistrationCorrection", + "name": "removeBookmarkedAdvancedSearch", + "description": null, + "args": [ + { + "name": "removeBookmarkedSearchInput", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RemoveBookmarkedSeachInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "OBJECT", + "name": "BookMarkedSearches", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestBirthRegistrationCorrection", "description": null, "args": [ { @@ -11901,7 +11366,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CorrectionRejectionInput", + "name": "BirthRegistrationInput", "ofType": null } }, @@ -11939,18 +11404,34 @@ "deprecationReason": null }, { - "name": "removeBookmarkedAdvancedSearch", + "name": "requestDeathRegistrationCorrection", "description": null, "args": [ { - "name": "removeBookmarkedSearchInput", + "name": "details", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "RemoveBookmarkedSeachInput", + "name": "DeathRegistrationInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", "ofType": null } }, @@ -11960,15 +11441,19 @@ } ], "type": { - "kind": "OBJECT", - "name": "BookMarkedSearches", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "requestRegistrationCorrection", + "name": "requestMarriageRegistrationCorrection", "description": null, "args": [ { @@ -11979,7 +11464,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CorrectionInput", + "name": "MarriageRegistrationInput", "ofType": null } }, @@ -13069,73 +12554,57 @@ "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "attachmentURL", + "name": "date", "description": null, "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Date", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "date", + "name": "outcome", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Date", - "ofType": null - } + "kind": "ENUM", + "name": "PaymentOutcomeType", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "id", + "name": "paymentId", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } + "kind": "SCALAR", + "name": "ID", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "outcome", + "name": "total", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PaymentOutcomeType", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -13145,13 +12614,9 @@ "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PaymentType", - "ofType": null - } + "kind": "ENUM", + "name": "PaymentType", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -16366,24 +15831,12 @@ "inputFields": null, "interfaces": null, "enumValues": [ - { - "name": "APPROVED_CORRECTION", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "ASSIGNED", "description": null, "isDeprecated": false, "deprecationReason": null }, - { - "name": "CORRECTED", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "DOWNLOADED", "description": null, @@ -16414,12 +15867,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "REJECTED_CORRECTION", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "REQUESTED_CORRECTION", "description": null, @@ -16467,12 +15914,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "CORRECTION_REQUESTED", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "DECLARATION_UPDATED", "description": null, diff --git a/packages/opencrvs-api/src/constants.ts b/packages/opencrvs-api/src/constants.ts index 15b44ea..8f72735 100644 --- a/packages/opencrvs-api/src/constants.ts +++ b/packages/opencrvs-api/src/constants.ts @@ -1,17 +1,20 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -export const OPENCRVS_CLIENT_ID = process.env.OPENCRVS_CLIENT_ID!; -export const OPENCRVS_CLIENT_SECRET = process.env.OPENCRVS_CLIENT_SECRET!; +export const OPENCRVS_CLIENT_ID = process.env.OPENCRVS_CLIENT_ID! +export const OPENCRVS_CLIENT_SECRET = process.env.OPENCRVS_CLIENT_SECRET! -if (OPENCRVS_CLIENT_ID === undefined || OPENCRVS_CLIENT_SECRET === undefined) { +const isTest = process.env.NODE_TEST_CONTEXT !== undefined + +if ( + !isTest && + (OPENCRVS_CLIENT_ID === undefined || OPENCRVS_CLIENT_SECRET === undefined) +) { throw new Error( - "Required environment variables OPENCRVS_CLIENT_ID and OPENCRVS_CLIENT_SECRET are missing. Refer to README.md for more information" - ); + 'Required environment variables OPENCRVS_CLIENT_ID and OPENCRVS_CLIENT_SECRET are missing. Refer to README.md for more information' + ) } /* eslint-enable @typescript-eslint/no-non-null-assertion */ export const OPENCRVS_AUTH_URL = - process.env.OPENCRVS_AUTH_URL ?? "http://localhost:4040/"; -export const OPENCRVS_RECORD_SEARCH_URL = - process.env.OPENCRVS_RECORD_SEARCH_URL ?? "http://localhost:9090/"; + process.env.OPENCRVS_AUTH_URL ?? 'http://localhost:4040/' export const OPENCRVS_GATEWAY_URL = - process.env.OPENCRVS_GATEWAY_URL ?? "http://localhost:7070/graphql"; + process.env.OPENCRVS_GATEWAY_URL ?? 'http://localhost:7070/graphql' diff --git a/packages/opencrvs-api/src/error.ts b/packages/opencrvs-api/src/error.ts index ea7cfcf..8babe9c 100644 --- a/packages/opencrvs-api/src/error.ts +++ b/packages/opencrvs-api/src/error.ts @@ -1,6 +1,6 @@ export class AuthorizationError extends Error { constructor(message: string) { - super(message); - this.name = "AuthorizationError"; + super(message) + this.name = 'AuthorizationError' } } diff --git a/packages/opencrvs-api/src/gateway.ts b/packages/opencrvs-api/src/gateway.ts index a2eb153..c744f04 100644 --- a/packages/opencrvs-api/src/gateway.ts +++ b/packages/opencrvs-api/src/gateway.ts @@ -1,2526 +1,2488 @@ /* eslint-disable */ /* DO NOT EDIT! This file is auto-generated by `npm run generate-gateway-types` - see `codegen.yml` */ -export type Maybe = T | null; -export type InputMaybe = Maybe; +export type Maybe = T | null +export type InputMaybe = Maybe export type Exact = { - [K in keyof T]: T[K]; -}; + [K in keyof T]: T[K] +} export type MakeOptional = Omit & { - [SubKey in K]?: Maybe; -}; + [SubKey in K]?: Maybe +} export type MakeMaybe = Omit & { - [SubKey in K]: Maybe; -}; + [SubKey in K]: Maybe +} /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - Date: any; - Map: any; -}; + ID: string + String: string + Boolean: boolean + Int: number + Float: number + Date: any + Map: any +} export type AdditionalIdWithCompositionId = { - __typename?: "AdditionalIdWithCompositionId"; - compositionId: Scalars["String"]; - trackingId: Scalars["String"]; -}; + __typename?: 'AdditionalIdWithCompositionId' + compositionId: Scalars['String'] + trackingId: Scalars['String'] +} export type Address = { - __typename?: "Address"; - city?: Maybe; - country?: Maybe; - district?: Maybe; - districtName?: Maybe; - from?: Maybe; - line?: Maybe>>; - lineName?: Maybe>>; - postalCode?: Maybe; - state?: Maybe; - stateName?: Maybe; - text?: Maybe; - to?: Maybe; - type?: Maybe; - use?: Maybe; -}; + __typename?: 'Address' + city?: Maybe + country?: Maybe + district?: Maybe + districtName?: Maybe + from?: Maybe + line?: Maybe>> + lineName?: Maybe>> + postalCode?: Maybe + state?: Maybe + stateName?: Maybe + text?: Maybe + to?: Maybe + type?: Maybe + use?: Maybe +} export type AddressInput = { - city?: InputMaybe; - country?: InputMaybe; - district?: InputMaybe; - from?: InputMaybe; - line?: InputMaybe>>; - postalCode?: InputMaybe; - state?: InputMaybe; - text?: InputMaybe; - to?: InputMaybe; - type?: InputMaybe; - use?: InputMaybe; -}; + city?: InputMaybe + country?: InputMaybe + district?: InputMaybe + from?: InputMaybe + line?: InputMaybe>> + postalCode?: InputMaybe + state?: InputMaybe + text?: InputMaybe + to?: InputMaybe + type?: InputMaybe + use?: InputMaybe +} export type AdvancedSeachParameters = { - __typename?: "AdvancedSeachParameters"; - childDoB?: Maybe; - childDoBEnd?: Maybe; - childDoBStart?: Maybe; - childFirstNames?: Maybe; - childGender?: Maybe; - childLastName?: Maybe; - compositionType?: Maybe>>; - contactNumber?: Maybe; - dateOfEvent?: Maybe; - dateOfEventEnd?: Maybe; - dateOfEventStart?: Maybe; - dateOfRegistration?: Maybe; - dateOfRegistrationEnd?: Maybe; - dateOfRegistrationStart?: Maybe; - deceasedDoB?: Maybe; - deceasedDoBEnd?: Maybe; - deceasedDoBStart?: Maybe; - deceasedFamilyName?: Maybe; - deceasedFirstNames?: Maybe; - deceasedGender?: Maybe; - deceasedIdentifier?: Maybe; - declarationJurisdictionId?: Maybe; - declarationLocationId?: Maybe; - event?: Maybe; - eventCountry?: Maybe; - eventLocationId?: Maybe; - eventLocationLevel1?: Maybe; - eventLocationLevel2?: Maybe; - eventLocationLevel3?: Maybe; - eventLocationLevel4?: Maybe; - eventLocationLevel5?: Maybe; - fatherDoB?: Maybe; - fatherDoBEnd?: Maybe; - fatherDoBStart?: Maybe; - fatherFamilyName?: Maybe; - fatherFirstNames?: Maybe; - fatherIdentifier?: Maybe; - informantDoB?: Maybe; - informantDoBEnd?: Maybe; - informantDoBStart?: Maybe; - informantFamilyName?: Maybe; - informantFirstNames?: Maybe; - informantIdentifier?: Maybe; - motherDoB?: Maybe; - motherDoBEnd?: Maybe; - motherDoBStart?: Maybe; - motherFamilyName?: Maybe; - motherFirstNames?: Maybe; - motherIdentifier?: Maybe; - name?: Maybe; - nationalId?: Maybe; - registrationNumber?: Maybe; - registrationStatuses?: Maybe>>; - trackingId?: Maybe; -}; + __typename?: 'AdvancedSeachParameters' + childDoB?: Maybe + childDoBEnd?: Maybe + childDoBStart?: Maybe + childFirstNames?: Maybe + childGender?: Maybe + childLastName?: Maybe + compositionType?: Maybe>> + contactNumber?: Maybe + dateOfEvent?: Maybe + dateOfEventEnd?: Maybe + dateOfEventStart?: Maybe + dateOfRegistration?: Maybe + dateOfRegistrationEnd?: Maybe + dateOfRegistrationStart?: Maybe + deceasedDoB?: Maybe + deceasedDoBEnd?: Maybe + deceasedDoBStart?: Maybe + deceasedFamilyName?: Maybe + deceasedFirstNames?: Maybe + deceasedGender?: Maybe + deceasedIdentifier?: Maybe + declarationJurisdictionId?: Maybe + declarationLocationId?: Maybe + event?: Maybe + eventCountry?: Maybe + eventLocationId?: Maybe + eventLocationLevel1?: Maybe + eventLocationLevel2?: Maybe + eventLocationLevel3?: Maybe + eventLocationLevel4?: Maybe + eventLocationLevel5?: Maybe + fatherDoB?: Maybe + fatherDoBEnd?: Maybe + fatherDoBStart?: Maybe + fatherFamilyName?: Maybe + fatherFirstNames?: Maybe + fatherIdentifier?: Maybe + informantDoB?: Maybe + informantDoBEnd?: Maybe + informantDoBStart?: Maybe + informantFamilyName?: Maybe + informantFirstNames?: Maybe + informantIdentifier?: Maybe + motherDoB?: Maybe + motherDoBEnd?: Maybe + motherDoBStart?: Maybe + motherFamilyName?: Maybe + motherFirstNames?: Maybe + motherIdentifier?: Maybe + name?: Maybe + nationalId?: Maybe + registrationNumber?: Maybe + registrationStatuses?: Maybe>> + trackingId?: Maybe +} export type AdvancedSearchParametersInput = { - brideDoB?: InputMaybe; - brideDoBEnd?: InputMaybe; - brideDoBStart?: InputMaybe; - brideFamilyName?: InputMaybe; - brideFirstNames?: InputMaybe; - brideIdentifier?: InputMaybe; - childDoB?: InputMaybe; - childDoBEnd?: InputMaybe; - childDoBStart?: InputMaybe; - childFirstNames?: InputMaybe; - childGender?: InputMaybe; - childLastName?: InputMaybe; - compositionType?: InputMaybe>>; - contactNumber?: InputMaybe; - dateOfEvent?: InputMaybe; - dateOfEventEnd?: InputMaybe; - dateOfEventStart?: InputMaybe; - dateOfMarriage?: InputMaybe; - dateOfRegistration?: InputMaybe; - dateOfRegistrationEnd?: InputMaybe; - dateOfRegistrationStart?: InputMaybe; - deceasedDoB?: InputMaybe; - deceasedDoBEnd?: InputMaybe; - deceasedDoBStart?: InputMaybe; - deceasedFamilyName?: InputMaybe; - deceasedFirstNames?: InputMaybe; - deceasedGender?: InputMaybe; - deceasedIdentifier?: InputMaybe; - declarationJurisdictionId?: InputMaybe; - declarationLocationId?: InputMaybe; - event?: InputMaybe; - eventCountry?: InputMaybe; - eventLocationId?: InputMaybe; - eventLocationLevel1?: InputMaybe; - eventLocationLevel2?: InputMaybe; - eventLocationLevel3?: InputMaybe; - eventLocationLevel4?: InputMaybe; - eventLocationLevel5?: InputMaybe; - fatherDoB?: InputMaybe; - fatherDoBEnd?: InputMaybe; - fatherDoBStart?: InputMaybe; - fatherFamilyName?: InputMaybe; - fatherFirstNames?: InputMaybe; - fatherIdentifier?: InputMaybe; - groomDoB?: InputMaybe; - groomDoBEnd?: InputMaybe; - groomDoBStart?: InputMaybe; - groomFamilyName?: InputMaybe; - groomFirstNames?: InputMaybe; - groomIdentifier?: InputMaybe; - informantDoB?: InputMaybe; - informantDoBEnd?: InputMaybe; - informantDoBStart?: InputMaybe; - informantFamilyName?: InputMaybe; - informantFirstNames?: InputMaybe; - informantIdentifier?: InputMaybe; - motherDoB?: InputMaybe; - motherDoBEnd?: InputMaybe; - motherDoBStart?: InputMaybe; - motherFamilyName?: InputMaybe; - motherFirstNames?: InputMaybe; - motherIdentifier?: InputMaybe; - name?: InputMaybe; - nationalId?: InputMaybe; - recordId?: InputMaybe; - registrationNumber?: InputMaybe; - registrationStatuses?: InputMaybe>>; - trackingId?: InputMaybe; -}; + brideDoB?: InputMaybe + brideDoBEnd?: InputMaybe + brideDoBStart?: InputMaybe + brideFamilyName?: InputMaybe + brideFirstNames?: InputMaybe + brideIdentifier?: InputMaybe + childDoB?: InputMaybe + childDoBEnd?: InputMaybe + childDoBStart?: InputMaybe + childFirstNames?: InputMaybe + childGender?: InputMaybe + childLastName?: InputMaybe + compositionType?: InputMaybe>> + contactNumber?: InputMaybe + dateOfEvent?: InputMaybe + dateOfEventEnd?: InputMaybe + dateOfEventStart?: InputMaybe + dateOfMarriage?: InputMaybe + dateOfRegistration?: InputMaybe + dateOfRegistrationEnd?: InputMaybe + dateOfRegistrationStart?: InputMaybe + deceasedDoB?: InputMaybe + deceasedDoBEnd?: InputMaybe + deceasedDoBStart?: InputMaybe + deceasedFamilyName?: InputMaybe + deceasedFirstNames?: InputMaybe + deceasedGender?: InputMaybe + deceasedIdentifier?: InputMaybe + declarationJurisdictionId?: InputMaybe + declarationLocationId?: InputMaybe + event?: InputMaybe + eventCountry?: InputMaybe + eventLocationId?: InputMaybe + eventLocationLevel1?: InputMaybe + eventLocationLevel2?: InputMaybe + eventLocationLevel3?: InputMaybe + eventLocationLevel4?: InputMaybe + eventLocationLevel5?: InputMaybe + fatherDoB?: InputMaybe + fatherDoBEnd?: InputMaybe + fatherDoBStart?: InputMaybe + fatherFamilyName?: InputMaybe + fatherFirstNames?: InputMaybe + fatherIdentifier?: InputMaybe + groomDoB?: InputMaybe + groomDoBEnd?: InputMaybe + groomDoBStart?: InputMaybe + groomFamilyName?: InputMaybe + groomFirstNames?: InputMaybe + groomIdentifier?: InputMaybe + informantDoB?: InputMaybe + informantDoBEnd?: InputMaybe + informantDoBStart?: InputMaybe + informantFamilyName?: InputMaybe + informantFirstNames?: InputMaybe + informantIdentifier?: InputMaybe + motherDoB?: InputMaybe + motherDoBEnd?: InputMaybe + motherDoBStart?: InputMaybe + motherFamilyName?: InputMaybe + motherFirstNames?: InputMaybe + motherIdentifier?: InputMaybe + name?: InputMaybe + nationalId?: InputMaybe + recordId?: InputMaybe + registrationNumber?: InputMaybe + registrationStatuses?: InputMaybe>> + trackingId?: InputMaybe +} export type ApplicationConfiguration = { - __typename?: "ApplicationConfiguration"; - APPLICATION_NAME?: Maybe; - BIRTH?: Maybe; - COUNTRY_LOGO?: Maybe; - CURRENCY?: Maybe; - DATE_OF_BIRTH_UNKNOWN?: Maybe; - DEATH?: Maybe; - EXTERNAL_VALIDATION_WORKQUEUE?: Maybe; - FIELD_AGENT_AUDIT_LOCATIONS?: Maybe; - INFORMANT_NOTIFICATION_DELIVERY_METHOD?: Maybe; - INFORMANT_SIGNATURE?: Maybe; - INFORMANT_SIGNATURE_REQUIRED?: Maybe; - LOGIN_BACKGROUND?: Maybe; - MARRIAGE?: Maybe; - MARRIAGE_REGISTRATION?: Maybe; - NID_NUMBER_PATTERN?: Maybe; - PHONE_NUMBER_PATTERN?: Maybe; - USER_NOTIFICATION_DELIVERY_METHOD?: Maybe; -}; + __typename?: 'ApplicationConfiguration' + APPLICATION_NAME?: Maybe + BIRTH?: Maybe + COUNTRY_LOGO?: Maybe + CURRENCY?: Maybe + DATE_OF_BIRTH_UNKNOWN?: Maybe + DEATH?: Maybe + EXTERNAL_VALIDATION_WORKQUEUE?: Maybe + FIELD_AGENT_AUDIT_LOCATIONS?: Maybe + INFORMANT_NOTIFICATION_DELIVERY_METHOD?: Maybe + INFORMANT_SIGNATURE?: Maybe + INFORMANT_SIGNATURE_REQUIRED?: Maybe + LOGIN_BACKGROUND?: Maybe + MARRIAGE?: Maybe + MARRIAGE_REGISTRATION?: Maybe + NID_NUMBER_PATTERN?: Maybe + PHONE_NUMBER_PATTERN?: Maybe + USER_NOTIFICATION_DELIVERY_METHOD?: Maybe +} export type ApplicationConfigurationInput = { - APPLICATION_NAME?: InputMaybe; - BIRTH?: InputMaybe; - COUNTRY_LOGO?: InputMaybe; - CURRENCY?: InputMaybe; - DATE_OF_BIRTH_UNKNOWN?: InputMaybe; - DEATH?: InputMaybe; - EXTERNAL_VALIDATION_WORKQUEUE?: InputMaybe; - FIELD_AGENT_AUDIT_LOCATIONS?: InputMaybe; - INFORMANT_NOTIFICATION_DELIVERY_METHOD?: InputMaybe; - INFORMANT_SIGNATURE?: InputMaybe; - INFORMANT_SIGNATURE_REQUIRED?: InputMaybe; - LOGIN_BACKGROUND?: InputMaybe; - MARRIAGE?: InputMaybe; - NID_NUMBER_PATTERN?: InputMaybe; - PHONE_NUMBER_PATTERN?: InputMaybe; - USER_NOTIFICATION_DELIVERY_METHOD?: InputMaybe; -}; + APPLICATION_NAME?: InputMaybe + BIRTH?: InputMaybe + COUNTRY_LOGO?: InputMaybe + CURRENCY?: InputMaybe + DATE_OF_BIRTH_UNKNOWN?: InputMaybe + DEATH?: InputMaybe + EXTERNAL_VALIDATION_WORKQUEUE?: InputMaybe + FIELD_AGENT_AUDIT_LOCATIONS?: InputMaybe + INFORMANT_NOTIFICATION_DELIVERY_METHOD?: InputMaybe + INFORMANT_SIGNATURE?: InputMaybe + INFORMANT_SIGNATURE_REQUIRED?: InputMaybe + LOGIN_BACKGROUND?: InputMaybe + MARRIAGE?: InputMaybe + NID_NUMBER_PATTERN?: InputMaybe + PHONE_NUMBER_PATTERN?: InputMaybe + USER_NOTIFICATION_DELIVERY_METHOD?: InputMaybe +} export type AssignmentData = { - __typename?: "AssignmentData"; - avatarURL: Scalars["String"]; - firstName?: Maybe; - lastName?: Maybe; - officeName?: Maybe; - userId?: Maybe; -}; + __typename?: 'AssignmentData' + avatarURL: Scalars['String'] + firstName?: Maybe + lastName?: Maybe + officeName?: Maybe + userId?: Maybe +} export type Attachment = { - __typename?: "Attachment"; - _fhirID?: Maybe; - contentType?: Maybe; - createdAt?: Maybe; - data?: Maybe; - description?: Maybe; - id: Scalars["ID"]; - originalFileName?: Maybe; - status?: Maybe; - subject?: Maybe; - systemFileName?: Maybe; - type?: Maybe; - uri?: Maybe; -}; + __typename?: 'Attachment' + _fhirID?: Maybe + contentType?: Maybe + createdAt?: Maybe + data?: Maybe + description?: Maybe + id: Scalars['ID'] + originalFileName?: Maybe + status?: Maybe + subject?: Maybe + systemFileName?: Maybe + type?: Maybe + uri?: Maybe +} export type AttachmentInput = { - _fhirID?: InputMaybe; - contentType?: InputMaybe; - createdAt?: InputMaybe; - data?: InputMaybe; - description?: InputMaybe; - originalFileName?: InputMaybe; - status?: InputMaybe; - subject?: InputMaybe; - systemFileName?: InputMaybe; - type?: InputMaybe; - uri?: InputMaybe; -}; + _fhirID?: InputMaybe + contentType?: InputMaybe + createdAt?: InputMaybe + data?: InputMaybe + description?: InputMaybe + originalFileName?: InputMaybe + status?: InputMaybe + subject?: InputMaybe + systemFileName?: InputMaybe + type?: InputMaybe + uri?: InputMaybe +} export type AuditLogItemBase = { - action: Scalars["String"]; - ipAddress: Scalars["String"]; - practitionerId: Scalars["String"]; - time: Scalars["String"]; - userAgent: Scalars["String"]; -}; + action: Scalars['String'] + ipAddress: Scalars['String'] + practitionerId: Scalars['String'] + time: Scalars['String'] + userAgent: Scalars['String'] +} export type Avatar = { - __typename?: "Avatar"; - data: Scalars["String"]; - type: Scalars["String"]; -}; + __typename?: 'Avatar' + data: Scalars['String'] + type: Scalars['String'] +} export type AvatarInput = { - data: Scalars["String"]; - type: Scalars["String"]; -}; + data: Scalars['String'] + type: Scalars['String'] +} export type Birth = { - __typename?: "Birth"; - FEE?: Maybe; - LATE_REGISTRATION_TARGET?: Maybe; - PRINT_IN_ADVANCE?: Maybe; - REGISTRATION_TARGET?: Maybe; -}; + __typename?: 'Birth' + FEE?: Maybe + LATE_REGISTRATION_TARGET?: Maybe + PRINT_IN_ADVANCE?: Maybe + REGISTRATION_TARGET?: Maybe +} export type BirthEventSearchSet = EventSearchSet & { - __typename?: "BirthEventSearchSet"; - childGender?: Maybe; - childName?: Maybe>>; - dateOfBirth?: Maybe; - fatherDateOfBirth?: Maybe; - fatherIdentifier?: Maybe; - fathersFirstName?: Maybe; - fathersLastName?: Maybe; - id: Scalars["ID"]; - motherDateOfBirth?: Maybe; - motherIdentifier?: Maybe; - mothersFirstName?: Maybe; - mothersLastName?: Maybe; - operationHistories?: Maybe>>; - placeOfBirth?: Maybe; - registration?: Maybe; - type?: Maybe; -}; + __typename?: 'BirthEventSearchSet' + childGender?: Maybe + childName?: Maybe>> + dateOfBirth?: Maybe + fatherDateOfBirth?: Maybe + fatherIdentifier?: Maybe + fathersFirstName?: Maybe + fathersLastName?: Maybe + id: Scalars['ID'] + motherDateOfBirth?: Maybe + motherIdentifier?: Maybe + mothersFirstName?: Maybe + mothersLastName?: Maybe + operationHistories?: Maybe>> + placeOfBirth?: Maybe + registration?: Maybe + type?: Maybe +} export type BirthFee = { - __typename?: "BirthFee"; - DELAYED?: Maybe; - LATE?: Maybe; - ON_TIME?: Maybe; -}; + __typename?: 'BirthFee' + DELAYED?: Maybe + LATE?: Maybe + ON_TIME?: Maybe +} export type BirthFeeInput = { - DELAYED?: InputMaybe; - LATE?: InputMaybe; - ON_TIME?: InputMaybe; -}; + DELAYED?: InputMaybe + LATE?: InputMaybe + ON_TIME?: InputMaybe +} export type BirthInput = { - FEE?: InputMaybe; - LATE_REGISTRATION_TARGET?: InputMaybe; - PRINT_IN_ADVANCE?: InputMaybe; - REGISTRATION_TARGET?: InputMaybe; -}; + FEE?: InputMaybe + LATE_REGISTRATION_TARGET?: InputMaybe + PRINT_IN_ADVANCE?: InputMaybe + REGISTRATION_TARGET?: InputMaybe +} export type BirthRegResultSet = { - __typename?: "BirthRegResultSet"; - results?: Maybe>>; - totalItems?: Maybe; -}; + __typename?: 'BirthRegResultSet' + results?: Maybe>> + totalItems?: Maybe +} export type BirthRegistration = EventRegistration & { - __typename?: "BirthRegistration"; - _fhirIDMap?: Maybe; - attendantAtBirth?: Maybe; - birthType?: Maybe; - child?: Maybe; - childrenBornAliveToMother?: Maybe; - createdAt?: Maybe; - eventLocation?: Maybe; - father?: Maybe; - foetalDeathsToMother?: Maybe; - history?: Maybe>>; - id: Scalars["ID"]; - informant?: Maybe; - lastPreviousLiveBirth?: Maybe; - mother?: Maybe; - otherAttendantAtBirth?: Maybe; - questionnaire?: Maybe>>; - registration?: Maybe; - updatedAt?: Maybe; - weightAtBirth?: Maybe; -}; + __typename?: 'BirthRegistration' + _fhirIDMap?: Maybe + attendantAtBirth?: Maybe + birthType?: Maybe + child?: Maybe + childrenBornAliveToMother?: Maybe + createdAt?: Maybe + eventLocation?: Maybe + father?: Maybe + foetalDeathsToMother?: Maybe + history?: Maybe>> + id: Scalars['ID'] + informant?: Maybe + lastPreviousLiveBirth?: Maybe + mother?: Maybe + otherAttendantAtBirth?: Maybe + questionnaire?: Maybe>> + registration?: Maybe + updatedAt?: Maybe + weightAtBirth?: Maybe +} export type BirthRegistrationInput = { - _fhirIDMap?: InputMaybe; - attendantAtBirth?: InputMaybe; - birthType?: InputMaybe; - child?: InputMaybe; - childrenBornAliveToMother?: InputMaybe; - createdAt?: InputMaybe; - eventLocation?: InputMaybe; - father?: InputMaybe; - foetalDeathsToMother?: InputMaybe; - informant?: InputMaybe; - lastPreviousLiveBirth?: InputMaybe; - mother?: InputMaybe; - otherAttendantAtBirth?: InputMaybe; - questionnaire?: InputMaybe>>; - registration?: InputMaybe; - updatedAt?: InputMaybe; - weightAtBirth?: InputMaybe; -}; + _fhirIDMap?: InputMaybe + attendantAtBirth?: InputMaybe + birthType?: InputMaybe + child?: InputMaybe + childrenBornAliveToMother?: InputMaybe + createdAt?: InputMaybe + eventLocation?: InputMaybe + father?: InputMaybe + foetalDeathsToMother?: InputMaybe + informant?: InputMaybe + lastPreviousLiveBirth?: InputMaybe + mother?: InputMaybe + otherAttendantAtBirth?: InputMaybe + questionnaire?: InputMaybe>> + registration?: InputMaybe + updatedAt?: InputMaybe + weightAtBirth?: InputMaybe +} export type BookMarkedSearches = { - __typename?: "BookMarkedSearches"; - searchList?: Maybe>; -}; + __typename?: 'BookMarkedSearches' + searchList?: Maybe> +} export type BookmarkSearchInput = { - name: Scalars["String"]; - parameters: AdvancedSearchParametersInput; - userId: Scalars["String"]; -}; + name: Scalars['String'] + parameters: AdvancedSearchParametersInput + userId: Scalars['String'] +} export type BookmarkedSeachItem = { - __typename?: "BookmarkedSeachItem"; - name: Scalars["String"]; - parameters: AdvancedSeachParameters; - searchId: Scalars["String"]; -}; + __typename?: 'BookmarkedSeachItem' + name: Scalars['String'] + parameters: AdvancedSeachParameters + searchId: Scalars['String'] +} export type Certificate = { - __typename?: "Certificate"; - collector?: Maybe; - data?: Maybe; - hasShowedVerifiedDocument?: Maybe; - payments?: Maybe>>; -}; + __typename?: 'Certificate' + collector?: Maybe + data?: Maybe + hasShowedVerifiedDocument?: Maybe + payments?: Maybe>> +} export type CertificateInput = { - collector?: InputMaybe; - data?: InputMaybe; - hasShowedVerifiedDocument?: InputMaybe; - payments?: InputMaybe>>; -}; + collector?: InputMaybe + data?: InputMaybe + hasShowedVerifiedDocument?: InputMaybe + payments?: InputMaybe>> +} export type CertificateSvg = { - __typename?: "CertificateSVG"; - event: Event; - id: Scalars["ID"]; - status: CertificateStatus; - svgCode: Scalars["String"]; - svgDateCreated: Scalars["String"]; - svgDateUpdated: Scalars["String"]; - svgFilename: Scalars["String"]; - user: Scalars["String"]; -}; + __typename?: 'CertificateSVG' + event: Event + id: Scalars['ID'] + status: CertificateStatus + svgCode: Scalars['String'] + svgDateCreated: Scalars['String'] + svgDateUpdated: Scalars['String'] + svgFilename: Scalars['String'] + user: Scalars['String'] +} export type CertificateSvgInput = { - event: Event; - id?: InputMaybe; - status: CertificateStatus; - svgCode: Scalars["String"]; - svgDateCreated?: InputMaybe; - svgDateUpdated?: InputMaybe; - svgFilename: Scalars["String"]; - user: Scalars["String"]; -}; + event: Event + id?: InputMaybe + status: CertificateStatus + svgCode: Scalars['String'] + svgDateCreated?: InputMaybe + svgDateUpdated?: InputMaybe + svgFilename: Scalars['String'] + user: Scalars['String'] +} export enum CertificateStatus { - Active = "ACTIVE", - Inactive = "INACTIVE", + Active = 'ACTIVE', + Inactive = 'INACTIVE' } export type CertificationMetric = { - __typename?: "CertificationMetric"; - eventType: Scalars["String"]; - total: Scalars["Float"]; -}; + __typename?: 'CertificationMetric' + eventType: Scalars['String'] + total: Scalars['Float'] +} export type Comment = { - __typename?: "Comment"; - comment?: Maybe; - createdAt?: Maybe; - id: Scalars["ID"]; - user?: Maybe; -}; + __typename?: 'Comment' + comment?: Maybe + createdAt?: Maybe + id: Scalars['ID'] + user?: Maybe +} export type CommentInput = { - comment?: InputMaybe; - createdAt?: InputMaybe; - user?: InputMaybe; -}; + comment?: InputMaybe + createdAt?: InputMaybe + user?: InputMaybe +} export type ComparisonInput = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; - nin?: InputMaybe>; -}; + eq?: InputMaybe + gt?: InputMaybe + gte?: InputMaybe + in?: InputMaybe> + lt?: InputMaybe + lte?: InputMaybe + ne?: InputMaybe + nin?: InputMaybe> +} export type ContactPoint = { - __typename?: "ContactPoint"; - system?: Maybe; - use?: Maybe; - value?: Maybe; -}; + __typename?: 'ContactPoint' + system?: Maybe + use?: Maybe + value?: Maybe +} export type ContactPointInput = { - system?: InputMaybe; - use?: InputMaybe; - value?: InputMaybe; -}; + system?: InputMaybe + use?: InputMaybe + value?: InputMaybe +} export type CorrectionInput = { - attachments: Array; - hasShowedVerifiedDocument: Scalars["Boolean"]; - location: LocationInput; - noSupportingDocumentationRequired: Scalars["Boolean"]; - note: Scalars["String"]; - otherReason: Scalars["String"]; - payment?: InputMaybe; - reason: Scalars["String"]; - requester: Scalars["String"]; - requesterOther?: InputMaybe; - values: Array; -}; + attestedAndCopied?: InputMaybe + data?: InputMaybe + hasShowedVerifiedDocument?: InputMaybe + location?: InputMaybe + noSupportingDocumentationRequired?: InputMaybe + note?: InputMaybe + otherReason?: InputMaybe + payments?: InputMaybe>> + reason?: InputMaybe + requester?: InputMaybe + values?: InputMaybe>> +} export type CorrectionMetric = { - __typename?: "CorrectionMetric"; - reason: Scalars["String"]; - total: Scalars["Float"]; -}; - -export type CorrectionPaymentInput = { - _fhirID?: InputMaybe; - amount: Scalars["Float"]; - attachmentData?: InputMaybe; - date: Scalars["Date"]; - outcome: PaymentOutcomeType; - type: PaymentType; -}; - -export type CorrectionRejectionInput = { - reason: Scalars["String"]; -}; + __typename?: 'CorrectionMetric' + reason: Scalars['String'] + total: Scalars['Float'] +} export type CorrectionValueInput = { - fieldName: Scalars["String"]; - newValue: Scalars["String"]; - oldValue: Scalars["String"]; - section: Scalars["String"]; -}; + fieldName?: InputMaybe + newValue?: InputMaybe + oldValue?: InputMaybe + section?: InputMaybe +} export type CountryLogo = { - __typename?: "CountryLogo"; - file?: Maybe; - fileName?: Maybe; -}; + __typename?: 'CountryLogo' + file?: Maybe + fileName?: Maybe +} export type CountryLogoInput = { - file?: InputMaybe; - fileName?: InputMaybe; -}; + file?: InputMaybe + fileName?: InputMaybe +} export type CreatedIds = { - __typename?: "CreatedIds"; - compositionId?: Maybe; - isPotentiallyDuplicate?: Maybe; - trackingId?: Maybe; -}; + __typename?: 'CreatedIds' + compositionId?: Maybe + isPotentiallyDuplicate?: Maybe + trackingId?: Maybe +} export type Currency = { - __typename?: "Currency"; - isoCode?: Maybe; - languagesAndCountry?: Maybe>>; -}; + __typename?: 'Currency' + isoCode?: Maybe + languagesAndCountry?: Maybe>> +} export type CurrencyInput = { - isoCode?: InputMaybe; - languagesAndCountry?: InputMaybe>>; -}; + isoCode?: InputMaybe + languagesAndCountry?: InputMaybe>> +} export type Death = { - __typename?: "Death"; - FEE?: Maybe; - PRINT_IN_ADVANCE?: Maybe; - REGISTRATION_TARGET?: Maybe; -}; + __typename?: 'Death' + FEE?: Maybe + PRINT_IN_ADVANCE?: Maybe + REGISTRATION_TARGET?: Maybe +} export type DeathEventSearchSet = EventSearchSet & { - __typename?: "DeathEventSearchSet"; - dateOfDeath?: Maybe; - deceasedGender?: Maybe; - deceasedName?: Maybe>>; - id: Scalars["ID"]; - operationHistories?: Maybe>>; - registration?: Maybe; - type?: Maybe; -}; + __typename?: 'DeathEventSearchSet' + dateOfDeath?: Maybe + deceasedGender?: Maybe + deceasedName?: Maybe>> + id: Scalars['ID'] + operationHistories?: Maybe>> + registration?: Maybe + type?: Maybe +} export type DeathFee = { - __typename?: "DeathFee"; - DELAYED?: Maybe; - ON_TIME?: Maybe; -}; + __typename?: 'DeathFee' + DELAYED?: Maybe + ON_TIME?: Maybe +} export type DeathFeeInput = { - DELAYED?: InputMaybe; - ON_TIME?: InputMaybe; -}; + DELAYED?: InputMaybe + ON_TIME?: InputMaybe +} export type DeathInput = { - FEE?: InputMaybe; - PRINT_IN_ADVANCE?: InputMaybe; - REGISTRATION_TARGET?: InputMaybe; -}; + FEE?: InputMaybe + PRINT_IN_ADVANCE?: InputMaybe + REGISTRATION_TARGET?: InputMaybe +} export type DeathRegistration = EventRegistration & { - __typename?: "DeathRegistration"; - _fhirIDMap?: Maybe; - causeOfDeath?: Maybe; - causeOfDeathEstablished?: Maybe; - causeOfDeathMethod?: Maybe; - createdAt?: Maybe; - deathDescription?: Maybe; - deceased?: Maybe; - eventLocation?: Maybe; - father?: Maybe; - femaleDependentsOfDeceased?: Maybe; - history?: Maybe>>; - id: Scalars["ID"]; - informant?: Maybe; - maleDependentsOfDeceased?: Maybe; - mannerOfDeath?: Maybe; - medicalPractitioner?: Maybe; - mother?: Maybe; - questionnaire?: Maybe>>; - registration?: Maybe; - spouse?: Maybe; - updatedAt?: Maybe; -}; + __typename?: 'DeathRegistration' + _fhirIDMap?: Maybe + causeOfDeath?: Maybe + causeOfDeathEstablished?: Maybe + causeOfDeathMethod?: Maybe + createdAt?: Maybe + deathDescription?: Maybe + deceased?: Maybe + eventLocation?: Maybe + father?: Maybe + femaleDependentsOfDeceased?: Maybe + history?: Maybe>> + id: Scalars['ID'] + informant?: Maybe + maleDependentsOfDeceased?: Maybe + mannerOfDeath?: Maybe + medicalPractitioner?: Maybe + mother?: Maybe + questionnaire?: Maybe>> + registration?: Maybe + spouse?: Maybe + updatedAt?: Maybe +} export type DeathRegistrationInput = { - _fhirIDMap?: InputMaybe; - causeOfDeath?: InputMaybe; - causeOfDeathEstablished?: InputMaybe; - causeOfDeathMethod?: InputMaybe; - createdAt?: InputMaybe; - deathDescription?: InputMaybe; - deceased?: InputMaybe; - eventLocation?: InputMaybe; - father?: InputMaybe; - femaleDependentsOfDeceased?: InputMaybe; - informant?: InputMaybe; - maleDependentsOfDeceased?: InputMaybe; - mannerOfDeath?: InputMaybe; - medicalPractitioner?: InputMaybe; - mother?: InputMaybe; - questionnaire?: InputMaybe>>; - registration?: InputMaybe; - spouse?: InputMaybe; - updatedAt?: InputMaybe; -}; + _fhirIDMap?: InputMaybe + causeOfDeath?: InputMaybe + causeOfDeathEstablished?: InputMaybe + causeOfDeathMethod?: InputMaybe + createdAt?: InputMaybe + deathDescription?: InputMaybe + deceased?: InputMaybe + eventLocation?: InputMaybe + father?: InputMaybe + femaleDependentsOfDeceased?: InputMaybe + informant?: InputMaybe + maleDependentsOfDeceased?: InputMaybe + mannerOfDeath?: InputMaybe + medicalPractitioner?: InputMaybe + mother?: InputMaybe + questionnaire?: InputMaybe>> + registration?: InputMaybe + spouse?: InputMaybe + updatedAt?: InputMaybe +} export type Deceased = { - __typename?: "Deceased"; - deathDate?: Maybe; - deceased?: Maybe; -}; + __typename?: 'Deceased' + deathDate?: Maybe + deceased?: Maybe +} export type DeceasedInput = { - deathDate?: InputMaybe; - deceased?: InputMaybe; -}; + deathDate?: InputMaybe + deceased?: InputMaybe +} export type DeclarationsStartedMetrics = { - __typename?: "DeclarationsStartedMetrics"; - fieldAgentDeclarations: Scalars["Int"]; - hospitalDeclarations: Scalars["Int"]; - officeDeclarations: Scalars["Int"]; -}; + __typename?: 'DeclarationsStartedMetrics' + fieldAgentDeclarations: Scalars['Int'] + hospitalDeclarations: Scalars['Int'] + officeDeclarations: Scalars['Int'] +} export type Dummy = { - __typename?: "Dummy"; - dummy: Scalars["String"]; -}; + __typename?: 'Dummy' + dummy: Scalars['String'] +} export type DuplicatesInfo = { - __typename?: "DuplicatesInfo"; - compositionId?: Maybe; - trackingId?: Maybe; -}; + __typename?: 'DuplicatesInfo' + compositionId?: Maybe + trackingId?: Maybe +} export type Estimation = { - __typename?: "Estimation"; - femaleEstimation: Scalars["Int"]; - locationId: Scalars["String"]; - locationLevel: Scalars["String"]; - maleEstimation: Scalars["Int"]; - totalEstimation: Scalars["Int"]; -}; + __typename?: 'Estimation' + femaleEstimation: Scalars['Int'] + locationId: Scalars['String'] + locationLevel: Scalars['String'] + maleEstimation: Scalars['Int'] + totalEstimation: Scalars['Int'] +} export enum Event { - Birth = "birth", - Death = "death", - Marriage = "marriage", + Birth = 'birth', + Death = 'death', + Marriage = 'marriage' } export type EventMetrics = { - __typename?: "EventMetrics"; - eventLocationType: Scalars["String"]; - gender: Scalars["String"]; - practitionerRole: Scalars["String"]; - timeLabel: Scalars["String"]; - total: Scalars["Int"]; -}; + __typename?: 'EventMetrics' + eventLocationType: Scalars['String'] + gender: Scalars['String'] + practitionerRole: Scalars['String'] + timeLabel: Scalars['String'] + total: Scalars['Int'] +} export type EventMetricsByLocation = { - __typename?: "EventMetricsByLocation"; - delayed: Scalars["Int"]; - healthFacility: Scalars["Int"]; - home: Scalars["Int"]; - late: Scalars["Int"]; - location: Location; - total: Scalars["Int"]; -}; + __typename?: 'EventMetricsByLocation' + delayed: Scalars['Int'] + healthFacility: Scalars['Int'] + home: Scalars['Int'] + late: Scalars['Int'] + location: Location + total: Scalars['Int'] +} export type EventMetricsByRegistrar = { - __typename?: "EventMetricsByRegistrar"; - delayed: Scalars["Int"]; - late: Scalars["Int"]; - registrarPractitioner?: Maybe; - total: Scalars["Int"]; -}; + __typename?: 'EventMetricsByRegistrar' + delayed: Scalars['Int'] + late: Scalars['Int'] + registrarPractitioner?: Maybe + total: Scalars['Int'] +} export type EventMetricsByTime = { - __typename?: "EventMetricsByTime"; - delayed: Scalars["Int"]; - healthFacility: Scalars["Int"]; - home: Scalars["Int"]; - late: Scalars["Int"]; - month: Scalars["String"]; - time: Scalars["String"]; - total: Scalars["Int"]; -}; + __typename?: 'EventMetricsByTime' + delayed: Scalars['Int'] + healthFacility: Scalars['Int'] + home: Scalars['Int'] + late: Scalars['Int'] + month: Scalars['String'] + time: Scalars['String'] + total: Scalars['Int'] +} export type EventProgressData = { - __typename?: "EventProgressData"; - timeInProgress?: Maybe; - timeInReadyForReview?: Maybe; - timeInReadyToPrint?: Maybe; - timeInRequiresUpdates?: Maybe; - timeInWaitingForApproval?: Maybe; - timeInWaitingForBRIS?: Maybe; -}; + __typename?: 'EventProgressData' + timeInProgress?: Maybe + timeInReadyForReview?: Maybe + timeInReadyToPrint?: Maybe + timeInRequiresUpdates?: Maybe + timeInWaitingForApproval?: Maybe + timeInWaitingForBRIS?: Maybe +} export type EventProgressResultSet = { - __typename?: "EventProgressResultSet"; - results?: Maybe>>; - totalItems?: Maybe; -}; + __typename?: 'EventProgressResultSet' + results?: Maybe>> + totalItems?: Maybe +} export type EventProgressSet = { - __typename?: "EventProgressSet"; - dateOfEvent?: Maybe; - id: Scalars["ID"]; - name?: Maybe>>; - progressReport?: Maybe; - registration?: Maybe; - startedAt?: Maybe; - startedBy?: Maybe; - startedByFacility?: Maybe; - type?: Maybe; -}; + __typename?: 'EventProgressSet' + dateOfEvent?: Maybe + id: Scalars['ID'] + name?: Maybe>> + progressReport?: Maybe + registration?: Maybe + startedAt?: Maybe + startedBy?: Maybe + startedByFacility?: Maybe + type?: Maybe +} export type EventRegistration = { - createdAt?: Maybe; - history?: Maybe>>; - id: Scalars["ID"]; - registration?: Maybe; -}; + createdAt?: Maybe + history?: Maybe>> + id: Scalars['ID'] + registration?: Maybe +} export type EventSearchResultSet = { - __typename?: "EventSearchResultSet"; - results?: Maybe>>; - totalItems?: Maybe; -}; + __typename?: 'EventSearchResultSet' + results?: Maybe>> + totalItems?: Maybe +} export type EventSearchSet = { - id: Scalars["ID"]; - operationHistories?: Maybe>>; - registration?: Maybe; - type?: Maybe; -}; + id: Scalars['ID'] + operationHistories?: Maybe>> + registration?: Maybe + type?: Maybe +} export type History = { - __typename?: "History"; - action?: Maybe; - certificates?: Maybe>>; - comments?: Maybe>>; - date?: Maybe; - dhis2Notification?: Maybe; - documents: Array; - duplicateOf?: Maybe; - hasShowedVerifiedDocument?: Maybe; - input?: Maybe>>; - ipAddress?: Maybe; - location?: Maybe; - noSupportingDocumentationRequired?: Maybe; - note?: Maybe; - office?: Maybe; - otherReason?: Maybe; - output?: Maybe>>; - payment?: Maybe; - potentialDuplicates?: Maybe>; - reason?: Maybe; - regStatus?: Maybe; - requester?: Maybe; - requesterOther?: Maybe; - signature?: Maybe; - statusReason?: Maybe; - system?: Maybe; - user?: Maybe; -}; + __typename?: 'History' + action?: Maybe + certificates?: Maybe>> + comments?: Maybe>> + date?: Maybe + dhis2Notification?: Maybe + duplicateOf?: Maybe + hasShowedVerifiedDocument?: Maybe + input?: Maybe>> + ipAddress?: Maybe + location?: Maybe + office?: Maybe + otherReason?: Maybe + output?: Maybe>> + potentialDuplicates?: Maybe> + reason?: Maybe + regStatus?: Maybe + requester?: Maybe + signature?: Maybe + statusReason?: Maybe + system?: Maybe + user?: Maybe +} export type HumanName = { - __typename?: "HumanName"; - familyName?: Maybe; - firstNames?: Maybe; - marriedLastName?: Maybe; - use?: Maybe; -}; + __typename?: 'HumanName' + familyName?: Maybe + firstNames?: Maybe + marriedLastName?: Maybe + use?: Maybe +} export type HumanNameInput = { - familyName?: InputMaybe; - firstNames?: InputMaybe; - marriedLastName?: InputMaybe; - use?: InputMaybe; -}; + familyName?: InputMaybe + firstNames?: InputMaybe + marriedLastName?: InputMaybe + use?: InputMaybe +} export type Identifier = { - __typename?: "Identifier"; - system?: Maybe; - value?: Maybe; -}; + __typename?: 'Identifier' + system?: Maybe + value?: Maybe +} export type IdentityInput = { - fieldsModifiedByIdentity?: InputMaybe>>; - id?: InputMaybe; - otherType?: InputMaybe; - type?: InputMaybe; -}; + fieldsModifiedByIdentity?: InputMaybe>> + id?: InputMaybe + otherType?: InputMaybe + type?: InputMaybe +} export type IdentityType = { - __typename?: "IdentityType"; - fieldsModifiedByIdentity?: Maybe>>; - id?: Maybe; - otherType?: Maybe; - type?: Maybe; -}; + __typename?: 'IdentityType' + fieldsModifiedByIdentity?: Maybe>> + id?: Maybe + otherType?: Maybe + type?: Maybe +} export enum ImageFit { - Fill = "FILL", - Tile = "TILE", + Fill = 'FILL', + Tile = 'TILE' } export type InputOutput = { - __typename?: "InputOutput"; - valueCode: Scalars["String"]; - valueId: Scalars["String"]; - valueString: Scalars["String"]; -}; + __typename?: 'InputOutput' + valueCode?: Maybe + valueId?: Maybe + valueString?: Maybe +} export type IntegratedSystem = { - __typename?: "IntegratedSystem"; - name?: Maybe; - type?: Maybe; - username?: Maybe; -}; + __typename?: 'IntegratedSystem' + name?: Maybe + type?: Maybe + username?: Maybe +} export enum IntegratingSystemType { - Mosip = "MOSIP", - Osia = "OSIA", - Other = "OTHER", + Mosip = 'MOSIP', + Osia = 'OSIA', + Other = 'OTHER' } export type LabelInput = { - label: Scalars["String"]; - lang: Scalars["String"]; -}; + label: Scalars['String'] + lang: Scalars['String'] +} export type LocalRegistrar = { - __typename?: "LocalRegistrar"; - name: Array>; - role: SystemRoleType; - signature?: Maybe; -}; + __typename?: 'LocalRegistrar' + name: Array> + role: SystemRoleType + signature?: Maybe +} export type Location = { - __typename?: "Location"; - _fhirID?: Maybe; - address?: Maybe
; - alias?: Maybe>; - altitude?: Maybe; - description?: Maybe; - geoData?: Maybe; - id: Scalars["ID"]; - identifier?: Maybe>; - latitude?: Maybe; - longitude?: Maybe; - name?: Maybe; - partOf?: Maybe; - status?: Maybe; - telecom?: Maybe>>; - type?: Maybe; -}; + __typename?: 'Location' + _fhirID?: Maybe + address?: Maybe
+ alias?: Maybe> + altitude?: Maybe + description?: Maybe + geoData?: Maybe + id: Scalars['ID'] + identifier?: Maybe> + latitude?: Maybe + longitude?: Maybe + name?: Maybe + partOf?: Maybe + status?: Maybe + telecom?: Maybe>> + type?: Maybe +} export type LocationInput = { - _fhirID?: InputMaybe; - address?: InputMaybe; - alias?: InputMaybe>>; - altitude?: InputMaybe; - description?: InputMaybe; - geoData?: InputMaybe; - identifier?: InputMaybe>>; - latitude?: InputMaybe; - longitude?: InputMaybe; - name?: InputMaybe; - partOf?: InputMaybe; - status?: InputMaybe; - telecom?: InputMaybe>>; - type?: InputMaybe; -}; + _fhirID?: InputMaybe + address?: InputMaybe + alias?: InputMaybe>> + altitude?: InputMaybe + description?: InputMaybe + geoData?: InputMaybe + identifier?: InputMaybe>> + latitude?: InputMaybe + longitude?: InputMaybe + name?: InputMaybe + partOf?: InputMaybe + status?: InputMaybe + telecom?: InputMaybe>> + type?: InputMaybe +} export type LocationStatisticsResponse = { - __typename?: "LocationStatisticsResponse"; - offices: Scalars["Int"]; - population?: Maybe; - registrars: Scalars["Int"]; -}; + __typename?: 'LocationStatisticsResponse' + offices: Scalars['Int'] + population?: Maybe + registrars: Scalars['Int'] +} export type LocationWiseEstimationMetric = { - __typename?: "LocationWiseEstimationMetric"; - estimated: Scalars["Int"]; - locationId: Scalars["String"]; - locationName: Scalars["String"]; - total: Scalars["Int"]; - within1Year: Scalars["Int"]; - within5Years: Scalars["Int"]; - withinTarget: Scalars["Int"]; -}; + __typename?: 'LocationWiseEstimationMetric' + estimated: Scalars['Int'] + locationId: Scalars['String'] + locationName: Scalars['String'] + total: Scalars['Int'] + within1Year: Scalars['Int'] + within5Years: Scalars['Int'] + withinTarget: Scalars['Int'] +} export type LoginBackground = { - __typename?: "LoginBackground"; - backgroundColor?: Maybe; - backgroundImage?: Maybe; - imageFit?: Maybe; -}; + __typename?: 'LoginBackground' + backgroundColor?: Maybe + backgroundImage?: Maybe + imageFit?: Maybe +} export type LoginBackgroundInput = { - backgroundColor?: InputMaybe; - backgroundImage?: InputMaybe; - imageFit?: InputMaybe; -}; + backgroundColor?: InputMaybe + backgroundImage?: InputMaybe + imageFit?: InputMaybe +} export type Marriage = { - __typename?: "Marriage"; - FEE?: Maybe; - PRINT_IN_ADVANCE?: Maybe; - REGISTRATION_TARGET?: Maybe; -}; + __typename?: 'Marriage' + FEE?: Maybe + PRINT_IN_ADVANCE?: Maybe + REGISTRATION_TARGET?: Maybe +} export type MarriageEventSearchSet = EventSearchSet & { - __typename?: "MarriageEventSearchSet"; - brideIdentifier?: Maybe; - brideName?: Maybe>>; - dateOfMarriage?: Maybe; - groomIdentifier?: Maybe; - groomName?: Maybe>>; - id: Scalars["ID"]; - operationHistories?: Maybe>>; - registration?: Maybe; - type?: Maybe; -}; + __typename?: 'MarriageEventSearchSet' + brideIdentifier?: Maybe + brideName?: Maybe>> + dateOfMarriage?: Maybe + groomIdentifier?: Maybe + groomName?: Maybe>> + id: Scalars['ID'] + operationHistories?: Maybe>> + registration?: Maybe + type?: Maybe +} export type MarriageFee = { - __typename?: "MarriageFee"; - DELAYED?: Maybe; - ON_TIME?: Maybe; -}; + __typename?: 'MarriageFee' + DELAYED?: Maybe + ON_TIME?: Maybe +} export type MarriageFeeInput = { - DELAYED?: InputMaybe; - ON_TIME?: InputMaybe; -}; + DELAYED?: InputMaybe + ON_TIME?: InputMaybe +} export type MarriageInput = { - FEE?: InputMaybe; - PRINT_IN_ADVANCE?: InputMaybe; - REGISTRATION_TARGET?: InputMaybe; -}; + FEE?: InputMaybe + PRINT_IN_ADVANCE?: InputMaybe + REGISTRATION_TARGET?: InputMaybe +} export type MarriageRegistration = EventRegistration & { - __typename?: "MarriageRegistration"; - _fhirIDMap?: Maybe; - bride?: Maybe; - createdAt?: Maybe; - eventLocation?: Maybe; - groom?: Maybe; - history?: Maybe>>; - id: Scalars["ID"]; - informant?: Maybe; - questionnaire?: Maybe>>; - registration?: Maybe; - typeOfMarriage?: Maybe; - updatedAt?: Maybe; - witnessOne?: Maybe; - witnessTwo?: Maybe; -}; + __typename?: 'MarriageRegistration' + _fhirIDMap?: Maybe + bride?: Maybe + createdAt?: Maybe + eventLocation?: Maybe + groom?: Maybe + history?: Maybe>> + id: Scalars['ID'] + informant?: Maybe + questionnaire?: Maybe>> + registration?: Maybe + typeOfMarriage?: Maybe + updatedAt?: Maybe + witnessOne?: Maybe + witnessTwo?: Maybe +} export type MarriageRegistrationInput = { - _fhirIDMap?: InputMaybe; - bride?: InputMaybe; - createdAt?: InputMaybe; - eventLocation?: InputMaybe; - groom?: InputMaybe; - informant?: InputMaybe; - questionnaire?: InputMaybe>>; - registration?: InputMaybe; - typeOfMarriage?: InputMaybe; - updatedAt?: InputMaybe; - witnessOne?: InputMaybe; - witnessTwo?: InputMaybe; -}; + _fhirIDMap?: InputMaybe + bride?: InputMaybe + createdAt?: InputMaybe + eventLocation?: InputMaybe + groom?: InputMaybe + informant?: InputMaybe + questionnaire?: InputMaybe>> + registration?: InputMaybe + typeOfMarriage?: InputMaybe + updatedAt?: InputMaybe + witnessOne?: InputMaybe + witnessTwo?: InputMaybe +} export type MedicalPractitioner = { - __typename?: "MedicalPractitioner"; - lastVisitDate?: Maybe; - name?: Maybe; - qualification?: Maybe; -}; + __typename?: 'MedicalPractitioner' + lastVisitDate?: Maybe + name?: Maybe + qualification?: Maybe +} export type MedicalPractitionerInput = { - lastVisitDate?: InputMaybe; - name?: InputMaybe; - qualification?: InputMaybe; -}; + lastVisitDate?: InputMaybe + name?: InputMaybe + qualification?: InputMaybe +} export type MixedTotalMetricsResult = | TotalMetricsByLocation | TotalMetricsByRegistrar - | TotalMetricsByTime; + | TotalMetricsByTime export type MonthWiseEstimationMetric = { - __typename?: "MonthWiseEstimationMetric"; - estimated: Scalars["Int"]; - month: Scalars["Int"]; - total: Scalars["Int"]; - within1Year: Scalars["Int"]; - within5Years: Scalars["Int"]; - withinTarget: Scalars["Int"]; - year: Scalars["Int"]; -}; + __typename?: 'MonthWiseEstimationMetric' + estimated: Scalars['Int'] + month: Scalars['Int'] + total: Scalars['Int'] + within1Year: Scalars['Int'] + within5Years: Scalars['Int'] + withinTarget: Scalars['Int'] + year: Scalars['Int'] +} export type Mutation = { - __typename?: "Mutation"; - activateUser?: Maybe; - approveBirthRegistrationCorrection: Scalars["ID"]; - approveDeathRegistrationCorrection: Scalars["ID"]; - approveMarriageRegistrationCorrection: Scalars["ID"]; - auditUser?: Maybe; - bookmarkAdvancedSearch?: Maybe; - changeAvatar?: Maybe; - changeEmail?: Maybe; - changePassword?: Maybe; - changePhone?: Maybe; - createBirthRegistration: CreatedIds; - createBirthRegistrationCorrection: Scalars["ID"]; - createDeathRegistration: CreatedIds; - createDeathRegistrationCorrection: Scalars["ID"]; - createMarriageRegistration: CreatedIds; - createMarriageRegistrationCorrection: Scalars["ID"]; - createNotification: Notification; - createOrUpdateCertificateSVG?: Maybe; - createOrUpdateUser: User; - deactivateSystem?: Maybe; - deleteSystem?: Maybe; - markBirthAsCertified: Scalars["ID"]; - markBirthAsIssued: Scalars["ID"]; - markBirthAsRegistered: BirthRegistration; - markBirthAsValidated?: Maybe; - markBirthAsVerified?: Maybe; - markDeathAsCertified: Scalars["ID"]; - markDeathAsIssued: Scalars["ID"]; - markDeathAsRegistered: DeathRegistration; - markDeathAsValidated?: Maybe; - markDeathAsVerified?: Maybe; - markEventAsArchived: Scalars["ID"]; - markEventAsDuplicate: Scalars["ID"]; - markEventAsNotDuplicate: Scalars["ID"]; - markEventAsReinstated?: Maybe; - markEventAsUnassigned: Scalars["ID"]; - markEventAsVoided: Scalars["ID"]; - markMarriageAsCertified: Scalars["ID"]; - markMarriageAsIssued: Scalars["ID"]; - markMarriageAsRegistered: MarriageRegistration; - markMarriageAsValidated?: Maybe; - reactivateSystem?: Maybe; - refreshSystemSecret?: Maybe; - registerSystem?: Maybe; - rejectRegistrationCorrection: Scalars["ID"]; - removeBookmarkedAdvancedSearch?: Maybe; - requestRegistrationCorrection: Scalars["ID"]; - resendInvite?: Maybe; - resetPasswordInvite?: Maybe; - toggleInformantSMSNotification?: Maybe>; - updateApplicationConfig?: Maybe; - updateBirthRegistration: Scalars["ID"]; - updateDeathRegistration: Scalars["ID"]; - updatePermissions?: Maybe; - updateRole: Response; - usernameReminder?: Maybe; - voidNotification?: Maybe; -}; + __typename?: 'Mutation' + activateUser?: Maybe + auditUser?: Maybe + bookmarkAdvancedSearch?: Maybe + changeAvatar?: Maybe + changeEmail?: Maybe + changePassword?: Maybe + changePhone?: Maybe + createBirthRegistration: CreatedIds + createDeathRegistration: CreatedIds + createMarriageRegistration: CreatedIds + createNotification: Notification + createOrUpdateCertificateSVG?: Maybe + createOrUpdateUser: User + deactivateSystem?: Maybe + deleteSystem?: Maybe + markBirthAsCertified: Scalars['ID'] + markBirthAsIssued: Scalars['ID'] + markBirthAsRegistered: BirthRegistration + markBirthAsValidated?: Maybe + markBirthAsVerified?: Maybe + markDeathAsCertified: Scalars['ID'] + markDeathAsIssued: Scalars['ID'] + markDeathAsRegistered: DeathRegistration + markDeathAsValidated?: Maybe + markDeathAsVerified?: Maybe + markEventAsArchived: Scalars['ID'] + markEventAsDuplicate: Scalars['ID'] + markEventAsNotDuplicate: Scalars['ID'] + markEventAsReinstated?: Maybe + markEventAsUnassigned: Scalars['ID'] + markEventAsVoided: Scalars['ID'] + markMarriageAsCertified: Scalars['ID'] + markMarriageAsIssued: Scalars['ID'] + markMarriageAsRegistered: MarriageRegistration + markMarriageAsValidated?: Maybe + reactivateSystem?: Maybe + refreshSystemSecret?: Maybe + registerSystem?: Maybe + removeBookmarkedAdvancedSearch?: Maybe + requestBirthRegistrationCorrection: Scalars['ID'] + requestDeathRegistrationCorrection: Scalars['ID'] + requestMarriageRegistrationCorrection: Scalars['ID'] + resendInvite?: Maybe + resetPasswordInvite?: Maybe + toggleInformantSMSNotification?: Maybe> + updateApplicationConfig?: Maybe + updateBirthRegistration: Scalars['ID'] + updateDeathRegistration: Scalars['ID'] + updatePermissions?: Maybe + updateRole: Response + usernameReminder?: Maybe + voidNotification?: Maybe +} export type MutationActivateUserArgs = { - password: Scalars["String"]; - securityQNAs: Array>; - userId: Scalars["String"]; -}; - -export type MutationApproveBirthRegistrationCorrectionArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; - -export type MutationApproveDeathRegistrationCorrectionArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; - -export type MutationApproveMarriageRegistrationCorrectionArgs = { - details: MarriageRegistrationInput; - id: Scalars["ID"]; -}; + password: Scalars['String'] + securityQNAs: Array> + userId: Scalars['String'] +} export type MutationAuditUserArgs = { - action: Scalars["String"]; - comment?: InputMaybe; - reason: Scalars["String"]; - userId: Scalars["String"]; -}; + action: Scalars['String'] + comment?: InputMaybe + reason: Scalars['String'] + userId: Scalars['String'] +} export type MutationBookmarkAdvancedSearchArgs = { - bookmarkSearchInput: BookmarkSearchInput; -}; + bookmarkSearchInput: BookmarkSearchInput +} export type MutationChangeAvatarArgs = { - avatar: AvatarInput; - userId: Scalars["String"]; -}; + avatar: AvatarInput + userId: Scalars['String'] +} export type MutationChangeEmailArgs = { - email: Scalars["String"]; - nonce: Scalars["String"]; - userId: Scalars["String"]; - verifyCode: Scalars["String"]; -}; + email: Scalars['String'] + nonce: Scalars['String'] + userId: Scalars['String'] + verifyCode: Scalars['String'] +} export type MutationChangePasswordArgs = { - existingPassword: Scalars["String"]; - password: Scalars["String"]; - userId: Scalars["String"]; -}; + existingPassword: Scalars['String'] + password: Scalars['String'] + userId: Scalars['String'] +} export type MutationChangePhoneArgs = { - nonce: Scalars["String"]; - phoneNumber: Scalars["String"]; - userId: Scalars["String"]; - verifyCode: Scalars["String"]; -}; + nonce: Scalars['String'] + phoneNumber: Scalars['String'] + userId: Scalars['String'] + verifyCode: Scalars['String'] +} export type MutationCreateBirthRegistrationArgs = { - details: BirthRegistrationInput; -}; - -export type MutationCreateBirthRegistrationCorrectionArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; + details: BirthRegistrationInput +} export type MutationCreateDeathRegistrationArgs = { - details: DeathRegistrationInput; -}; - -export type MutationCreateDeathRegistrationCorrectionArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; + details: DeathRegistrationInput +} export type MutationCreateMarriageRegistrationArgs = { - details: MarriageRegistrationInput; -}; - -export type MutationCreateMarriageRegistrationCorrectionArgs = { - details: MarriageRegistrationInput; - id: Scalars["ID"]; -}; + details: MarriageRegistrationInput +} export type MutationCreateNotificationArgs = { - details: NotificationInput; -}; + details: NotificationInput +} export type MutationCreateOrUpdateCertificateSvgArgs = { - certificateSVG: CertificateSvgInput; -}; + certificateSVG: CertificateSvgInput +} export type MutationCreateOrUpdateUserArgs = { - user: UserInput; -}; + user: UserInput +} export type MutationDeactivateSystemArgs = { - clientId: Scalars["ID"]; -}; + clientId: Scalars['ID'] +} export type MutationDeleteSystemArgs = { - clientId: Scalars["ID"]; -}; + clientId: Scalars['ID'] +} export type MutationMarkBirthAsCertifiedArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; + details: BirthRegistrationInput + id: Scalars['ID'] +} export type MutationMarkBirthAsIssuedArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; + details: BirthRegistrationInput + id: Scalars['ID'] +} export type MutationMarkBirthAsRegisteredArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; + details: BirthRegistrationInput + id: Scalars['ID'] +} export type MutationMarkBirthAsValidatedArgs = { - details?: InputMaybe; - id: Scalars["ID"]; -}; + details?: InputMaybe + id: Scalars['ID'] +} export type MutationMarkBirthAsVerifiedArgs = { - details?: InputMaybe; - id: Scalars["ID"]; -}; + details?: InputMaybe + id: Scalars['ID'] +} export type MutationMarkDeathAsCertifiedArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; + details: DeathRegistrationInput + id: Scalars['ID'] +} export type MutationMarkDeathAsIssuedArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; + details: DeathRegistrationInput + id: Scalars['ID'] +} export type MutationMarkDeathAsRegisteredArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; + details: DeathRegistrationInput + id: Scalars['ID'] +} export type MutationMarkDeathAsValidatedArgs = { - details?: InputMaybe; - id: Scalars["ID"]; -}; + details?: InputMaybe + id: Scalars['ID'] +} export type MutationMarkDeathAsVerifiedArgs = { - details?: InputMaybe; - id: Scalars["ID"]; -}; + details?: InputMaybe + id: Scalars['ID'] +} export type MutationMarkEventAsArchivedArgs = { - comment?: InputMaybe; - duplicateTrackingId?: InputMaybe; - id: Scalars["String"]; - reason?: InputMaybe; -}; + comment?: InputMaybe + duplicateTrackingId?: InputMaybe + id: Scalars['String'] + reason?: InputMaybe +} export type MutationMarkEventAsDuplicateArgs = { - comment?: InputMaybe; - duplicateTrackingId?: InputMaybe; - id: Scalars["String"]; - reason: Scalars["String"]; -}; + comment?: InputMaybe + duplicateTrackingId?: InputMaybe + id: Scalars['String'] + reason: Scalars['String'] +} export type MutationMarkEventAsNotDuplicateArgs = { - id: Scalars["String"]; -}; + id: Scalars['String'] +} export type MutationMarkEventAsReinstatedArgs = { - id: Scalars["String"]; -}; + id: Scalars['String'] +} export type MutationMarkEventAsUnassignedArgs = { - id: Scalars["String"]; -}; + id: Scalars['String'] +} export type MutationMarkEventAsVoidedArgs = { - comment?: InputMaybe; - id: Scalars["String"]; - reason: Scalars["String"]; -}; + comment?: InputMaybe + id: Scalars['String'] + reason: Scalars['String'] +} export type MutationMarkMarriageAsCertifiedArgs = { - details: MarriageRegistrationInput; - id: Scalars["ID"]; -}; + details: MarriageRegistrationInput + id: Scalars['ID'] +} export type MutationMarkMarriageAsIssuedArgs = { - details: MarriageRegistrationInput; - id: Scalars["ID"]; -}; + details: MarriageRegistrationInput + id: Scalars['ID'] +} export type MutationMarkMarriageAsRegisteredArgs = { - details: MarriageRegistrationInput; - id: Scalars["ID"]; -}; + details: MarriageRegistrationInput + id: Scalars['ID'] +} export type MutationMarkMarriageAsValidatedArgs = { - details?: InputMaybe; - id: Scalars["ID"]; -}; + details?: InputMaybe + id: Scalars['ID'] +} export type MutationReactivateSystemArgs = { - clientId: Scalars["ID"]; -}; + clientId: Scalars['ID'] +} export type MutationRefreshSystemSecretArgs = { - clientId: Scalars["String"]; -}; + clientId: Scalars['String'] +} export type MutationRegisterSystemArgs = { - system?: InputMaybe; -}; - -export type MutationRejectRegistrationCorrectionArgs = { - details: CorrectionRejectionInput; - id: Scalars["ID"]; -}; + system?: InputMaybe +} export type MutationRemoveBookmarkedAdvancedSearchArgs = { - removeBookmarkedSearchInput: RemoveBookmarkedSeachInput; -}; + removeBookmarkedSearchInput: RemoveBookmarkedSeachInput +} + +export type MutationRequestBirthRegistrationCorrectionArgs = { + details: BirthRegistrationInput + id: Scalars['ID'] +} + +export type MutationRequestDeathRegistrationCorrectionArgs = { + details: DeathRegistrationInput + id: Scalars['ID'] +} -export type MutationRequestRegistrationCorrectionArgs = { - details: CorrectionInput; - id: Scalars["ID"]; -}; +export type MutationRequestMarriageRegistrationCorrectionArgs = { + details: MarriageRegistrationInput + id: Scalars['ID'] +} export type MutationResendInviteArgs = { - userId: Scalars["String"]; -}; + userId: Scalars['String'] +} export type MutationResetPasswordInviteArgs = { - userId: Scalars["String"]; -}; + userId: Scalars['String'] +} export type MutationToggleInformantSmsNotificationArgs = { - smsNotifications?: InputMaybe>; -}; + smsNotifications?: InputMaybe> +} export type MutationUpdateApplicationConfigArgs = { - applicationConfig?: InputMaybe; -}; + applicationConfig?: InputMaybe +} export type MutationUpdateBirthRegistrationArgs = { - details: BirthRegistrationInput; - id: Scalars["ID"]; -}; + details: BirthRegistrationInput + id: Scalars['ID'] +} export type MutationUpdateDeathRegistrationArgs = { - details: DeathRegistrationInput; - id: Scalars["ID"]; -}; + details: DeathRegistrationInput + id: Scalars['ID'] +} export type MutationUpdatePermissionsArgs = { - setting: UpdatePermissionsInput; -}; + setting: UpdatePermissionsInput +} export type MutationUpdateRoleArgs = { - systemRole?: InputMaybe; -}; + systemRole?: InputMaybe +} export type MutationUsernameReminderArgs = { - userId: Scalars["String"]; -}; + userId: Scalars['String'] +} export type MutationVoidNotificationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type Notification = { - __typename?: "Notification"; - child?: Maybe; - createdAt?: Maybe; - father?: Maybe; - id: Scalars["ID"]; - informant?: Maybe; - location?: Maybe; - mother?: Maybe; - updatedAt?: Maybe; -}; + __typename?: 'Notification' + child?: Maybe + createdAt?: Maybe + father?: Maybe + id: Scalars['ID'] + informant?: Maybe + location?: Maybe + mother?: Maybe + updatedAt?: Maybe +} export type NotificationInput = { - child?: InputMaybe; - createdAt?: InputMaybe; - father?: InputMaybe; - informant?: InputMaybe; - location?: InputMaybe; - mother?: InputMaybe; - updatedAt?: InputMaybe; -}; + child?: InputMaybe + createdAt?: InputMaybe + father?: InputMaybe + informant?: InputMaybe + location?: InputMaybe + mother?: InputMaybe + updatedAt?: InputMaybe +} export type OidpUserAddress = { - __typename?: "OIDPUserAddress"; - city?: Maybe; - country?: Maybe; - formatted?: Maybe; - locality?: Maybe; - postal_code?: Maybe; - region?: Maybe; - street_address?: Maybe; -}; + __typename?: 'OIDPUserAddress' + city?: Maybe + country?: Maybe + formatted?: Maybe + locality?: Maybe + postal_code?: Maybe + region?: Maybe + street_address?: Maybe +} export type OidpUserInfo = { - __typename?: "OIDPUserInfo"; - address?: Maybe; - birthdate?: Maybe; - email?: Maybe; - email_verified?: Maybe; - family_name?: Maybe; - gender?: Maybe; - given_name?: Maybe; - locale?: Maybe; - middle_name?: Maybe; - name?: Maybe; - nickname?: Maybe; - phone_number?: Maybe; - phone_number_verified?: Maybe; - picture?: Maybe; - preferred_username?: Maybe; - profile?: Maybe; - sub: Scalars["String"]; - updated_at?: Maybe; - website?: Maybe; - zoneinfo?: Maybe; -}; + __typename?: 'OIDPUserInfo' + address?: Maybe + birthdate?: Maybe + email?: Maybe + email_verified?: Maybe + family_name?: Maybe + gender?: Maybe + given_name?: Maybe + locale?: Maybe + middle_name?: Maybe + name?: Maybe + nickname?: Maybe + phone_number?: Maybe + phone_number_verified?: Maybe + picture?: Maybe + preferred_username?: Maybe + profile?: Maybe + sub: Scalars['String'] + updated_at?: Maybe + website?: Maybe + zoneinfo?: Maybe +} export type OperationHistorySearchSet = { - __typename?: "OperationHistorySearchSet"; - notificationFacilityAlias?: Maybe>>; - notificationFacilityName?: Maybe; - operatedOn?: Maybe; - operationType?: Maybe; - operatorName?: Maybe>>; - operatorOfficeAlias?: Maybe>>; - operatorOfficeName?: Maybe; - operatorRole?: Maybe; - rejectComment?: Maybe; - rejectReason?: Maybe; -}; + __typename?: 'OperationHistorySearchSet' + notificationFacilityAlias?: Maybe>> + notificationFacilityName?: Maybe + operatedOn?: Maybe + operationType?: Maybe + operatorName?: Maybe>> + operatorOfficeAlias?: Maybe>> + operatorOfficeName?: Maybe + operatorRole?: Maybe + rejectComment?: Maybe + rejectReason?: Maybe +} export type Payment = { - __typename?: "Payment"; - amount: Scalars["Float"]; - attachmentURL?: Maybe; - date: Scalars["Date"]; - id: Scalars["ID"]; - outcome: PaymentOutcomeType; - type: PaymentType; -}; + __typename?: 'Payment' + amount?: Maybe + date?: Maybe + outcome?: Maybe + paymentId?: Maybe + total?: Maybe + type?: Maybe +} export type PaymentInput = { - amount?: InputMaybe; - data?: InputMaybe; - date?: InputMaybe; - outcome?: InputMaybe; - paymentId?: InputMaybe; - total?: InputMaybe; - type?: InputMaybe; -}; + amount?: InputMaybe + data?: InputMaybe + date?: InputMaybe + outcome?: InputMaybe + paymentId?: InputMaybe + total?: InputMaybe + type?: InputMaybe +} export type PaymentMetric = { - __typename?: "PaymentMetric"; - paymentType: Scalars["String"]; - total: Scalars["Float"]; -}; + __typename?: 'PaymentMetric' + paymentType: Scalars['String'] + total: Scalars['Float'] +} export enum PaymentOutcomeType { - Completed = "COMPLETED", - Error = "ERROR", - Partial = "PARTIAL", + Completed = 'COMPLETED', + Error = 'ERROR', + Partial = 'PARTIAL' } export enum PaymentType { - Manual = "MANUAL", + Manual = 'MANUAL' } export type Person = { - __typename?: "Person"; - _fhirID?: Maybe; - address?: Maybe>>; - age?: Maybe; - ageOfIndividualInYears?: Maybe; - birthDate?: Maybe; - dateOfMarriage?: Maybe; - deceased?: Maybe; - detailsExist?: Maybe; - educationalAttainment?: Maybe; - exactDateOfBirthUnknown?: Maybe; - gender?: Maybe; - id?: Maybe; - identifier?: Maybe>>; - maritalStatus?: Maybe; - multipleBirth?: Maybe; - name?: Maybe>>; - nationality?: Maybe>>; - occupation?: Maybe; - photo?: Maybe>>; - reasonNotApplying?: Maybe; - telecom?: Maybe>>; -}; + __typename?: 'Person' + _fhirID?: Maybe + address?: Maybe>> + age?: Maybe + ageOfIndividualInYears?: Maybe + birthDate?: Maybe + dateOfMarriage?: Maybe + deceased?: Maybe + detailsExist?: Maybe + educationalAttainment?: Maybe + exactDateOfBirthUnknown?: Maybe + gender?: Maybe + id?: Maybe + identifier?: Maybe>> + maritalStatus?: Maybe + multipleBirth?: Maybe + name?: Maybe>> + nationality?: Maybe>> + occupation?: Maybe + photo?: Maybe>> + reasonNotApplying?: Maybe + telecom?: Maybe>> +} export type PersonInput = { - _fhirID?: InputMaybe; - address?: InputMaybe>>; - age?: InputMaybe; - ageOfIndividualInYears?: InputMaybe; - birthDate?: InputMaybe; - dateOfMarriage?: InputMaybe; - deceased?: InputMaybe; - detailsExist?: InputMaybe; - educationalAttainment?: InputMaybe; - gender?: InputMaybe; - identifier?: InputMaybe>>; - maritalStatus?: InputMaybe; - multipleBirth?: InputMaybe; - name?: InputMaybe>>; - nationality?: InputMaybe>>; - occupation?: InputMaybe; - photo?: InputMaybe>; - reasonNotApplying?: InputMaybe; - telecom?: InputMaybe>>; -}; + _fhirID?: InputMaybe + address?: InputMaybe>> + age?: InputMaybe + ageOfIndividualInYears?: InputMaybe + birthDate?: InputMaybe + dateOfMarriage?: InputMaybe + deceased?: InputMaybe + detailsExist?: InputMaybe + educationalAttainment?: InputMaybe + gender?: InputMaybe + identifier?: InputMaybe>> + maritalStatus?: InputMaybe + multipleBirth?: InputMaybe + name?: InputMaybe>> + nationality?: InputMaybe>> + occupation?: InputMaybe + photo?: InputMaybe> + reasonNotApplying?: InputMaybe + telecom?: InputMaybe>> +} export type Query = { - __typename?: "Query"; - fetchBirthRegistration?: Maybe; - fetchDeathRegistration?: Maybe; - fetchEventRegistration?: Maybe; - fetchLocationWiseEventMetrics?: Maybe>; - fetchMarriageRegistration?: Maybe; - fetchMonthWiseEventMetrics?: Maybe>; - fetchRecordDetailsForVerification?: Maybe; - fetchRegistration?: Maybe; - fetchRegistrationCountByStatus?: Maybe; - fetchRegistrationForViewing?: Maybe; - fetchSystem?: Maybe; - getActiveCertificatesSVG?: Maybe>; - getCertificateSVG?: Maybe; - getDeclarationsStartedMetrics?: Maybe; - getEventsWithProgress?: Maybe; - getLocationStatistics?: Maybe; - getOIDPUserInfo?: Maybe; - getRegistrationsListByFilter?: Maybe; - getSystemRoles?: Maybe>; - getTotalCertifications?: Maybe>; - getTotalCorrections?: Maybe>; - getTotalMetrics?: Maybe; - getTotalPayments?: Maybe>; - getUser?: Maybe; - getUserAuditLog?: Maybe; - getUserByEmail?: Maybe; - getUserByMobile?: Maybe; - getVSExports?: Maybe; - hasChildLocation?: Maybe; - informantSMSNotifications?: Maybe>; - listBirthRegistrations?: Maybe; - listNotifications?: Maybe>>; - locationById?: Maybe; - locationsByParent?: Maybe>>; - queryPersonByIdentifier?: Maybe; - queryPersonByNidIdentifier?: Maybe; - queryRegistrationByIdentifier?: Maybe; - searchBirthRegistrations?: Maybe>>; - searchDeathRegistrations?: Maybe>>; - searchEvents?: Maybe; - searchFieldAgents?: Maybe; - searchUsers?: Maybe; - verifyPasswordById?: Maybe; -}; + __typename?: 'Query' + fetchBirthRegistration?: Maybe + fetchDeathRegistration?: Maybe + fetchEventRegistration?: Maybe + fetchLocationWiseEventMetrics?: Maybe> + fetchMarriageRegistration?: Maybe + fetchMonthWiseEventMetrics?: Maybe> + fetchRecordDetailsForVerification?: Maybe + fetchRegistration?: Maybe + fetchRegistrationCountByStatus?: Maybe + fetchRegistrationForViewing?: Maybe + fetchSystem?: Maybe + getActiveCertificatesSVG?: Maybe> + getCertificateSVG?: Maybe + getDeclarationsStartedMetrics?: Maybe + getEventsWithProgress?: Maybe + getLocationStatistics?: Maybe + getOIDPUserInfo?: Maybe + getRegistrationsListByFilter?: Maybe + getSystemRoles?: Maybe> + getTotalCertifications?: Maybe> + getTotalCorrections?: Maybe> + getTotalMetrics?: Maybe + getTotalPayments?: Maybe> + getUser?: Maybe + getUserAuditLog?: Maybe + getUserByEmail?: Maybe + getUserByMobile?: Maybe + getVSExports?: Maybe + hasChildLocation?: Maybe + informantSMSNotifications?: Maybe> + listBirthRegistrations?: Maybe + listNotifications?: Maybe>> + locationById?: Maybe + locationsByParent?: Maybe>> + queryPersonByIdentifier?: Maybe + queryPersonByNidIdentifier?: Maybe + queryRegistrationByIdentifier?: Maybe + searchBirthRegistrations?: Maybe>> + searchDeathRegistrations?: Maybe>> + searchEvents?: Maybe + searchFieldAgents?: Maybe + searchUsers?: Maybe + verifyPasswordById?: Maybe +} export type QueryFetchBirthRegistrationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchDeathRegistrationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchEventRegistrationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchLocationWiseEventMetricsArgs = { - event: Scalars["String"]; - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryFetchMarriageRegistrationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchMonthWiseEventMetricsArgs = { - event: Scalars["String"]; - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryFetchRecordDetailsForVerificationArgs = { - id: Scalars["String"]; -}; + id: Scalars['String'] +} export type QueryFetchRegistrationArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchRegistrationCountByStatusArgs = { - event?: InputMaybe; - locationId?: InputMaybe; - status: Array>; -}; + event?: InputMaybe + locationId?: InputMaybe + status: Array> +} export type QueryFetchRegistrationForViewingArgs = { - id: Scalars["ID"]; -}; + id: Scalars['ID'] +} export type QueryFetchSystemArgs = { - clientId: Scalars["ID"]; -}; + clientId: Scalars['ID'] +} export type QueryGetCertificateSvgArgs = { - event: Event; - status: CertificateStatus; -}; + event: Event + status: CertificateStatus +} export type QueryGetDeclarationsStartedMetricsArgs = { - locationId: Scalars["String"]; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + locationId: Scalars['String'] + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetEventsWithProgressArgs = { - compositionType?: InputMaybe>>; - count?: InputMaybe; - declarationJurisdictionId?: InputMaybe; - registrationStatuses?: InputMaybe>>; - skip?: InputMaybe; - sort?: InputMaybe; -}; + compositionType?: InputMaybe>> + count?: InputMaybe + declarationJurisdictionId?: InputMaybe + registrationStatuses?: InputMaybe>> + skip?: InputMaybe + sort?: InputMaybe +} export type QueryGetLocationStatisticsArgs = { - locationId?: InputMaybe; - populationYear: Scalars["Int"]; -}; + locationId?: InputMaybe + populationYear: Scalars['Int'] +} export type QueryGetOidpUserInfoArgs = { - clientId: Scalars["String"]; - code: Scalars["String"]; - grantType?: InputMaybe; - redirectUri: Scalars["String"]; -}; + clientId: Scalars['String'] + code: Scalars['String'] + grantType?: InputMaybe + redirectUri: Scalars['String'] +} export type QueryGetRegistrationsListByFilterArgs = { - event: Scalars["String"]; - filterBy: Scalars["String"]; - locationId?: InputMaybe; - size: Scalars["Int"]; - skip: Scalars["Int"]; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + filterBy: Scalars['String'] + locationId?: InputMaybe + size: Scalars['Int'] + skip: Scalars['Int'] + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetSystemRolesArgs = { - active?: InputMaybe; - role?: InputMaybe; - sortBy?: InputMaybe; - sortOrder?: InputMaybe; - title?: InputMaybe; - value?: InputMaybe; -}; + active?: InputMaybe + role?: InputMaybe + sortBy?: InputMaybe + sortOrder?: InputMaybe + title?: InputMaybe + value?: InputMaybe +} export type QueryGetTotalCertificationsArgs = { - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetTotalCorrectionsArgs = { - event: Scalars["String"]; - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetTotalMetricsArgs = { - event: Scalars["String"]; - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetTotalPaymentsArgs = { - event: Scalars["String"]; - locationId?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + event: Scalars['String'] + locationId?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QueryGetUserArgs = { - userId?: InputMaybe; -}; + userId?: InputMaybe +} export type QueryGetUserAuditLogArgs = { - count: Scalars["Int"]; - practitionerId: Scalars["String"]; - skip?: InputMaybe; - timeEnd?: InputMaybe; - timeStart?: InputMaybe; -}; + count: Scalars['Int'] + practitionerId: Scalars['String'] + skip?: InputMaybe + timeEnd?: InputMaybe + timeStart?: InputMaybe +} export type QueryGetUserByEmailArgs = { - email?: InputMaybe; -}; + email?: InputMaybe +} export type QueryGetUserByMobileArgs = { - mobile?: InputMaybe; -}; + mobile?: InputMaybe +} export type QueryHasChildLocationArgs = { - parentId?: InputMaybe; -}; + parentId?: InputMaybe +} export type QueryListBirthRegistrationsArgs = { - count?: InputMaybe; - from?: InputMaybe; - locationIds?: InputMaybe>>; - skip?: InputMaybe; - status?: InputMaybe; - to?: InputMaybe; - userId?: InputMaybe; -}; + count?: InputMaybe + from?: InputMaybe + locationIds?: InputMaybe>> + skip?: InputMaybe + status?: InputMaybe + to?: InputMaybe + userId?: InputMaybe +} export type QueryListNotificationsArgs = { - from?: InputMaybe; - locationIds?: InputMaybe>>; - status?: InputMaybe; - to?: InputMaybe; - userId?: InputMaybe; -}; + from?: InputMaybe + locationIds?: InputMaybe>> + status?: InputMaybe + to?: InputMaybe + userId?: InputMaybe +} export type QueryLocationByIdArgs = { - locationId?: InputMaybe; -}; + locationId?: InputMaybe +} export type QueryLocationsByParentArgs = { - parentId?: InputMaybe; - type?: InputMaybe; -}; + parentId?: InputMaybe + type?: InputMaybe +} export type QueryQueryPersonByIdentifierArgs = { - identifier: Scalars["ID"]; -}; + identifier: Scalars['ID'] +} export type QueryQueryPersonByNidIdentifierArgs = { - country?: InputMaybe; - dob?: InputMaybe; - nid?: InputMaybe; -}; + country?: InputMaybe + dob?: InputMaybe + nid?: InputMaybe +} export type QueryQueryRegistrationByIdentifierArgs = { - identifier: Scalars["ID"]; -}; + identifier: Scalars['ID'] +} export type QuerySearchBirthRegistrationsArgs = { - fromDate?: InputMaybe; - toDate?: InputMaybe; -}; + fromDate?: InputMaybe + toDate?: InputMaybe +} export type QuerySearchDeathRegistrationsArgs = { - fromDate?: InputMaybe; - toDate?: InputMaybe; -}; + fromDate?: InputMaybe + toDate?: InputMaybe +} export type QuerySearchEventsArgs = { - advancedSearchParameters: AdvancedSearchParametersInput; - count?: InputMaybe; - skip?: InputMaybe; - sort?: InputMaybe; - sortColumn?: InputMaybe; - userId?: InputMaybe; -}; + advancedSearchParameters: AdvancedSearchParametersInput + count?: InputMaybe + skip?: InputMaybe + sort?: InputMaybe + sortColumn?: InputMaybe + userId?: InputMaybe +} export type QuerySearchFieldAgentsArgs = { - count?: InputMaybe; - event?: InputMaybe; - language?: InputMaybe; - locationId?: InputMaybe; - primaryOfficeId?: InputMaybe; - skip?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - timeEnd: Scalars["String"]; - timeStart: Scalars["String"]; -}; + count?: InputMaybe + event?: InputMaybe + language?: InputMaybe + locationId?: InputMaybe + primaryOfficeId?: InputMaybe + skip?: InputMaybe + sort?: InputMaybe + status?: InputMaybe + timeEnd: Scalars['String'] + timeStart: Scalars['String'] +} export type QuerySearchUsersArgs = { - count?: InputMaybe; - email?: InputMaybe; - locationId?: InputMaybe; - mobile?: InputMaybe; - primaryOfficeId?: InputMaybe; - skip?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - systemRole?: InputMaybe; - username?: InputMaybe; -}; + count?: InputMaybe + email?: InputMaybe + locationId?: InputMaybe + mobile?: InputMaybe + primaryOfficeId?: InputMaybe + skip?: InputMaybe + sort?: InputMaybe + status?: InputMaybe + systemRole?: InputMaybe + username?: InputMaybe +} export type QueryVerifyPasswordByIdArgs = { - id: Scalars["String"]; - password: Scalars["String"]; -}; + id: Scalars['String'] + password: Scalars['String'] +} export type QuestionnaireQuestion = { - __typename?: "QuestionnaireQuestion"; - fieldId?: Maybe; - value?: Maybe; -}; + __typename?: 'QuestionnaireQuestion' + fieldId?: Maybe + value?: Maybe +} export type QuestionnaireQuestionInput = { - fieldId?: InputMaybe; - value?: InputMaybe; -}; + fieldId?: InputMaybe + value?: InputMaybe +} -export type RecordDetails = BirthRegistration | DeathRegistration; +export type RecordDetails = BirthRegistration | DeathRegistration export enum RegAction { - ApprovedCorrection = "APPROVED_CORRECTION", - Assigned = "ASSIGNED", - Corrected = "CORRECTED", - Downloaded = "DOWNLOADED", - FlaggedAsPotentialDuplicate = "FLAGGED_AS_POTENTIAL_DUPLICATE", - MarkedAsDuplicate = "MARKED_AS_DUPLICATE", - MarkedAsNotDuplicate = "MARKED_AS_NOT_DUPLICATE", - Reinstated = "REINSTATED", - RejectedCorrection = "REJECTED_CORRECTION", - RequestedCorrection = "REQUESTED_CORRECTION", - Unassigned = "UNASSIGNED", - Verified = "VERIFIED", - Viewed = "VIEWED", + Assigned = 'ASSIGNED', + Downloaded = 'DOWNLOADED', + FlaggedAsPotentialDuplicate = 'FLAGGED_AS_POTENTIAL_DUPLICATE', + MarkedAsDuplicate = 'MARKED_AS_DUPLICATE', + MarkedAsNotDuplicate = 'MARKED_AS_NOT_DUPLICATE', + Reinstated = 'REINSTATED', + RequestedCorrection = 'REQUESTED_CORRECTION', + Unassigned = 'UNASSIGNED', + Verified = 'VERIFIED', + Viewed = 'VIEWED' } export enum RegStatus { - Archived = "ARCHIVED", - Certified = "CERTIFIED", - CorrectionRequested = "CORRECTION_REQUESTED", - DeclarationUpdated = "DECLARATION_UPDATED", - Declared = "DECLARED", - InProgress = "IN_PROGRESS", - Issued = "ISSUED", - Registered = "REGISTERED", - Rejected = "REJECTED", - Validated = "VALIDATED", - WaitingValidation = "WAITING_VALIDATION", + Archived = 'ARCHIVED', + Certified = 'CERTIFIED', + DeclarationUpdated = 'DECLARATION_UPDATED', + Declared = 'DECLARED', + InProgress = 'IN_PROGRESS', + Issued = 'ISSUED', + Registered = 'REGISTERED', + Rejected = 'REJECTED', + Validated = 'VALIDATED', + WaitingValidation = 'WAITING_VALIDATION' } export type RegWorkflow = { - __typename?: "RegWorkflow"; - comments?: Maybe>>; - id: Scalars["ID"]; - location?: Maybe; - office?: Maybe; - reason?: Maybe; - timeLogged?: Maybe; - timestamp?: Maybe; - type?: Maybe; - user?: Maybe; -}; + __typename?: 'RegWorkflow' + comments?: Maybe>> + id: Scalars['ID'] + location?: Maybe + office?: Maybe + reason?: Maybe + timeLogged?: Maybe + timestamp?: Maybe + type?: Maybe + user?: Maybe +} export type RegWorkflowInput = { - comments?: InputMaybe>>; - location?: InputMaybe; - reason?: InputMaybe; - timeLoggedMS?: InputMaybe; - timestamp?: InputMaybe; - type?: InputMaybe; - user?: InputMaybe; -}; + comments?: InputMaybe>> + location?: InputMaybe + reason?: InputMaybe + timeLoggedMS?: InputMaybe + timestamp?: InputMaybe + type?: InputMaybe + user?: InputMaybe +} export type Registration = { - __typename?: "Registration"; - _fhirID?: Maybe; - assignment?: Maybe; - attachments?: Maybe>>; - book?: Maybe; - brideSignature?: Maybe; - brideSignatureURI?: Maybe; - certificates?: Maybe>>; - contact?: Maybe; - contactEmail?: Maybe; - contactPhoneNumber?: Maybe; - contactRelationship?: Maybe; - draftId?: Maybe; - duplicates?: Maybe>>; - groomSignature?: Maybe; - groomSignatureURI?: Maybe; - id?: Maybe; - inCompleteFields?: Maybe; - informantType?: Maybe; - informantsSignature?: Maybe; - informantsSignatureURI?: Maybe; - mosipAid?: Maybe; - otherInformantType?: Maybe; - page?: Maybe; - paperFormID?: Maybe; - registrationNumber?: Maybe; - status?: Maybe>>; - trackingId?: Maybe; - type?: Maybe; - witnessOneSignature?: Maybe; - witnessOneSignatureURI?: Maybe; - witnessTwoSignature?: Maybe; - witnessTwoSignatureURI?: Maybe; -}; + __typename?: 'Registration' + _fhirID?: Maybe + assignment?: Maybe + attachments?: Maybe>> + book?: Maybe + brideSignature?: Maybe + brideSignatureURI?: Maybe + certificates?: Maybe>> + contact?: Maybe + contactEmail?: Maybe + contactPhoneNumber?: Maybe + contactRelationship?: Maybe + draftId?: Maybe + duplicates?: Maybe>> + groomSignature?: Maybe + groomSignatureURI?: Maybe + id?: Maybe + inCompleteFields?: Maybe + informantType?: Maybe + informantsSignature?: Maybe + informantsSignatureURI?: Maybe + mosipAid?: Maybe + otherInformantType?: Maybe + page?: Maybe + paperFormID?: Maybe + registrationNumber?: Maybe + status?: Maybe>> + trackingId?: Maybe + type?: Maybe + witnessOneSignature?: Maybe + witnessOneSignatureURI?: Maybe + witnessTwoSignature?: Maybe + witnessTwoSignatureURI?: Maybe +} export type RegistrationCountResult = { - __typename?: "RegistrationCountResult"; - results: Array>; - total: Scalars["Int"]; -}; + __typename?: 'RegistrationCountResult' + results: Array> + total: Scalars['Int'] +} export type RegistrationInput = { - _fhirID?: InputMaybe; - attachments?: InputMaybe>; - book?: InputMaybe; - brideSignature?: InputMaybe; - certificates?: InputMaybe>>; - contactEmail?: InputMaybe; - contactPhoneNumber?: InputMaybe; - correction?: InputMaybe; - draftId?: InputMaybe; - groomSignature?: InputMaybe; - inCompleteFields?: InputMaybe; - informantType?: InputMaybe; - informantsSignature?: InputMaybe; - location?: InputMaybe; - mosipAid?: InputMaybe; - otherInformantType?: InputMaybe; - page?: InputMaybe; - paperFormID?: InputMaybe; - registrationNumber?: InputMaybe; - status?: InputMaybe>>; - trackingId?: InputMaybe; - type?: InputMaybe; - witnessOneSignature?: InputMaybe; - witnessTwoSignature?: InputMaybe; -}; + _fhirID?: InputMaybe + attachments?: InputMaybe> + book?: InputMaybe + brideSignature?: InputMaybe + certificates?: InputMaybe>> + contactEmail?: InputMaybe + contactPhoneNumber?: InputMaybe + correction?: InputMaybe + draftId?: InputMaybe + groomSignature?: InputMaybe + inCompleteFields?: InputMaybe + informantType?: InputMaybe + informantsSignature?: InputMaybe + location?: InputMaybe + mosipAid?: InputMaybe + otherInformantType?: InputMaybe + page?: InputMaybe + paperFormID?: InputMaybe + registrationNumber?: InputMaybe + status?: InputMaybe>> + trackingId?: InputMaybe + type?: InputMaybe + witnessOneSignature?: InputMaybe + witnessTwoSignature?: InputMaybe +} export type RegistrationSearchSet = { - __typename?: "RegistrationSearchSet"; - assignment?: Maybe; - comment?: Maybe; - contactNumber?: Maybe; - contactRelationship?: Maybe; - createdAt?: Maybe; - dateOfDeclaration?: Maybe; - duplicates?: Maybe>>; - eventLocationId?: Maybe; - modifiedAt?: Maybe; - reason?: Maybe; - registeredLocationId?: Maybe; - registrationNumber?: Maybe; - status?: Maybe; - trackingId?: Maybe; -}; + __typename?: 'RegistrationSearchSet' + assignment?: Maybe + comment?: Maybe + contactNumber?: Maybe + contactRelationship?: Maybe + createdAt?: Maybe + dateOfDeclaration?: Maybe + duplicates?: Maybe>> + eventLocationId?: Maybe + modifiedAt?: Maybe + reason?: Maybe + registeredLocationId?: Maybe + registrationNumber?: Maybe + status?: Maybe + trackingId?: Maybe +} export enum RegistrationType { - Birth = "BIRTH", - Death = "DEATH", - Marriage = "MARRIAGE", + Birth = 'BIRTH', + Death = 'DEATH', + Marriage = 'MARRIAGE' } export type Reinstated = { - __typename?: "Reinstated"; - registrationStatus?: Maybe; - taskEntryResourceID: Scalars["ID"]; -}; + __typename?: 'Reinstated' + registrationStatus?: Maybe + taskEntryResourceID: Scalars['ID'] +} export type RelatedPerson = { - __typename?: "RelatedPerson"; - _fhirID?: Maybe; - _fhirIDPatient?: Maybe; - address?: Maybe>>; - affidavit?: Maybe>>; - age?: Maybe; - ageOfIndividualInYears?: Maybe; - birthDate?: Maybe; - dateOfMarriage?: Maybe; - deceased?: Maybe; - detailsExist?: Maybe; - educationalAttainment?: Maybe; - exactDateOfBirthUnknown?: Maybe; - gender?: Maybe; - id?: Maybe; - identifier?: Maybe>>; - maritalStatus?: Maybe; - multipleBirth?: Maybe; - name?: Maybe>>; - nationality?: Maybe>>; - occupation?: Maybe; - otherRelationship?: Maybe; - photo?: Maybe>>; - reasonNotApplying?: Maybe; - relationship?: Maybe; - telecom?: Maybe>>; -}; + __typename?: 'RelatedPerson' + _fhirID?: Maybe + _fhirIDPatient?: Maybe + address?: Maybe>> + affidavit?: Maybe>> + age?: Maybe + ageOfIndividualInYears?: Maybe + birthDate?: Maybe + dateOfMarriage?: Maybe + deceased?: Maybe + detailsExist?: Maybe + educationalAttainment?: Maybe + exactDateOfBirthUnknown?: Maybe + gender?: Maybe + id?: Maybe + identifier?: Maybe>> + maritalStatus?: Maybe + multipleBirth?: Maybe + name?: Maybe>> + nationality?: Maybe>> + occupation?: Maybe + otherRelationship?: Maybe + photo?: Maybe>> + reasonNotApplying?: Maybe + relationship?: Maybe + telecom?: Maybe>> +} export type RelatedPersonInput = { - _fhirID?: InputMaybe; - _fhirIDPatient?: InputMaybe; - address?: InputMaybe>>; - affidavit?: InputMaybe>; - age?: InputMaybe; - ageOfIndividualInYears?: InputMaybe; - birthDate?: InputMaybe; - dateOfMarriage?: InputMaybe; - deceased?: InputMaybe; - detailsExist?: InputMaybe; - educationalAttainment?: InputMaybe; - exactDateOfBirthUnknown?: InputMaybe; - gender?: InputMaybe; - id?: InputMaybe; - identifier?: InputMaybe>>; - maritalStatus?: InputMaybe; - multipleBirth?: InputMaybe; - name?: InputMaybe>>; - nationality?: InputMaybe>>; - occupation?: InputMaybe; - otherRelationship?: InputMaybe; - photo?: InputMaybe>; - reasonNotApplying?: InputMaybe; - relationship?: InputMaybe; - telecom?: InputMaybe>>; -}; + _fhirID?: InputMaybe + _fhirIDPatient?: InputMaybe + address?: InputMaybe>> + affidavit?: InputMaybe> + age?: InputMaybe + ageOfIndividualInYears?: InputMaybe + birthDate?: InputMaybe + dateOfMarriage?: InputMaybe + deceased?: InputMaybe + detailsExist?: InputMaybe + educationalAttainment?: InputMaybe + exactDateOfBirthUnknown?: InputMaybe + gender?: InputMaybe + id?: InputMaybe + identifier?: InputMaybe>> + maritalStatus?: InputMaybe + multipleBirth?: InputMaybe + name?: InputMaybe>> + nationality?: InputMaybe>> + occupation?: InputMaybe + otherRelationship?: InputMaybe + photo?: InputMaybe> + reasonNotApplying?: InputMaybe + relationship?: InputMaybe + telecom?: InputMaybe>> +} export type RemoveBookmarkedSeachInput = { - searchId: Scalars["String"]; - userId: Scalars["String"]; -}; + searchId: Scalars['String'] + userId: Scalars['String'] +} export type Response = { - __typename?: "Response"; - roleIdMap: Scalars["Map"]; -}; + __typename?: 'Response' + roleIdMap: Scalars['Map'] +} export type Role = { - __typename?: "Role"; - _id: Scalars["ID"]; - labels: Array; -}; + __typename?: 'Role' + _id: Scalars['ID'] + labels: Array +} export type RoleInput = { - _id?: InputMaybe; - labels: Array; -}; + _id?: InputMaybe + labels: Array +} export type RoleLabel = { - __typename?: "RoleLabel"; - label: Scalars["String"]; - lang: Scalars["String"]; -}; + __typename?: 'RoleLabel' + label: Scalars['String'] + lang: Scalars['String'] +} export type SmsNotification = { - __typename?: "SMSNotification"; - createdAt: Scalars["String"]; - enabled: Scalars["Boolean"]; - id?: Maybe; - name: Scalars["String"]; - updatedAt: Scalars["String"]; -}; + __typename?: 'SMSNotification' + createdAt: Scalars['String'] + enabled: Scalars['Boolean'] + id?: Maybe + name: Scalars['String'] + updatedAt: Scalars['String'] +} export type SmsNotificationInput = { - enabled: Scalars["Boolean"]; - id: Scalars["String"]; - name: Scalars["String"]; -}; + enabled: Scalars['Boolean'] + id: Scalars['String'] + name: Scalars['String'] +} export type SearchFieldAgentResponse = { - __typename?: "SearchFieldAgentResponse"; - avatar?: Maybe; - averageTimeForDeclaredDeclarations?: Maybe; - creationDate?: Maybe; - fullName?: Maybe; - practitionerId?: Maybe; - primaryOfficeId?: Maybe; - role?: Maybe; - status?: Maybe; - totalNumberOfDeclarationStarted?: Maybe; - totalNumberOfInProgressAppStarted?: Maybe; - totalNumberOfRejectedDeclarations?: Maybe; -}; + __typename?: 'SearchFieldAgentResponse' + avatar?: Maybe + averageTimeForDeclaredDeclarations?: Maybe + creationDate?: Maybe + fullName?: Maybe + practitionerId?: Maybe + primaryOfficeId?: Maybe + role?: Maybe + status?: Maybe + totalNumberOfDeclarationStarted?: Maybe + totalNumberOfInProgressAppStarted?: Maybe + totalNumberOfRejectedDeclarations?: Maybe +} export type SearchFieldAgentResult = { - __typename?: "SearchFieldAgentResult"; - results?: Maybe>>; - totalItems?: Maybe; -}; + __typename?: 'SearchFieldAgentResult' + results?: Maybe>> + totalItems?: Maybe +} export type SearchUserResult = { - __typename?: "SearchUserResult"; - results?: Maybe>>; - totalItems?: Maybe; -}; + __typename?: 'SearchUserResult' + results?: Maybe>> + totalItems?: Maybe +} export type SecurityQuestionAnswer = { - answer?: InputMaybe; - questionKey?: InputMaybe; -}; + answer?: InputMaybe + questionKey?: InputMaybe +} export type Signature = { - __typename?: "Signature"; - data?: Maybe; - type?: Maybe; -}; + __typename?: 'Signature' + data?: Maybe + type?: Maybe +} export type SignatureInput = { - data: Scalars["String"]; - type?: InputMaybe; -}; + data: Scalars['String'] + type?: InputMaybe +} export enum Status { - Active = "active", - Deactivated = "deactivated", - Disabled = "disabled", - Pending = "pending", + Active = 'active', + Deactivated = 'deactivated', + Disabled = 'disabled', + Pending = 'pending' } export type StatusReason = { - __typename?: "StatusReason"; - text?: Maybe; -}; + __typename?: 'StatusReason' + text?: Maybe +} export type StatusWiseRegistrationCount = { - __typename?: "StatusWiseRegistrationCount"; - count: Scalars["Int"]; - status: Scalars["String"]; -}; + __typename?: 'StatusWiseRegistrationCount' + count: Scalars['Int'] + status: Scalars['String'] +} export type System = { - __typename?: "System"; - _id: Scalars["ID"]; - clientId: Scalars["ID"]; - integratingSystemType?: Maybe; - name: Scalars["String"]; - settings?: Maybe; - shaSecret: Scalars["ID"]; - status: SystemStatus; - type: SystemType; -}; + __typename?: 'System' + _id: Scalars['ID'] + clientId: Scalars['ID'] + integratingSystemType?: Maybe + name: Scalars['String'] + settings?: Maybe + shaSecret: Scalars['ID'] + status: SystemStatus + type: SystemType +} export type SystemInput = { - integratingSystemType?: InputMaybe; - name: Scalars["String"]; - settings?: InputMaybe; - type: SystemType; -}; + integratingSystemType?: InputMaybe + name: Scalars['String'] + settings?: InputMaybe + type: SystemType +} export type SystemRole = { - __typename?: "SystemRole"; - active: Scalars["Boolean"]; - id: Scalars["ID"]; - roles: Array; - value: SystemRoleType; -}; + __typename?: 'SystemRole' + active: Scalars['Boolean'] + id: Scalars['ID'] + roles: Array + value: SystemRoleType +} export type SystemRoleInput = { - active?: InputMaybe; - id: Scalars["ID"]; - roles?: InputMaybe>; - value?: InputMaybe; -}; + active?: InputMaybe + id: Scalars['ID'] + roles?: InputMaybe> + value?: InputMaybe +} export enum SystemRoleType { - FieldAgent = "FIELD_AGENT", - LocalRegistrar = "LOCAL_REGISTRAR", - LocalSystemAdmin = "LOCAL_SYSTEM_ADMIN", - NationalRegistrar = "NATIONAL_REGISTRAR", - NationalSystemAdmin = "NATIONAL_SYSTEM_ADMIN", - PerformanceManagement = "PERFORMANCE_MANAGEMENT", - RegistrationAgent = "REGISTRATION_AGENT", + FieldAgent = 'FIELD_AGENT', + LocalRegistrar = 'LOCAL_REGISTRAR', + LocalSystemAdmin = 'LOCAL_SYSTEM_ADMIN', + NationalRegistrar = 'NATIONAL_REGISTRAR', + NationalSystemAdmin = 'NATIONAL_SYSTEM_ADMIN', + PerformanceManagement = 'PERFORMANCE_MANAGEMENT', + RegistrationAgent = 'REGISTRATION_AGENT' } export type SystemSecret = { - __typename?: "SystemSecret"; - clientSecret: Scalars["ID"]; - system: System; -}; + __typename?: 'SystemSecret' + clientSecret: Scalars['ID'] + system: System +} export type SystemSettings = { - __typename?: "SystemSettings"; - dailyQuota?: Maybe; - openIdProviderBaseUrl?: Maybe; - openIdProviderClaims?: Maybe; - openIdProviderClientId?: Maybe; - webhook?: Maybe>; -}; + __typename?: 'SystemSettings' + dailyQuota?: Maybe + openIdProviderBaseUrl?: Maybe + openIdProviderClaims?: Maybe + openIdProviderClientId?: Maybe + webhook?: Maybe> +} export type SystemSettingsInput = { - dailyQuota?: InputMaybe; - webhook?: InputMaybe>>; -}; + dailyQuota?: InputMaybe + webhook?: InputMaybe>> +} export enum SystemStatus { - Active = "active", - Deactivated = "deactivated", + Active = 'active', + Deactivated = 'deactivated' } export enum SystemType { - Health = "HEALTH", - NationalId = "NATIONAL_ID", - RecordSearch = "RECORD_SEARCH", - Webhook = "WEBHOOK", + Health = 'HEALTH', + NationalId = 'NATIONAL_ID', + RecordSearch = 'RECORD_SEARCH', + Webhook = 'WEBHOOK' } export type TotalMetricsByLocation = { - __typename?: "TotalMetricsByLocation"; - results: Array; - total?: Maybe; -}; + __typename?: 'TotalMetricsByLocation' + results: Array + total?: Maybe +} export type TotalMetricsByRegistrar = { - __typename?: "TotalMetricsByRegistrar"; - results: Array; - total?: Maybe; -}; + __typename?: 'TotalMetricsByRegistrar' + results: Array + total?: Maybe +} export type TotalMetricsByTime = { - __typename?: "TotalMetricsByTime"; - results: Array; - total?: Maybe; -}; + __typename?: 'TotalMetricsByTime' + results: Array + total?: Maybe +} export type TotalMetricsResult = { - __typename?: "TotalMetricsResult"; - estimated: Estimation; - results: Array; -}; + __typename?: 'TotalMetricsResult' + estimated: Estimation + results: Array +} export type TotalVsExport = { - __typename?: "TotalVSExport"; - results?: Maybe>; -}; + __typename?: 'TotalVSExport' + results?: Maybe> +} export type UpdatePermissionsInput = { - clientId: Scalars["String"]; - webhook: Array; -}; + clientId: Scalars['String'] + webhook: Array +} export type User = { - __typename?: "User"; - avatar?: Maybe; - catchmentArea?: Maybe>; - creationDate: Scalars["String"]; - device?: Maybe; - email?: Maybe; - id: Scalars["ID"]; - identifier?: Maybe; - localRegistrar?: Maybe; - mobile?: Maybe; - name: Array; - practitionerId: Scalars["String"]; - primaryOffice?: Maybe; - role: Role; - searches?: Maybe>; - signature?: Maybe; - status: Status; - systemRole: SystemRoleType; - underInvestigation?: Maybe; - userMgntUserID: Scalars["ID"]; - username?: Maybe; -}; + __typename?: 'User' + avatar?: Maybe + catchmentArea?: Maybe> + creationDate: Scalars['String'] + device?: Maybe + email?: Maybe + id: Scalars['ID'] + identifier?: Maybe + localRegistrar?: Maybe + mobile?: Maybe + name: Array + practitionerId: Scalars['String'] + primaryOffice?: Maybe + role: Role + searches?: Maybe> + signature?: Maybe + status: Status + systemRole: SystemRoleType + underInvestigation?: Maybe + userMgntUserID: Scalars['ID'] + username?: Maybe +} export type UserAuditLogItem = AuditLogItemBase & { - __typename?: "UserAuditLogItem"; - action: Scalars["String"]; - ipAddress: Scalars["String"]; - practitionerId: Scalars["String"]; - time: Scalars["String"]; - userAgent: Scalars["String"]; -}; + __typename?: 'UserAuditLogItem' + action: Scalars['String'] + ipAddress: Scalars['String'] + practitionerId: Scalars['String'] + time: Scalars['String'] + userAgent: Scalars['String'] +} export type UserAuditLogItemWithComposition = AuditLogItemBase & { - __typename?: "UserAuditLogItemWithComposition"; - action: Scalars["String"]; - data: AdditionalIdWithCompositionId; - ipAddress: Scalars["String"]; - practitionerId: Scalars["String"]; - time: Scalars["String"]; - userAgent: Scalars["String"]; -}; + __typename?: 'UserAuditLogItemWithComposition' + action: Scalars['String'] + data: AdditionalIdWithCompositionId + ipAddress: Scalars['String'] + practitionerId: Scalars['String'] + time: Scalars['String'] + userAgent: Scalars['String'] +} export type UserAuditLogResultItem = | UserAuditLogItem - | UserAuditLogItemWithComposition; + | UserAuditLogItemWithComposition export type UserAuditLogResultSet = { - __typename?: "UserAuditLogResultSet"; - results: Array; - total: Scalars["Int"]; -}; + __typename?: 'UserAuditLogResultSet' + results: Array + total: Scalars['Int'] +} export type UserIdentifierInput = { - system?: InputMaybe; - use?: InputMaybe; - value?: InputMaybe; -}; + system?: InputMaybe + use?: InputMaybe + value?: InputMaybe +} export type UserInfo = { - __typename?: "UserInfo"; - districtFhirId?: Maybe; - locationLevel3FhirId?: Maybe; - oidpUserInfo?: Maybe; - stateFhirId?: Maybe; -}; + __typename?: 'UserInfo' + districtFhirId?: Maybe + locationLevel3FhirId?: Maybe + oidpUserInfo?: Maybe + stateFhirId?: Maybe +} export type UserInput = { - catchmentArea?: InputMaybe>>; - device?: InputMaybe; - email?: InputMaybe; - id?: InputMaybe; - identifier?: InputMaybe>>; - mobile?: InputMaybe; - name: Array; - password?: InputMaybe; - primaryOffice?: InputMaybe; - role?: InputMaybe; - signature?: InputMaybe; - status?: InputMaybe; - systemRole: SystemRoleType; - username?: InputMaybe; -}; + catchmentArea?: InputMaybe>> + device?: InputMaybe + email?: InputMaybe + id?: InputMaybe + identifier?: InputMaybe>> + mobile?: InputMaybe + name: Array + password?: InputMaybe + primaryOffice?: InputMaybe + role?: InputMaybe + signature?: InputMaybe + status?: InputMaybe + systemRole: SystemRoleType + username?: InputMaybe +} export type VsExport = { - __typename?: "VSExport"; - createdOn: Scalars["Date"]; - endDate: Scalars["Date"]; - event: Scalars["String"]; - fileSize: Scalars["String"]; - startDate: Scalars["Date"]; - url: Scalars["String"]; -}; + __typename?: 'VSExport' + createdOn: Scalars['Date'] + endDate: Scalars['Date'] + event: Scalars['String'] + fileSize: Scalars['String'] + startDate: Scalars['Date'] + url: Scalars['String'] +} export type VerifyPasswordResult = { - __typename?: "VerifyPasswordResult"; - id?: Maybe; - mobile?: Maybe; - scrope?: Maybe>>; - status?: Maybe; - username?: Maybe; -}; + __typename?: 'VerifyPasswordResult' + id?: Maybe + mobile?: Maybe + scrope?: Maybe>> + status?: Maybe + username?: Maybe +} export type WebhookInput = { - event: Scalars["String"]; - permissions: Array>; -}; + event: Scalars['String'] + permissions: Array> +} export type WebhookPermission = { - __typename?: "WebhookPermission"; - event: Scalars["String"]; - permissions: Array; -}; + __typename?: 'WebhookPermission' + event: Scalars['String'] + permissions: Array +} export type SearchEventsQueryVariables = Exact<{ - advancedSearchParameters: AdvancedSearchParametersInput; - sort?: InputMaybe; - count?: InputMaybe; - skip?: InputMaybe; -}>; + advancedSearchParameters: AdvancedSearchParametersInput + sort?: InputMaybe + count?: InputMaybe + skip?: InputMaybe +}> export type SearchEventsQuery = { - __typename?: "Query"; + __typename?: 'Query' searchEvents?: { - __typename: "EventSearchResultSet"; - totalItems?: number | null; + __typename?: 'EventSearchResultSet' + totalItems?: number | null results?: Array< - | { - __typename: "BirthEventSearchSet"; - dateOfBirth?: any | null; - id: string; - type?: string | null; - childName?: Array<{ - __typename: "HumanName"; - firstNames?: string | null; - familyName?: string | null; - use?: string | null; - } | null> | null; - registration?: { - __typename: "RegistrationSearchSet"; - status?: string | null; - contactNumber?: string | null; - trackingId?: string | null; - registrationNumber?: string | null; - registeredLocationId?: string | null; - duplicates?: Array | null; - createdAt?: string | null; - modifiedAt?: string | null; - assignment?: { - __typename: "AssignmentData"; - userId?: string | null; - firstName?: string | null; - lastName?: string | null; - officeName?: string | null; - } | null; - } | null; - operationHistories?: Array<{ - __typename: "OperationHistorySearchSet"; - operationType?: string | null; - operatedOn?: any | null; - operatorRole?: string | null; - operatorOfficeName?: string | null; - operatorOfficeAlias?: Array | null; - notificationFacilityName?: string | null; - notificationFacilityAlias?: Array | null; - rejectReason?: string | null; - rejectComment?: string | null; - operatorName?: Array<{ - __typename: "HumanName"; - firstNames?: string | null; - familyName?: string | null; - use?: string | null; - } | null> | null; - } | null> | null; - } - | { - __typename: "DeathEventSearchSet"; - dateOfDeath?: any | null; - id: string; - type?: string | null; - deceasedName?: Array<{ - __typename: "HumanName"; - firstNames?: string | null; - familyName?: string | null; - use?: string | null; - } | null> | null; - registration?: { - __typename: "RegistrationSearchSet"; - status?: string | null; - contactNumber?: string | null; - trackingId?: string | null; - registrationNumber?: string | null; - registeredLocationId?: string | null; - duplicates?: Array | null; - createdAt?: string | null; - modifiedAt?: string | null; - assignment?: { - __typename: "AssignmentData"; - userId?: string | null; - firstName?: string | null; - lastName?: string | null; - officeName?: string | null; - } | null; - } | null; - operationHistories?: Array<{ - __typename: "OperationHistorySearchSet"; - operationType?: string | null; - operatedOn?: any | null; - operatorRole?: string | null; - operatorOfficeName?: string | null; - operatorOfficeAlias?: Array | null; - notificationFacilityName?: string | null; - notificationFacilityAlias?: Array | null; - rejectReason?: string | null; - rejectComment?: string | null; - operatorName?: Array<{ - __typename: "HumanName"; - firstNames?: string | null; - familyName?: string | null; - use?: string | null; - } | null> | null; - } | null> | null; - } - | { - __typename: "MarriageEventSearchSet"; - id: string; - type?: string | null; - registration?: { - __typename: "RegistrationSearchSet"; - status?: string | null; - contactNumber?: string | null; - trackingId?: string | null; - registrationNumber?: string | null; - registeredLocationId?: string | null; - duplicates?: Array | null; - createdAt?: string | null; - modifiedAt?: string | null; - assignment?: { - __typename: "AssignmentData"; - userId?: string | null; - firstName?: string | null; - lastName?: string | null; - officeName?: string | null; - } | null; - } | null; - operationHistories?: Array<{ - __typename: "OperationHistorySearchSet"; - operationType?: string | null; - operatedOn?: any | null; - operatorRole?: string | null; - operatorOfficeName?: string | null; - operatorOfficeAlias?: Array | null; - notificationFacilityName?: string | null; - notificationFacilityAlias?: Array | null; - rejectReason?: string | null; - rejectComment?: string | null; - operatorName?: Array<{ - __typename: "HumanName"; - firstNames?: string | null; - familyName?: string | null; - use?: string | null; - } | null> | null; - } | null> | null; - } + | { __typename?: 'BirthEventSearchSet'; id: string } + | { __typename?: 'DeathEventSearchSet'; id: string } + | { __typename?: 'MarriageEventSearchSet'; id: string } | null - > | null; - } | null; -}; + > | null + } | null +} + +export type FetchRegistrationQueryVariables = Exact<{ + id: Scalars['ID'] +}> + +export type FetchRegistrationQuery = { + __typename?: 'Query' + fetchRegistration?: + | { + __typename: 'BirthRegistration' + id: string + child?: { + __typename?: 'Person' + id?: string | null + name?: Array<{ + __typename?: 'HumanName' + use?: string | null + firstNames?: string | null + familyName?: string | null + } | null> | null + } | null + registration?: { + __typename?: 'Registration' + id?: string | null + type?: RegistrationType | null + trackingId?: string | null + status?: Array<{ + __typename?: 'RegWorkflow' + type?: RegStatus | null + } | null> | null + duplicates?: Array<{ + __typename?: 'DuplicatesInfo' + compositionId?: string | null + trackingId?: string | null + } | null> | null + assignment?: { + __typename?: 'AssignmentData' + userId?: string | null + firstName?: string | null + lastName?: string | null + officeName?: string | null + avatarURL: string + } | null + } | null + } + | { + __typename: 'DeathRegistration' + id: string + deceased?: { + __typename?: 'Person' + id?: string | null + name?: Array<{ + __typename?: 'HumanName' + use?: string | null + firstNames?: string | null + familyName?: string | null + } | null> | null + } | null + eventLocation?: { + __typename: 'Location' + id: string + type?: string | null + address?: { + __typename?: 'Address' + type?: string | null + line?: Array | null + district?: string | null + state?: string | null + city?: string | null + postalCode?: string | null + country?: string | null + } | null + } | null + registration?: { + __typename?: 'Registration' + id?: string | null + type?: RegistrationType | null + trackingId?: string | null + status?: Array<{ + __typename?: 'RegWorkflow' + type?: RegStatus | null + } | null> | null + duplicates?: Array<{ + __typename?: 'DuplicatesInfo' + compositionId?: string | null + trackingId?: string | null + } | null> | null + assignment?: { + __typename?: 'AssignmentData' + userId?: string | null + firstName?: string | null + lastName?: string | null + officeName?: string | null + avatarURL: string + } | null + } | null + } + | { + __typename: 'MarriageRegistration' + id: string + bride?: { + __typename?: 'Person' + id?: string | null + dateOfMarriage?: any | null + name?: Array<{ + __typename?: 'HumanName' + use?: string | null + firstNames?: string | null + familyName?: string | null + } | null> | null + } | null + groom?: { + __typename?: 'Person' + id?: string | null + dateOfMarriage?: any | null + name?: Array<{ + __typename?: 'HumanName' + use?: string | null + firstNames?: string | null + familyName?: string | null + } | null> | null + } | null + registration?: { + __typename?: 'Registration' + id?: string | null + type?: RegistrationType | null + trackingId?: string | null + status?: Array<{ + __typename?: 'RegWorkflow' + type?: RegStatus | null + } | null> | null + duplicates?: Array<{ + __typename?: 'DuplicatesInfo' + compositionId?: string | null + trackingId?: string | null + } | null> | null + assignment?: { + __typename?: 'AssignmentData' + userId?: string | null + firstName?: string | null + lastName?: string | null + officeName?: string | null + avatarURL: string + } | null + } | null + } + | null +} diff --git a/packages/opencrvs-api/src/index.ts b/packages/opencrvs-api/src/index.ts index 9c175de..0526c28 100644 --- a/packages/opencrvs-api/src/index.ts +++ b/packages/opencrvs-api/src/index.ts @@ -2,21 +2,21 @@ import { OPENCRVS_AUTH_URL, OPENCRVS_CLIENT_ID, OPENCRVS_CLIENT_SECRET, - OPENCRVS_GATEWAY_URL, - OPENCRVS_RECORD_SEARCH_URL, -} from "./constants"; -import { AuthorizationError } from "./error"; + OPENCRVS_GATEWAY_URL +} from './constants' +import { AuthorizationError } from './error' import { - type EventSearchResultSet, - type SearchEventsQueryVariables, -} from "./gateway"; -import { print } from "graphql"; -import gql from "graphql-tag"; + type SearchEventsQuery, + type SearchEventsQueryVariables +} from './gateway' +import { print } from 'graphql' +import gql from 'graphql-tag' +import type { Registration } from './types' export const AUTHENTICATE_SYSTEM_CLIENT_URL = new URL( - "authenticateSystemClient", + 'authenticateSystemClient', OPENCRVS_AUTH_URL -); +) export async function authenticateClient( authenticateUrl = AUTHENTICATE_SYSTEM_CLIENT_URL, @@ -24,25 +24,25 @@ export async function authenticateClient( clientSecret = OPENCRVS_CLIENT_SECRET ) { const request = await fetch(authenticateUrl, { - method: "POST", + method: 'POST', headers: { - "Content-Type": "application/json", + 'Content-Type': 'application/json' }, body: JSON.stringify({ client_id: clientId, - client_secret: clientSecret, - }), - }); + client_secret: clientSecret + }) + }) if (!request.ok) { - throw new AuthorizationError(request.statusText); + throw new AuthorizationError(request.statusText) } - const response = (await request.json()) as { token: string }; - return response.token; + const response = (await request.json()) as { token: string } + return response.token } -export const SEARCH_EVENTS = print(gql` +export const SEARCH_EVENTS = gql` query searchEvents( $advancedSearchParameters: AdvancedSearchParametersInput! $sort: String @@ -58,94 +58,136 @@ export const SEARCH_EVENTS = print(gql` totalItems results { id + } + } + } +` + +export async function advancedRecordSearch( + token: string, + variables: SearchEventsQueryVariables, + searchUrl = OPENCRVS_GATEWAY_URL +) { + const request = await fetch(searchUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + }, + body: JSON.stringify({ + operationName: 'searchEvents', + variables, + query: print(SEARCH_EVENTS) + }) + }) + const response = await request.json() + return response.data.searchEvents as SearchEventsQuery['searchEvents'] +} + +export const FETCH_REGISTRATION = gql` + query fetchRegistration($id: ID!) { + fetchRegistration(id: $id) { + id + registration { + id type - registration { - status - contactNumber + trackingId + status { + type + } + duplicates { + compositionId trackingId - registrationNumber - registeredLocationId - duplicates - assignment { - userId - firstName - lastName - officeName - __typename - } - createdAt - modifiedAt - __typename } - operationHistories { - operationType - operatedOn - operatorRole - operatorName { + assignment { + userId + firstName + lastName + officeName + avatarURL + } + } + ... on BirthRegistration { + __typename + child { + id + name { + use firstNames familyName - use - __typename } - operatorOfficeName - operatorOfficeAlias - notificationFacilityName - notificationFacilityAlias - rejectReason - rejectComment - __typename } - ... on BirthEventSearchSet { - dateOfBirth - childName { + } + ... on DeathRegistration { + __typename + deceased { + id + name { + use firstNames familyName - use - __typename } + } + eventLocation { __typename + id + type + address { + type + line + district + state + city + postalCode + country + } } - ... on DeathEventSearchSet { - dateOfDeath - deceasedName { + } + ... on MarriageRegistration { + __typename + bride { + id + name { + use firstNames familyName + } + dateOfMarriage + } + groom { + id + name { use - __typename + firstNames + familyName } - __typename + dateOfMarriage } - __typename } - __typename } } -`); - -export const GATEWAY_URL = new URL( - "advancedRecordSearch", - OPENCRVS_RECORD_SEARCH_URL -); +` -export async function advancedRecordSearch( +export async function fetchRegistration( token: string, - variables: SearchEventsQueryVariables, - searchUrl = OPENCRVS_GATEWAY_URL + id: string, + gatewayUrl = OPENCRVS_GATEWAY_URL ) { - const request = await fetch(searchUrl, { - method: "POST", + const request = await fetch(gatewayUrl, { + method: 'POST', headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` }, body: JSON.stringify({ - operationName: "searchEvents", - variables, - query: SEARCH_EVENTS, - }), - }); - const response = await request.json(); - return response.data.searchEvents as EventSearchResultSet; + operationName: 'fetchRegistration', + variables: { id }, + query: print(FETCH_REGISTRATION) + }) + }) + const response = await request.json() + return response.data.fetchRegistration as Registration } -export * from "./gateway"; +export * from './types' +export { OPENCRVS_GATEWAY_URL } from './constants' diff --git a/packages/opencrvs-api/src/types.ts b/packages/opencrvs-api/src/types.ts new file mode 100644 index 0000000..1d33993 --- /dev/null +++ b/packages/opencrvs-api/src/types.ts @@ -0,0 +1,55 @@ +import { + type Person, + type BirthRegistration as BirthRegistrationWithOptionals, + type DeathRegistration as DeathRegistrationWithOptionals, + type MarriageRegistration, + type Scalars, + type Address, + type HumanName as HumanNameWithOptionals +} from './gateway' + +type RequireKeys = Required> & + Omit extends infer O + ? { [P in keyof O]: O[P] } + : never + +type HumanName = RequireKeys< + HumanNameWithOptionals, + 'firstNames' | 'familyName' | '__typename' +> + +interface Child extends Person { + __typename?: 'Person' + address: Address[] + age: Scalars['Float'] + ageOfIndividualInYears: Scalars['Int'] + birthDate: Scalars['String'] + gender: Scalars['String'] + id: Scalars['ID'] + name: [HumanName, ...HumanName[]] +} + +export interface BirthRegistration extends BirthRegistrationWithOptionals { + child: Child +} + +interface Deceased extends Person { + deceased: NonNullable + gender: Scalars['String'] + name: [HumanName, ...HumanName[]] +} + +export interface DeathRegistration extends DeathRegistrationWithOptionals { + deceased: Deceased +} + +export type Registration = + | BirthRegistration + | DeathRegistration + | MarriageRegistration + +export type { + MarriageRegistration, + IdentityType, + SearchEventsQueryVariables +} from './gateway' diff --git a/packages/opencrvs-api/tsconfig.json b/packages/opencrvs-api/tsconfig.json index 4280ce7..9536a0f 100644 --- a/packages/opencrvs-api/tsconfig.json +++ b/packages/opencrvs-api/tsconfig.json @@ -1,3 +1,3 @@ { "extends": "../../tsconfig.base.json" -} \ No newline at end of file +}