diff --git a/src/frontend/babel.config.cjs b/src/frontend/babel.config.cjs new file mode 100644 index 0000000000..4c4d7a7521 --- /dev/null +++ b/src/frontend/babel.config.cjs @@ -0,0 +1,8 @@ +/* eslint-disable */ +module.exports = { + presets: [ + ['@babel/preset-env', { targets: { node: 'current' } }], + '@babel/preset-typescript', + ], + plugins: ['module:@babel/plugin-transform-typescript'], +}; diff --git a/src/frontend/config/jest/cssTransform.cjs b/src/frontend/config/jest/cssTransform.cjs deleted file mode 100644 index 8f65114812..0000000000 --- a/src/frontend/config/jest/cssTransform.cjs +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -// This is a custom Jest transformer turning style imports into empty objects. -// http://facebook.github.io/jest/docs/en/webpack.html - -module.exports = { - process() { - return 'module.exports = {};'; - }, - getCacheKey() { - // The output is always the same. - return 'cssTransform'; - }, -}; diff --git a/src/frontend/config/jest/fileTransform.cjs b/src/frontend/config/jest/fileTransform.cjs deleted file mode 100644 index d58e92c501..0000000000 --- a/src/frontend/config/jest/fileTransform.cjs +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -const path = require('path'); - -module.exports = { - process(src, filename) { - const assetFilename = JSON.stringify(path.basename(filename)); - - if (filename.match(/\.svg$/)) { - const pascalCaseFilename = path - .parse(filename) - .name.replace(/(\w)(\w*)/g, function (g0, g1, g2) { - return g1.toUpperCase() + g2.toLowerCase(); - }); - const componentName = `Svg${pascalCaseFilename}`; - return { - code: `const React = require('react'); - module.exports = { - __esModule: true, - default: ${assetFilename}, - ReactComponent: forwardRef(function ${componentName}(props, ref) { - return { - $$typeof: Symbol.for('react.element'), - type: 'svg', - ref: ref, - key: null, - props: Object.assign({}, props, { - children: ${assetFilename} - }) - }; - }), - };`, - }; - } - - return { code: `module.exports = ${assetFilename};` }; - }, -}; diff --git a/src/frontend/data/schema.graphql b/src/frontend/data/schema.graphql index 84a56f95c6..9ba377c3d4 100644 --- a/src/frontend/data/schema.graphql +++ b/src/frontend/data/schema.graphql @@ -359,11 +359,10 @@ type BusinessAreaNode implements Node { deduplicationIgnoreWithdraw: Boolean! biometricDeduplicationThreshold: Float! customFields: JSONString! - businessAreaPartnerThrough: [PartnerRoleNode!]! children(offset: Int, before: String, after: String, first: Int, last: Int, id: UUID): UserBusinessAreaNodeConnection! dataCollectingTypes(offset: Int, before: String, after: String, first: Int, last: Int): DataCollectingTypeNodeConnection! partnerSet: [PartnerNode!]! - userRoles: [UserRoleNode!]! + roleAssignments: [UserRoleNode!]! householdSet(offset: Int, before: String, after: String, first: Int, last: Int): HouseholdNodeConnection! individualSet(offset: Int, before: String, after: String, first: Int, last: Int): IndividualNodeConnection! registrationdataimportSet(offset: Int, before: String, after: String, first: Int, last: Int): RegistrationDataImportNodeConnection! @@ -530,7 +529,7 @@ input CopyProgramInput { administrativeAreasOfImplementation: String businessAreaSlug: String dataCollectingTypeCode: String - partners: [ProgramPartnerThroughInput] + partners: [ProgramPartnerAccessInput] partnerAccess: String programmeCode: String pduFields: [PDUFieldInput] @@ -669,7 +668,7 @@ input CreateProgramInput { businessAreaSlug: String dataCollectingTypeCode: String beneficiaryGroup: String - partners: [ProgramPartnerThroughInput] + partners: [ProgramPartnerAccessInput] partnerAccess: String programmeCode: String pduFields: [PDUFieldInput] @@ -2348,10 +2347,10 @@ type PartnerNode { rght: Int! treeId: Int! level: Int! - businessAreaPartnerThrough: [PartnerRoleNode!]! businessAreas(offset: Int, before: String, after: String, first: Int, last: Int, id: UUID): UserBusinessAreaNodeConnection! partnerSet: [PartnerNode!]! userSet(offset: Int, before: String, after: String, first: Int, last: Int): UserNodeConnection! + roleAssignments: [UserRoleNode!]! individualIdentities(offset: Int, before: String, after: String, first: Int, last: Int): IndividualIdentityNodeConnection! grievanceticketSet(offset: Int, before: String, after: String, first: Int, last: Int): GrievanceTicketNodeConnection! programs(offset: Int, before: String, after: String, first: Int, last: Int, name: String): ProgramNodeConnection! @@ -2363,8 +2362,11 @@ type PartnerRoleNode { createdAt: DateTime! updatedAt: DateTime! businessArea: UserBusinessAreaNode! - partner: PartnerNode! - roles: [RoleNode!]! + partner: PartnerNode + role: RoleNode + program: ProgramNode + expiryDate: Date + user: UserNode } type PartnerType { @@ -2377,10 +2379,10 @@ type PartnerType { rght: Int! treeId: Int! level: Int! - businessAreaPartnerThrough: [PartnerRoleNode!]! businessAreas(offset: Int, before: String, after: String, first: Int, last: Int, id: UUID): UserBusinessAreaNodeConnection! partnerSet: [PartnerNode!]! userSet(offset: Int, before: String, after: String, first: Int, last: Int): UserNodeConnection! + roleAssignments: [UserRoleNode!]! individualIdentities(offset: Int, before: String, after: String, first: Int, last: Int): IndividualIdentityNodeConnection! grievanceticketSet(offset: Int, before: String, after: String, first: Int, last: Int): GrievanceTicketNodeConnection! programs(offset: Int, before: String, after: String, first: Int, last: Int, name: String): ProgramNodeConnection! @@ -2915,6 +2917,7 @@ type ProgramNode implements Node { deduplicationSetId: UUID biometricDeduplicationEnabled: Boolean! pduFields: [PeriodicFieldNode] + roleAssignments: [UserRoleNode!]! households(offset: Int, before: String, after: String, first: Int, last: Int): HouseholdNodeConnection! individuals(offset: Int, before: String, after: String, first: Int, last: Int): IndividualNodeConnection! registrationImports(offset: Int, before: String, after: String, first: Int, last: Int): RegistrationDataImportNodeConnection! @@ -2955,7 +2958,7 @@ enum ProgramPartnerAccess { SELECTED_PARTNERS_ACCESS } -input ProgramPartnerThroughInput { +input ProgramPartnerAccessInput { partner: String areas: [String] areaAccess: String @@ -3441,8 +3444,9 @@ type RoleNode { name: String! subsystem: RoleSubsystem! permissions: [String!] - businessAreaPartnerThrough: [PartnerRoleNode!]! - userRoles: [UserRoleNode!]! + isVisibleOnUi: Boolean! + isAvailableForPartner: Boolean! + roleAssignments: [UserRoleNode!]! } enum RoleSubsystem { @@ -4382,7 +4386,7 @@ type UpdateProgramPartners { input UpdateProgramPartnersInput { id: String! - partners: [ProgramPartnerThroughInput] + partners: [ProgramPartnerAccessInput] partnerAccess: String } @@ -4428,11 +4432,10 @@ type UserBusinessAreaNode implements Node { deduplicationIgnoreWithdraw: Boolean! biometricDeduplicationThreshold: Float! customFields: JSONString! - businessAreaPartnerThrough: [PartnerRoleNode!]! children(offset: Int, before: String, after: String, first: Int, last: Int, id: UUID): UserBusinessAreaNodeConnection! dataCollectingTypes(offset: Int, before: String, after: String, first: Int, last: Int): DataCollectingTypeNodeConnection! partnerSet: [PartnerNode!]! - userRoles: [UserRoleNode!]! + roleAssignments: [UserRoleNode!]! householdSet(offset: Int, before: String, after: String, first: Int, last: Int): HouseholdNodeConnection! individualSet(offset: Int, before: String, after: String, first: Int, last: Int): IndividualNodeConnection! registrationdataimportSet(offset: Int, before: String, after: String, first: Int, last: Int): RegistrationDataImportNodeConnection! @@ -4479,7 +4482,7 @@ type UserNode implements Node { jobTitle: String! adUuid: String lastModifyDate: DateTime - userRoles: [UserRoleNode!]! + roleAssignments: [UserRoleNode!]! documentSet(offset: Int, before: String, after: String, first: Int, last: Int): DocumentNodeConnection! approvalSet: [ApprovalNode!]! registrationDataImports(offset: Int, before: String, after: String, first: Int, last: Int): RegistrationDataImportNodeConnection! @@ -4498,7 +4501,9 @@ type UserNode implements Node { feedbackMessages(offset: Int, before: String, after: String, first: Int, last: Int): FeedbackMessageNodeConnection! surveys(offset: Int, before: String, after: String, first: Int, last: Int): SurveyNodeConnection! businessAreas(offset: Int, before: String, after: String, first: Int, last: Int, id: UUID): UserBusinessAreaNodeConnection + permissionsInScope: [String] partnerRoles: [PartnerRoleNode] + userRoles: [UserRoleNode] } type UserNodeConnection { @@ -4516,9 +4521,12 @@ type UserNodeEdge { type UserRoleNode { createdAt: DateTime! updatedAt: DateTime! - role: RoleNode! businessArea: UserBusinessAreaNode! + partner: PartnerNode + role: RoleNode + program: ProgramNode expiryDate: Date + user: UserNode } enum UserStatus { diff --git a/src/frontend/fixtures/communication/fakeApolloAllCommunicationMessages.ts b/src/frontend/fixtures/communication/fakeApolloAllCommunicationMessages.ts deleted file mode 100644 index 08a2620b92..0000000000 --- a/src/frontend/fixtures/communication/fakeApolloAllCommunicationMessages.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { AllAccountabilityCommunicationMessagesDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllCommunicationMessages = [ - { - request: { - query: AllAccountabilityCommunicationMessagesDocument, - variables: { - createdAtRange: '{"min":null,"max":null}', - program: - 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - targetPopulation: '', - createdBy: '', - first: 10, - paymentPlan: '', - orderBy: '-created_at', - }, - }, - result: { - data: { - allAccountabilityCommunicationMessages: { - totalCount: 5, - pageInfo: { - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - __typename: 'PageInfo', - }, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'Q29tbXVuaWNhdGlvbk1lc3NhZ2VOb2RlOjExMDZmNThmLTJkZDMtNDQ5OC1hZjNkLTI2YzNhNDc2ZjkwZg==', - unicefId: 'MSG-23-0005', - title: 'jij', - numberOfRecipients: 1, - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdAt: '2023-05-31T12:49:15.147652+00:00', - __typename: 'CommunicationMessageNode', - }, - __typename: 'CommunicationMessageNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: 'Q29tbXVuaWNhdGlvbk1lc3NhZ2VOb2RlOjExNzVmMzMwLTM2Y2MtNDM5NC04MjAyLWU4NjY3ZTI5ZTc4MA==', - unicefId: 'MSG-22-0002', - title: 'You got credit of USD 200', - numberOfRecipients: 2, - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdAt: '2022-09-16T08:33:09.955000+00:00', - __typename: 'CommunicationMessageNode', - }, - __typename: 'CommunicationMessageNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: 'Q29tbXVuaWNhdGlvbk1lc3NhZ2VOb2RlOjc1OGJiMjg0LTJjZjAtNGZjYy1hY2YyLTY5NDdlZDhkZGNlNg==', - unicefId: 'MSG-22-0004', - title: 'We hold your back!', - numberOfRecipients: 2, - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdAt: '2022-09-15T15:01:35.261000+00:00', - __typename: 'CommunicationMessageNode', - }, - __typename: 'CommunicationMessageNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjM=', - node: { - id: 'Q29tbXVuaWNhdGlvbk1lc3NhZ2VOb2RlOjQxYjllNTE0LWI1NmMtNDY1OS1hYmFhLWE5ZWYwNzVlOThlMQ==', - unicefId: 'MSG-22-0003', - title: 'Hello There!', - numberOfRecipients: 2, - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdAt: '2022-09-15T14:59:51.410000+00:00', - __typename: 'CommunicationMessageNode', - }, - __typename: 'CommunicationMessageNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - node: { - id: 'Q29tbXVuaWNhdGlvbk1lc3NhZ2VOb2RlOjBkMDQ3NDg0LTUzODAtNGJmMi1hOTViLWM4NjVmNWUzYmM4OQ==', - unicefId: 'MSG-22-0001', - title: 'Hello World!', - numberOfRecipients: 2, - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdAt: '2022-09-15T14:59:16.221000+00:00', - __typename: 'CommunicationMessageNode', - }, - __typename: 'CommunicationMessageNodeEdge', - }, - ], - __typename: 'CommunicationMessageNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/core/fakeAllHouseholdsFlexFieldsAttributes.ts b/src/frontend/fixtures/core/fakeAllHouseholdsFlexFieldsAttributes.ts deleted file mode 100644 index 49fefc0f22..0000000000 --- a/src/frontend/fixtures/core/fakeAllHouseholdsFlexFieldsAttributes.ts +++ /dev/null @@ -1,9966 +0,0 @@ -import { AllHouseholdsFlexFieldsAttributesQuery } from '../../src/__generated__/graphql'; - -export const fakeAllHouseholdsFlexFieldsAttributes = { - allHouseholdsFlexFieldsAttributes: [ - { - isFlexField: true, - id: '7a048cca-5f3f-425a-88d5-4461aa0c7c66', - type: 'SELECT_ONE', - name: 'specific_residence_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: 'Autres statut de résidence', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Other Residence Status', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Other Residence Status', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { - label: - 'Population rapatriée – Personnes qui sont retournées chez elles, ou sont en cours de retours après avoir passée plusieurs semaines dans un pays étranger.', - language: 'French(FR)', - __typename: 'LabelNode', - }, - { - label: 'Repatriate', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Repatriate', - value: 'repatriated', - admin: null, - listName: 'residence_status_CAR', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { - label: - 'Population retournée – Personnes qui sont retournées dans leurs zone d’origine après avoir passée plusieurs semaines dans une autre region de la RCA', - language: 'French(FR)', - __typename: 'LabelNode', - }, - { - label: 'Returnee', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Returnee', - value: 'returnee', - admin: null, - listName: 'residence_status_CAR', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f184f242-446a-402b-a350-5e41ab03f21d', - type: 'INTEGER', - name: 'months_displaced_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Length of time since arrival (in months)?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Length of time since arrival (in months)?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '67477320-4f52-4d5c-bda7-50c8a5b79cc2', - type: 'INTEGER', - name: 'number_times_displaced_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of times displaced', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of times displaced', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '8db91253-05e4-40a9-a7ce-d84916aeb4d9', - type: 'SELECT_ONE', - name: 'breastfed_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'If there is any children <1 year, is he/she being breastfed?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'If there is any children <1 year, is he/she being breastfed?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c65ac7ab-0e2c-4a6e-952f-6be2241ef688', - type: 'SELECT_ONE', - name: 'unaccompanied_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Does your family host an unaccompanied child / fosterchild?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Does your family host an unaccompanied child / fosterchild?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7e588e51-eb8a-4f76-bb12-710dc6e2e804', - type: 'SELECT_ONE', - name: 'recent_diarrehea_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Has any child in the family had diarrhea (liquid stool more than 3 times a day) in the last 2 weeks?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Has any child in the family had diarrhea (liquid stool more than 3 times a day) in the last 2 weeks?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4d595f71-3fae-4c25-890c-21f23d7bdc60', - type: 'SELECT_ONE', - name: 'recent_illness_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Has any of your children been ill with cough and fever at any time in the last 2 weeks?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Has any of your children been ill with cough and fever at any time in the last 2 weeks?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '2fe76ebc-38b5-41ce-b83d-ff849870067a', - type: 'SELECT_ONE', - name: 'difficulty_breathing_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If any child was sick, When he/she had an illness with a cough, did he/she breathe faster than usual with short, rapid breaths or have difficulty breathing?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If any child was sick, When he/she had an illness with a cough, did he/she breathe faster than usual with short, rapid breaths or have difficulty breathing?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f9422667-ce5b-4fca-9ec1-41b64c37c8b6', - type: 'SELECT_ONE', - name: 'treatment_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If above is Yes, did you seek advice or treatment for the illness from any source?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If above is Yes, did you seek advice or treatment for the illness from any source?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c2c4fe96-ddd0-4e79-a10d-715bf116af03', - type: 'SELECT_MANY', - name: 'treatment_facility_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Where did you seek advice or treatment?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Where did you seek advice or treatment?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Government Hospital', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Government Hospital', - value: 'governent_health_center', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Government Health Center', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Government Health Center', - value: 'governent_hospital', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other Private', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other Private', - value: 'other_private', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other Public', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other Public', - value: 'other_public', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Pharmacy', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Pharmacy', - value: 'pharmacy', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Private Doctor', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Private Doctor', - value: 'private_doctor', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Private Hospital/Clinic', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Private Hospital/Clinic', - value: 'private_hospital', - admin: null, - listName: 'treatment_facility', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '48a2c512-bdaf-46ed-8c6b-b3f076f4bfb5', - type: 'STRING', - name: 'other_treatment_facility_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'If other, please specify', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'If other, please specify', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ecba8129-9c1f-4bd8-a9cc-643056863839', - type: 'SELECT_ONE', - name: 'living_situation_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: "What is the household's living situation?", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "What is the household's living situation?", - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Established camps (e.g refugee camp, POC site, …)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Established camps (e.g refugee camp, POC site, …)', - value: 'camps', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Accommodation is free / other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Accommodation is free / other', - value: 'free_accomodation', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Informal settlement', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Informal settlement', - value: 'informal settlement', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Own the place I live in', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Own the place I live in', - value: 'own', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rent the place I live in with a formal contract', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rent the place I live in with a formal contract', - value: 'rent_formal_contract', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rent the place I live in with an informal contract', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rent the place I live in with an informal contract', - value: 'rent_informal_contract', - admin: null, - listName: 'living_situation', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '390a733a-08a8-49df-88f6-c404e15e3c19', - type: 'INTEGER', - name: 'number_of_rooms_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'What is the number of rooms in the dwelling excluding kitchen & bathroom?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'What is the number of rooms in the dwelling excluding kitchen & bathroom?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3cf67e66-f25c-4d67-a1cb-73f09bf6bec7', - type: 'INTEGER', - name: 'total_dwellers_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is the total number of people living in the dwelling?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the total number of people living in the dwelling?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '50e4c73d-ae91-4fa6-a656-78275ac50eb4', - type: 'INTEGER', - name: 'one_room_dwellers_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If there is more than one bedroom, what is the highest number of individuals living in one room?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If there is more than one bedroom, what is the highest number of individuals living in one room?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '49ece86f-cec6-4a3e-9d50-0fd9033f9f77', - type: 'INTEGER', - name: 'total_households_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Total number of households in the same living space?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Total number of households in the same living space?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '62902f22-118e-4edc-8e64-da0c0d91b67d', - type: 'INTEGER', - name: 'cost_rent_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If “Rented”, how much rent is paid each month in ${currency_h_c}?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If “Rented”, how much rent is paid each month in ${currency_h_c}?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ef040eba-7034-4950-a8bc-b9faa0b5a7aa', - type: 'INTEGER', - name: 'cost_mortgage_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If “Mortgaged”, how much rent is paid each month in ${currency_h_c}?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If “Mortgaged”, how much rent is paid each month in ${currency_h_c}?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e4713d09-e580-4f34-970b-37417f5c35f7', - type: 'SELECT_ONE', - name: 'drinking_water_source_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is your primary source of drinking water?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is your primary source of drinking water?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Packaged water (bottled water, sachets, …)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Packaged water (bottled water, sachets, …)', - value: 'packaged_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Piped water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Piped water', - value: 'piped_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'From private vendor', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'From private vendor', - value: 'private_vendor_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rain water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rain water', - value: 'rain_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Spring water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Spring water', - value: 'spring_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'Surface water (river, dam, lake, pond, canal, irrigation channel)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'Surface water (river, dam, lake, pond, canal, irrigation channel)', - value: 'surface_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Water tank', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Water tank', - value: 'water_tank', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Water from a well', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Water from a well', - value: 'well_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6e9c7034-4d19-4833-a4f0-6a0949c03a6d', - type: 'SELECT_ONE', - name: 'drinking_water_acquire_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Do you buy or collect from this source?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Do you buy or collect from this source?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Buy water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Buy water', - value: 'buy_water', - admin: null, - listName: 'water_acquire', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Collector', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Collector', - value: 'collect_water', - admin: null, - listName: 'water_acquire', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e07034ac-2a03-4e93-a22a-e282c0a02e54', - type: 'SELECT_ONE', - name: 'washing_water_source_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'What is the primary source of water used by members of your household for other purposes such as cooking and handwashing?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'What is the primary source of water used by members of your household for other purposes such as cooking and handwashing?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Packaged water (bottled water, sachets, …)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Packaged water (bottled water, sachets, …)', - value: 'packaged_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Piped water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Piped water', - value: 'piped_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'From private vendor', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'From private vendor', - value: 'private_vendor_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rain water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rain water', - value: 'rain_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Spring water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Spring water', - value: 'spring_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'Surface water (river, dam, lake, pond, canal, irrigation channel)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'Surface water (river, dam, lake, pond, canal, irrigation channel)', - value: 'surface_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Water tank', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Water tank', - value: 'water_tank', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Water from a well', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Water from a well', - value: 'well_water', - admin: null, - listName: 'water_source', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0ccd8db5-810a-46f0-9487-b98d34e82dd6', - type: 'SELECT_ONE', - name: 'washing_water_acquire_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Do you buy or collect from this source?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Do you buy or collect from this source?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Buy water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Buy water', - value: 'buy_water', - admin: null, - listName: 'water_acquire', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Collector', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Collector', - value: 'collect_water', - admin: null, - listName: 'water_acquire', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '249d911b-5962-4f9f-80ec-c0eb14209d8c', - type: 'SELECT_ONE', - name: 'sufficient_water_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Is water sufficient for all your uses in the household?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is water sufficient for all your uses in the household?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, everyday our family struggles because of lack of water', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No, everyday our family struggles because of lack of water', - value: 'insufficientwater', - admin: null, - listName: 'sufficient_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'It is not always enough', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'It is not always enough', - value: 'partiallysufficientwater', - admin: null, - listName: 'sufficient_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Yes, it is sufficient for our needs', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes, it is sufficient for our needs', - value: 'sufficientwater', - admin: null, - listName: 'sufficient_water', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c831fbad-087e-4284-a2b2-f226e1570e58', - type: 'INTEGER', - name: 'days_no_water_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'How many days did your household not have water for household needs in the past month?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many days did your household not have water for household needs in the past month?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '03abdbb8-d3ab-46a3-8bca-c3eb23531ed6', - type: 'SELECT_ONE', - name: 'reason_no_water_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'What was/is the reason for not having water in your household?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What was/is the reason for not having water in your household?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Broken pipes in the area', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Broken pipes in the area', - value: 'broken_pipes', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Inability to pump water to the roof tanks', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Inability to pump water to the roof tanks', - value: 'cannot_pump_water_to_rooftanks', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'No more shop credit', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No more shop credit', - value: 'no_shop_credit', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not having adequate storage tanks', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not having adequate storage tanks', - value: 'no_storage_tank', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Exceptional overconsumption', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Exceptional overconsumption', - value: 'overconsumption', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Landlord cut supply', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Landlord cut supply', - value: 'supply_cut_landlord', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Water authority cut supply', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Water authority cut supply', - value: 'supply_cut_waterauthority', - admin: null, - listName: 'reason_no_water', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'afd0c201-b28e-4048-b260-f7c542a3161d', - type: 'INTEGER', - name: 'distace_to_water_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'How many minutes does it take for members of your household to go there, get water, and come back?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many minutes does it take for members of your household to go there, get water, and come back?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4aebee59-bbed-4e15-a4ae-a21ed7b04e84', - type: 'INTEGER', - name: 'trips_to_fetch_water_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'How many trips did you make to fetch water yesterday?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'How many trips did you make to fetch water yesterday?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4acbacf7-cb7b-480a-86fc-9ac198a12a74', - type: 'INTEGER', - name: 'volume_container_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is the volume of the container in liter in each trip?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the volume of the container in liter in each trip?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '26b1d046-5af6-49ce-bae3-4937cf376d56', - type: 'INTEGER', - name: 'total_liter_yesterday_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Total liters of water fetched yesterday (calculated)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Total liters of water fetched yesterday (calculated)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '31bcaf55-12af-43c3-a7e9-32cf5b32fbf1', - type: 'STRING', - name: 'display_total_liter_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'How many liters of water could your family access yesterday? (calculated): ${total_liter_yesterday_h_f}', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many liters of water could your family access yesterday? (calculated): ${total_liter_yesterday_h_f}', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a9fdd6ce-ded7-4ae2-9e66-b0b933fae0ae', - type: 'SELECT_ONE', - name: 'odor_taste_color_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Do you have odor, taste or color in the water?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Do you have odor, taste or color in the water?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0dca4f09-78f0-4f53-9ecf-def973ed4f42', - type: 'SELECT_ONE', - name: 'share_latrine_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Do you share a latrine?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Do you share a latrine?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'No facility (open defecation)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No facility (open defecation)', - value: 'no_latrine', - admin: null, - listName: 'latrine', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'No, only my household has access', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No, only my household has access', - value: 'not_shared', - admin: null, - listName: 'latrine', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Yes, with two or more households', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes, with two or more households', - value: 'shared_with_one_hh', - admin: null, - listName: 'latrine', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Yes, with one other household', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes, with one other household', - value: 'shared_with_two_hh', - admin: null, - listName: 'latrine', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4794bde0-c6e7-4cf6-997f-ba59f08ba83c', - type: 'SELECT_ONE', - name: 'door_light_vent_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Does your latrine have a door, light and ventilation?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Does your latrine have a door, light and ventilation?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b8bbe2c9-f213-4769-80cc-ad7ce7ede4c9', - type: 'SELECT_ONE', - name: 'sewage_overflow_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Is there any sewage overflow from your latrine?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is there any sewage overflow from your latrine?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: 'no_overflow', - admin: null, - listName: 'sewage_overflow', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'Yes because of Blockage/ broken connection/ overfilled spetage tank', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'Yes because of Blockage/ broken connection/ overfilled spetage tank', - value: 'yes_blockage', - admin: null, - listName: 'sewage_overflow', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '790427ae-d30c-4f50-84d3-004f7c7dccde', - type: 'SELECT_ONE', - name: 'seat_handrail_for_disabled_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Is there enough space or seat or handrail for a disabled person?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Is there enough space or seat or handrail for a disabled person?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '1768da1d-16d1-4618-93b1-678d93f2f465', - type: 'SELECT_ONE', - name: 'latrine_connect_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Is your household latrine connected to any of the following?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is your household latrine connected to any of the following?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Pit', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Pit', - value: 'pit_connection', - admin: null, - listName: 'latrine_connect', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Public sewer', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Public sewer', - value: 'public_sewer', - admin: null, - listName: 'latrine_connect', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Septic tank', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Septic tank', - value: 'septic_tank', - admin: null, - listName: 'latrine_connect', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5f91477a-94fe-40b2-8222-3407a68edbde', - type: 'SELECT_ONE', - name: 'desludge_tank_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'How often do you have to desludge your septic tank?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'How often do you have to desludge your septic tank?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Annually', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Annually', - value: 'annually_desludge', - admin: null, - listName: 'desludge_tank', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Monthly', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Monthly', - value: 'monthly_desludge', - admin: null, - listName: 'desludge_tank', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Quarterly', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Quarterly', - value: 'quarterly_desludge', - admin: null, - listName: 'desludge_tank', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Weekly', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Weekly', - value: 'weekly_desludge', - admin: null, - listName: 'desludge_tank', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '122ebb0b-4cb6-43ef-aad6-6685c8f32d26', - type: 'SELECT_ONE', - name: 'waste_disposal_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Do you have proper waste disposal?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Do you have proper waste disposal?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: 'no_disposal', - admin: null, - listName: 'waste_disposal', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Yes - Bags', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes - Bags', - value: 'yes_bags', - admin: null, - listName: 'waste_disposal', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Yes - Bins', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes - Bins', - value: 'yes_bins', - admin: null, - listName: 'waste_disposal', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a55be55a-df9d-4a0a-b459-556d0c43c75b', - type: 'SELECT_ONE', - name: 'waste_collect_freq_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'How frequent solid waste collection is made?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'How frequent solid waste collection is made?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Monthly', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Monthly', - value: 'monthly_collect', - admin: null, - listName: 'waste_collect_freq', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Twice a week', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Twice a week', - value: 'twice_week_collect', - admin: null, - listName: 'waste_collect_freq', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Weekly', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Weekly', - value: 'weekly_collect', - admin: null, - listName: 'waste_collect_freq', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '98dc73e0-383e-4d8a-93da-8a76897f1011', - type: 'SELECT_MANY', - name: 'hygiene_materials_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What hygiene materials are available for the family?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What hygiene materials are available for the family?', - hint: "{'English(EN)': 'Select all that apply'}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Ashes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Ashes', - value: 'ashes', - admin: null, - listName: 'hygiene_materials', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Hand washing facilities', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Hand washing facilities', - value: 'hand_washing', - admin: null, - listName: 'hygiene_materials', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'None available', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'None available', - value: 'none_available', - admin: null, - listName: 'hygiene_materials', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Soap', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Soap', - value: 'soap_material', - admin: null, - listName: 'hygiene_materials', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c4322621-0022-4d0c-bab6-b5e2d782a090', - type: 'DECIMAL', - name: 'jerrycans_capacity_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Total capacity of jerrycans (in litres)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Total capacity of jerrycans (in litres)', - hint: - "{'English(EN)': 'Count only the number (capacity) of 5 or more litre cans, if a can is dammaged, count it as half its volume.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0bb3813e-aa90-4b38-8a02-2e665802947e', - type: 'DECIMAL', - name: 'bassin_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of Bassins', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of Bassins', - hint: - "{'English(EN)': 'Count only the number of 10 or more litre bowls as a unit, if a bowl is dammaged, count 0.5.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ba8b023e-feca-4af2-a480-b9f45593f2ad', - type: 'DECIMAL', - name: 'beds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of bedding facilities (beds, mats, mattresses,…)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of bedding facilities (beds, mats, mattresses,…)', - hint: - "{'English(EN)': '1 bedding facility of 1 place (01 person) = 1 piece; 1 support of 2 places = 2 pieces.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '924cff16-8053-439a-8a1c-6de404d416ee', - type: 'DECIMAL', - name: 'blanket_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of blankets/sheets', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of blankets/sheets', - hint: - "{'English(EN)': 'If the sheets are in bad state but still usable, count 0.5 (1/2) a piece.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3b2ba110-4712-4dfe-84cf-63bacd8f9031', - type: 'DECIMAL', - name: 'Cooking_pot_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of Cooking pots', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of Cooking pots', - hint: - "{'English(EN)': 'Count the number of 5 litre or more saucepans as 1 piece.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b5c360fe-f2fd-498a-95da-79f55fd12267', - type: 'DECIMAL', - name: 'Agric_tool_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of ploughing tools', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of ploughing tools', - hint: - "{'English(EN)': 'Count the number of locally-made or imported ploughing tools.'}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e20d4722-c068-4a4f-ae37-f6765fd8ae2d', - type: 'DECIMAL', - name: 'Women_clothes_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: "Number of complete women's clothes", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "Number of complete women's clothes", - hint: - "{'English(EN)': \"Put '-1', if no women is present 1 complete set = 0.5 up ( eg Blouse/t-shirt)and 0.5 down (loincloths/skirts).The clothes of the mother or main woman in the household AND those of the oldest school aged girls in the house should be counted\"}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a65ef32f-98e6-4eaf-9792-f1feaa8558e9', - type: 'DECIMAL', - name: 'Child_clothes_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: "Number of complete children's clothes", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "Number of complete children's clothes", - hint: - "{'English(EN)': \"Put '-1', if there is no child. Take the youngest children of school going age. 0.5 for each upper piece of clothing and 0.5 for each lower piece of clothing\"}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '97dd3615-cce8-4fb5-ab3e-b60b9069a09e', - type: 'DECIMAL', - name: 'score_NFI_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'NFI score', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'NFI score', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '73700343-5919-4dc6-aaa2-6eb543be3267', - type: 'SELECT_ONE', - name: 'children_safe_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I believe my children are safe in the area that we live.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I believe my children are safe in the area that we live.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '8c5625c5-305a-4adc-a003-821291cf105c', - type: 'SELECT_ONE', - name: 'meet_child_needs_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I can meet the needs of the children in my care.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I can meet the needs of the children in my care.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '062a4867-4d13-4913-9d50-4610b1959b0f', - type: 'SELECT_ONE', - name: 'believe_better_life_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I believe my children will have a better life.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I believe my children will have a better life.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'acc59605-fa16-4218-8703-29f789e70987', - type: 'SELECT_ONE', - name: 'risk_early_marriage_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'There are risks to children who get married before they are 18.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'There are risks to children who get married before they are 18.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'fe38d982-bb24-4bf2-b81b-8703d6fd5175', - type: 'SELECT_ONE', - name: 'leave_school_to_work_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If the family needs it, children should leave school to work.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'If the family needs it, children should leave school to work.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6a684659-b859-4401-a7fc-cc89176677b6', - type: 'SELECT_ONE', - name: 'ok_parent_hit_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'It is okay when a child gets hit at home by his parents for misbehaving.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'It is okay when a child gets hit at home by his parents for misbehaving.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '918a3ea4-0dd9-4c3e-9a87-5fcc0f61073c', - type: 'SELECT_ONE', - name: 'ok_teacher_hit_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'It is okay when a child gets hit at school by his teacher for misbehaving.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'It is okay when a child gets hit at school by his teacher for misbehaving.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '678d8b40-c301-4a76-a468-ecf7d9609113', - type: 'SELECT_ONE', - name: 'child_not_at_fault_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If someone hurts my child or something bad happens to them, it is not their fault.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If someone hurts my child or something bad happens to them, it is not their fault.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c9158cb3-7241-43e1-b956-b69d6dd441b2', - type: 'SELECT_ONE', - name: 'sexviolence_survivor_not_shame_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'A survivor of sexual violence is not a shame to his or her family.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'A survivor of sexual violence is not a shame to his or her family.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3ea965b2-8852-4489-b13d-88a53dac0c84', - type: 'SELECT_ONE', - name: 'know_access_service_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I know where to go if my child needs access to a service.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I know where to go if my child needs access to a service.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '61707b8b-f972-4550-b5c9-9f53aad1b518', - type: 'SELECT_ONE', - name: 'law_against_underage_work_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'It is against the Law for children under the age of 16 to work.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'It is against the Law for children under the age of 16 to work.', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Always', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Always', - value: 'level_always', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: 'level_mostly', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Never', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Never', - value: 'level_never', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Rarely', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Rarely', - value: 'level_rarely', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sometimes', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sometimes', - value: 'level_sometimes', - admin: null, - listName: 'statement_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6cc1f891-9ad4-4e1e-af9b-0a2319eb1a01', - type: 'INTEGER', - name: 'meals_yesterday_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Yesterday, how many meals were eaten by your family?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Yesterday, how many meals were eaten by your family?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '951154c8-981f-4144-bb15-4207327ef1e1', - type: 'INTEGER', - name: 'cereals_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Cereals & grains: e.g maize meal, rice, pasta, bread, bulgur, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Cereals & grains: e.g maize meal, rice, pasta, bread, bulgur, …', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '446ea1a2-45cd-44f7-a3d6-437bb1734d18', - type: 'INTEGER', - name: 'tubers_roots_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'White tubers & roots: e.g potato, sweet potato, cassava, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'White tubers & roots: e.g potato, sweet potato, cassava, …', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4da6b81b-6e02-4939-b6d1-56d8ecfa455c', - type: 'INTEGER', - name: 'vegetables_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Vegetables & leaves: e.g spinach, cucumber, eggplant, tomato, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Vegetables & leaves: e.g spinach, cucumber, eggplant, tomato, …', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5954974c-2537-4376-bc54-7346c90f5a60', - type: 'INTEGER', - name: 'fruits_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Fruits: e.g citrus, apple, banana, dates, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Fruits: e.g citrus, apple, banana, dates, …', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7fc63c71-a6e8-4fa5-8a95-a31629966541', - type: 'INTEGER', - name: 'meat_fish_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Meat, fish and eggs: Beef, lamb chicken, liver, kidney, fish including canned tuna, eggs', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Meat, fish and eggs: Beef, lamb chicken, liver, kidney, fish including canned tuna, eggs', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f741c1e8-c407-443d-a3fe-ffaf33abbc79', - type: 'INTEGER', - name: 'pulses_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Pulses, nuts & seeds : beans, chickpeas, lentils', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Pulses, nuts & seeds : beans, chickpeas, lentils', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '077f824e-8d91-4562-b9bb-ee74525e5db5', - type: 'INTEGER', - name: 'dairy_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Milk and dairy products: yoghurt, cheese', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Milk and dairy products: yoghurt, cheese', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '9944046a-2d22-44ec-b68d-01003f1c9df1', - type: 'INTEGER', - name: 'oilfat_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Oil / fat: vegetable oil, palm oil, butter, ghee', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Oil / fat: vegetable oil, palm oil, butter, ghee', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '97773bcc-e655-41db-9d5e-61f321ce012e', - type: 'INTEGER', - name: 'sugarsweet_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Sugar / sweets: honey, cakes, sugary drinks, (this includes sugar used in tea)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Sugar / sweets: honey, cakes, sugary drinks, (this includes sugar used in tea)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd8409b67-e3ac-4249-bab7-4561561e9322', - type: 'DECIMAL', - name: 'cereals_tuber_score_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Cereals & grains + tubers & roots score', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Cereals & grains + tubers & roots score', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c14a10a3-bf01-4435-a3d1-906ee18d188e', - type: 'DECIMAL', - name: 'FCS_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Food consumption score', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Food consumption score', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c8f2931c-1ea6-4b38-9282-0ebc30249634', - type: 'SELECT_ONE', - name: 'cereals_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Cereals & grains: e.g maize meal, rice, pasta, bread, bulgur, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Cereals & grains: e.g maize meal, rice, pasta, bread, bulgur, …', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '41f056e3-1228-4486-9c1a-8b56ad1fd8a4', - type: 'SELECT_ONE', - name: 'tubers_roots_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'White tubers & roots: e.g potato, sweet potato, cassava, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'White tubers & roots: e.g potato, sweet potato, cassava, …', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f20741ca-fc53-40fb-96b8-e245b792846a', - type: 'SELECT_ONE', - name: 'vegetables_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Vegetables & leaves: e.g spinach, cucumber, eggplant, tomato, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Vegetables & leaves: e.g spinach, cucumber, eggplant, tomato, …', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b1ce082d-f98e-41b2-bf1f-44bb8e8524ff', - type: 'SELECT_ONE', - name: 'fruits_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Fruits: e.g citrus, apple, banana, dates, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Fruits: e.g citrus, apple, banana, dates, …', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3d913ba1-94d8-4aba-892c-2f2b10eb05b8', - type: 'SELECT_ONE', - name: 'meat_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Meat: Beef, lamb chicken, liver, kidney, …', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Meat: Beef, lamb chicken, liver, kidney, …', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6b1ca2ad-7991-48ee-bdab-d226115161e3', - type: 'SELECT_ONE', - name: 'eggs_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { language: 'English(EN)', label: 'Eggs', __typename: 'LabelNode' }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Eggs', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f6ce5e4b-3faf-4b5c-ba85-504727f22bc8', - type: 'SELECT_ONE', - name: 'fish_hhds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Fish and other seafood', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Fish and other seafood', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a51df15a-1b81-4d5c-8f3b-61ad656b1a7d', - type: 'SELECT_ONE', - name: 'pulses_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Pulses, nuts & seeds: beans, chickpeas, lentils', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Pulses, nuts & seeds: beans, chickpeas, lentils', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c2169902-d572-44f5-805c-450483a7ecbc', - type: 'SELECT_ONE', - name: 'dairy_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Milk and dairy products: yoghurt, cheese', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Milk and dairy products: yoghurt, cheese', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b37be9f7-b753-4775-b2cd-d517a7348224', - type: 'SELECT_ONE', - name: 'oilfat_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Oil / fat: vegetable oil, palm oil, butter, ghee', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Oil / fat: vegetable oil, palm oil, butter, ghee', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '054a357a-8406-403d-ab23-3a38fe6d4065', - type: 'SELECT_ONE', - name: 'sugarsweet_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Sugar / sweets: honey, cakes, sugary drinks, (this includes sugar used in tea)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Sugar / sweets: honey, cakes, sugary drinks, (this includes sugar used in tea)', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e8728824-1599-43ca-a59b-662e8d8d7714', - type: 'SELECT_ONE', - name: 'spices_condiments_hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Spices, condiments and beverages', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Spices, condiments and beverages', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a61da4fe-e30d-405b-86d1-563543ebc1ca', - type: 'INTEGER', - name: 'hdds_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Household Dietary Diversity Score', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Household Dietary Diversity Score', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3f9ac9ee-4627-4831-801f-db085467e10b', - type: 'SELECT_ONE', - name: 'assistance_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Did your family receive any type of assistance in the past six months?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Did your family receive any type of assistance in the past six months?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6cf395b1-5b66-4ac4-a5e2-25c2e854b1c7', - type: 'SELECT_MANY', - name: 'assistance_type_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'What type of assistance did your family receive in the past six months?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'What type of assistance did your family receive in the past six months?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Cash assistance', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Cash assistance', - value: 'cash_assistance', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child cash grant', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child cash grant', - value: 'child_cash_grant', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child education grant', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child education grant', - value: 'child_edu_grant', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: "Don't Know", - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: "Don't Know", - value: 'don’t_know', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Food assistance for children', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Food assistance for children', - value: 'food_for_children', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Food assistance in-kind support', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Food assistance in-kind support', - value: 'food_in_kind', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Food assistance vouchers', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Food assistance vouchers', - value: 'food_vouchers', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Health medical services', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Health medical services', - value: 'health_services', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Informal education', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Informal education', - value: 'informal_education', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Job opportunities', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Job opportunities', - value: 'job_opportunities', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'None of the above', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'None of the above', - value: 'none_of_listed', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Psychosocial services', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Psychosocial services', - value: 'psychosocial', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'School feeding', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'School feeding', - value: 'school_feeding', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'School material', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'School material', - value: 'school_material', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Training', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Training', - value: 'training', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Voucher', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Voucher', - value: 'voucher', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Winterization assistance', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Winterization assistance', - value: 'winterization', - admin: null, - listName: 'assistance_type', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '05efab70-5da2-49d2-ad7b-9d6cc1142748', - type: 'SELECT_MANY', - name: 'assistance_source_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Did your family get assistance from any of these sources in the last 6 months?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Did your family get assistance from any of these sources in the last 6 months?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: "Don't know", - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: "Don't know", - value: 'dont_know_source', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Governmental', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Governmental', - value: 'governmental', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'NGOs, religious organizations and CBOs', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'NGOs, religious organizations and CBOs', - value: 'ngos', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'other', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other INGO (non UN related)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other INGO (non UN related)', - value: 'other_ingo', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Relatives/friends/neighbors', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Relatives/friends/neighbors', - value: 'relatives_friends', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'UNHCR', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'UNHCR', - value: 'unhcr', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'UNICEF', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'UNICEF', - value: 'unicef', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'WFP', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'WFP', - value: 'wfp', - admin: null, - listName: 'assistance_source', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7e3d9543-f1bb-4e46-87a9-965bf7262055', - type: 'SELECT_MANY', - name: 'drug_addict_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Are there any drug addicts in the family?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Are there any drug addicts in the family?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Brother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Brother', - value: 'brother', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'father', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'mother', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: 'no', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'other', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Sister', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Sister', - value: 'sister', - admin: null, - listName: 'drugaddict', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5145db9e-a31e-40d6-a12a-51226d45fc57', - type: 'SELECT_ONE', - name: 'coping_strategy_sell_assets_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Sold household assets/goods (jewelry, phone, furniture, electro domestics, etc)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Sold household assets/goods (jewelry, phone, furniture, electro domestics, etc)', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c9c5a42d-fd6b-49e8-b664-473322164471', - type: 'SELECT_ONE', - name: 'coping_strategy_buy_food_credit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Purchased food on credit or borrowed food', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Purchased food on credit or borrowed food', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e7d40405-21ba-4406-a0f5-173b438101ab', - type: 'SELECT_ONE', - name: 'coping_strategy_red_exp_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Reduced essential non food expenditure such as education/health', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Reduced essential non food expenditure such as education/health', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'badab0d9-454b-4f17-a30e-c24dc64a7584', - type: 'SELECT_ONE', - name: 'coping_strategy_spent_savings_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Spent Savings', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Spent Savings', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'fff63657-7b6c-45d3-a1d5-f41995922242', - type: 'SELECT_ONE', - name: 'coping_strategy_borrow_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Borrowed Money', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Borrowed Money', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'eb2cdf26-54b0-495e-bb44-4ee6acb27e2f', - type: 'SELECT_ONE', - name: 'coping_strategy_sell_prod_assets_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Sold productive assets or means of transport (sewing machine, wheelbarrow, bicycle, car, etc.)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Sold productive assets or means of transport (sewing machine, wheelbarrow, bicycle, car, etc.)', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd090bc99-ad00-48ff-ae7e-4ecbee00f767', - type: 'SELECT_ONE', - name: 'coping_strategy_consume_seed_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Consumed seed stocks that were to be held/saved for next season', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Consumed seed stocks that were to be held/saved for next season', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '57eae1a8-2ca8-4803-b27b-ed3497b32558', - type: 'SELECT_ONE', - name: 'coping_strategy_school_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Withdrew children from school', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Withdrew children from school', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0f22b0dc-5bde-490f-a335-ac11f69298e4', - type: 'SELECT_ONE', - name: 'coping_strategy_sell_house_land_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Sold house or land', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Sold house or land', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '96b850ec-63ce-46da-9647-8bec9e753895', - type: 'SELECT_ONE', - name: 'coping_strategy_change_housing_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Changed accommodation location or type in order to reduce rental expenditure', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Changed accommodation location or type in order to reduce rental expenditure', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '89ebd06d-5837-4e70-b1f5-68b8891a1a62', - type: 'SELECT_ONE', - name: 'coping_strategy_neg_job_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Adult members of the household accepted socially degrading, exploitative, high risk or illegal temporary jobs', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Adult members of the household accepted socially degrading, exploitative, high risk or illegal temporary jobs', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a1866785-3765-4c67-9d50-98f182806415', - type: 'SELECT_ONE', - name: 'coping_strategy_child_beg_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Sent children (under 18) family members to beg', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Sent children (under 18) family members to beg', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '91529412-2f88-44bc-91ca-1e5ea2ffe190', - type: 'SELECT_ONE', - name: 'coping_strategy_adult_beg_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Sent adult family members to beg', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Sent adult family members to beg', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '579531e4-067a-4aaa-8b91-9e1860df888d', - type: 'SELECT_ONE', - name: 'coping_strategy_sell_fem_animals_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Sold last female animals', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Sold last female animals', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7daac41a-741a-45c9-898b-e3e1803fe45b', - type: 'SELECT_ONE', - name: 'coping_strategy_child_marriage_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Married Child for financial purposes', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Married Child for financial purposes', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ee751e93-5853-4d3a-92d7-743140658d9c', - type: 'SELECT_ONE', - name: 'coping_strategy_wild_food_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: 'Consommé des aliments sauvages', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Consumed wild food', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Consumed wild food', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7a24e45e-5b30-48ae-9e2d-ad106b10c423', - type: 'SELECT_ONE', - name: 'coping_strategy_days_eating_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: 'Passé un ou plusieurs jours sans manger', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Spent one or more days without eating', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Spent one or more days without eating', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '1', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: - 'No, because I have already engaged in this activity and cannot continue to do it.', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: - 'No, because I have already engaged in this activity and cannot continue to do it.', - value: '2', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '3', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not Applicable', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not Applicable', - value: '4', - admin: null, - listName: 'cope_strategies', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '65b9c62e-48bb-4bf5-b7b7-234470804d17', - type: 'STRING', - name: 'coping_strategy_reason_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'For what reasons (i.e. to meet which essential needs) did you (or other members in your household) adopt such coping strategy(ies)?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'For what reasons (i.e. to meet which essential needs) did you (or other members in your household) adopt such coping strategy(ies)?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3284a9de-2e41-4bc9-9556-f37b7dce2102', - type: 'INTEGER', - name: 'red_coping_strategy_food_change_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Rely on less preferred and less expensive foods', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Rely on less preferred and less expensive foods', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f5d7d182-1a0d-4332-a1e5-d876196b3512', - type: 'INTEGER', - name: 'red_coping_strategy_borrow_food_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Borrow food or rely on help from friends or relatives', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Borrow food or rely on help from friends or relatives', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c050c7b1-eb5b-4f59-9ad6-e82f2efa704a', - type: 'INTEGER', - name: 'red_coping_strategy_portion_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Limit portion size at mealtime', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Limit portion size at mealtime', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b3136add-2914-4a7f-a679-4cc6fffb498e', - type: 'INTEGER', - name: 'red_coping_strategy_restrict_adult_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Restrict consumption by adults in order for small children to eat', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Restrict consumption by adults in order for small children to eat', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7b13a37f-7786-4fd3-9909-4acea2b20a57', - type: 'INTEGER', - name: 'red_coping_strategy_few_meals_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Reduce number of meals eaten in a day', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Reduce number of meals eaten in a day', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7d499037-f71e-4888-bf65-de29b07a0f9d', - type: 'INTEGER', - name: 'RCSI_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Reduced Coping Strategy Index (rCSI) Score', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Reduced Coping Strategy Index (rCSI) Score', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '2361e889-c958-4345-aa02-6cafc33f389d', - type: 'DECIMAL', - name: 'monthly_rent_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Rent (monthly)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Rent (monthly)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a95c075c-04f7-475c-a0b1-8f406ad339f3', - type: 'DECIMAL', - name: 'monthly_utilities_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Utilities (fuel, gas, electricity, etc)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Utilities (fuel, gas, electricity, etc)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '095234fd-29cf-48d7-8aa7-67837ba1d983', - type: 'DECIMAL', - name: 'monthly_food_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { language: 'English(EN)', label: 'Food', __typename: 'LabelNode' }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Food', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '19850fa7-5ab3-4818-9c54-9a7465e196d4', - type: 'DECIMAL', - name: 'clothing_adult_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Clothing including shoes for adults', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Clothing including shoes for adults', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '43c13c9a-7e8d-48ec-a985-9edb9901438b', - type: 'DECIMAL', - name: 'clothing_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Clothing including shoes for children', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Clothing including shoes for children', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '577980f9-8e52-4b7e-8f28-80f224f9bf99', - type: 'DECIMAL', - name: 'nonfood_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Essential Household Items / Non Food Items (blankets, cooking tools)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Essential Household Items / Non Food Items (blankets, cooking tools)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '19d2ab5e-eab2-4e3a-99b1-f8c955e7db13', - type: 'DECIMAL', - name: 'water_bottles_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Water (network, tanker, bottles etc)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Water (network, tanker, bottles etc)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '94fa2403-97dc-46a8-8e0b-2d8ac270ae13', - type: 'DECIMAL', - name: 'treatment_child_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Treatment for children (medical, pharmaceutical)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Treatment for children (medical, pharmaceutical)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '9bb3e6cf-1e3d-4c29-b738-2dcaa27f49ed', - type: 'DECIMAL', - name: 'health_adult_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Other Health related expenditures (not for children)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Other Health related expenditures (not for children)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '62f65715-7491-445e-891b-a5a67311cfbc', - type: 'DECIMAL', - name: 'education_fees_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Education (books, uniform, stationary, fees)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Education (books, uniform, stationary, fees)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd282aa87-e510-4010-a8d7-60bb424ede78', - type: 'DECIMAL', - name: 'transportation_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Transportation (to school, to health/rehab centers, to market, others)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Transportation (to school, to health/rehab centers, to market, others)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '66c64a92-1722-4210-a9ec-266c95aa320d', - type: 'DECIMAL', - name: 'infant_food_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Infant needs (infant food)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Infant needs (infant food)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'fe144484-46c1-4830-b667-046bbcc9352b', - type: 'DECIMAL', - name: 'hygiene_items_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Basic Hygiene items (soap, shampoo, toothpaste, sanitary pads, diapers)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Basic Hygiene items (soap, shampoo, toothpaste, sanitary pads, diapers)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd8b9d40a-c764-4fcc-a767-064de8dc6a60', - type: 'DECIMAL', - name: 'debt_repay_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Debt repayments', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Debt repayments', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '55ad5ddd-94f4-4cd6-8d08-f343cb3ad7b3', - type: 'DECIMAL', - name: 'investment_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Income generating activity investment', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Income generating activity investment', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'edd313a9-d41e-4d6c-807d-7943d7a01f33', - type: 'DECIMAL', - name: 'other_expense_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Other expenses', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Other expenses', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '59e55bd1-f458-4fe8-98ae-3ac51a6d2fc0', - type: 'DECIMAL', - name: 'total_expense_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Total expenses', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Total expenses', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ae602f7f-33ff-4e36-ade3-2ccb97c576eb', - type: 'INTEGER', - name: 'round_total_expense_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Rounded total expenses', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Rounded total expenses', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '19341e99-b86b-4f29-a0cb-33fdb13dba1d', - type: 'DECIMAL', - name: 'inc_job_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Paid job with an organization/businesses (salaries, wages, bonuses, allowances, commissions, gratuities)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Paid job with an organization/businesses (salaries, wages, bonuses, allowances, commissions, gratuities)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '83917633-3b70-41cf-9cfa-173120e50336', - type: 'SELECT_MANY', - name: 'gen_job_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (paid job):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (paid job):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd3a54578-cff3-4f78-96f8-975934e8b63a', - type: 'DECIMAL', - name: 'inc_rental_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Profit from rental property you own', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Profit from rental property you own', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f972c9b7-36eb-4476-92a8-00bb7b3daa43', - type: 'SELECT_MANY', - name: 'gen_rent_profit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (rental property):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (rental property):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '38077c5d-1156-48f8-8d2a-ef1792f96661', - type: 'DECIMAL', - name: 'inc_domestic_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Domestic service job in someone else’s house', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Domestic service job in someone else’s house', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '8e9e894c-9a26-4414-8063-66f5789c5790', - type: 'SELECT_MANY', - name: 'gen_domestic_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: "Generated by (service job in someone else's house):", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "Generated by (service job in someone else's house):", - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '8fc556f0-29d3-4fb0-a7de-4f34a980f1fa', - type: 'DECIMAL', - name: 'inc_self_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Payment for self-employment (selling or making things, doing repairs, providing service, etc.)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Payment for self-employment (selling or making things, doing repairs, providing service, etc.)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '634598c8-e810-40a1-9c40-349b3d1adfef', - type: 'SELECT_MANY', - name: 'gen_self_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (self-employment):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (self-employment):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '8b622137-380d-44e5-8be5-7feccda5c56b', - type: 'DECIMAL', - name: 'inc_sellagricult_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Selling of your own agricultural production', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Selling of your own agricultural production', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'eb85fd83-08a4-4904-845f-5cf1d066ca8a', - type: 'SELECT_MANY', - name: 'gen_sellagricult_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (selling agricultural production):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (selling agricultural production):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '31fa7a6f-0d1a-4d6d-be1a-cd8f353cf2d1', - type: 'DECIMAL', - name: 'inc_endpmt_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'End of service payment', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'End of service payment', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0c92480b-d1cc-400f-b8d5-49e03223a9c7', - type: 'SELECT_MANY', - name: 'gen_endpmt_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (end of service payment):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (end of service payment):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7d5a73cd-f109-4dc9-a91e-032f16decea0', - type: 'DECIMAL', - name: 'inc_remit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Remittances from family (abroad or employed elsewhere)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Remittances from family (abroad or employed elsewhere)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5d2e4828-b1fe-4eb2-b873-e0bb414187a7', - type: 'SELECT_MANY', - name: 'gen_remit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (remittance from family):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (remittance from family):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5394d0b5-1ef3-4e91-b6c2-2dbec1d4dbcb', - type: 'DECIMAL', - name: 'inc_gift_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Gift from family/friend/other person', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Gift from family/friend/other person', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3a7e697f-a672-4ec7-b155-843804fd8c0b', - type: 'SELECT_MANY', - name: 'gen_gift_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (gift from family):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (gift from family):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '53b9faa5-85db-483d-b158-c91d03c0b444', - type: 'DECIMAL', - name: 'inc_credit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Micro-credit', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Micro-credit', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '2aa4dd53-733c-4dd0-a81a-c39cc1356d5f', - type: 'SELECT_MANY', - name: 'gen_credit_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (micro-credit):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (micro-credit):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '655ecd83-53d6-475e-8583-55fdfaa06a45', - type: 'DECIMAL', - name: 'inc_unicef_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'UNICEF child cash grant', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'UNICEF child cash grant', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '7205cab9-b430-4891-ae48-beceba681aa0', - type: 'SELECT_MANY', - name: 'gen_unicef_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (UNICEF child cash grant):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (UNICEF child cash grant):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a2e6d713-6d98-49bf-83f3-4a845d29702d', - type: 'DECIMAL', - name: 'inc_unhcr_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'UNHCR cash transfer', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'UNHCR cash transfer', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '20ac2e0f-c8f3-400d-8c0a-4cae4ed6b883', - type: 'SELECT_MANY', - name: 'gen_unhcr_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (UNHCR cash transfer):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (UNHCR cash transfer):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '38c8e8c2-7653-447d-a9f7-6ece2c0e357b', - type: 'DECIMAL', - name: 'inc_wfp_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'WFP assistance', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'WFP assistance', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '18113641-e490-47bc-a9ed-80d7d9e1a4f4', - type: 'SELECT_MANY', - name: 'gen_wfp_assist_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (WFP assistance):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (WFP assistance):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '3e632ea4-96c5-4364-b083-98622fde2226', - type: 'DECIMAL', - name: 'inc_ngo_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Cash transfer from an NGO, CBOs , or religious organization', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Cash transfer from an NGO, CBOs , or religious organization', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '1a19e15c-eb9a-49e9-8b98-b3f879b20ae0', - type: 'SELECT_MANY', - name: 'gen_ngo_cbo_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (cash transfer from NGO, CBO, religious org.):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (cash transfer from NGO, CBO, religious org.):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5b194d3e-8cd3-42a3-b98c-ff78ad00680e', - type: 'DECIMAL', - name: 'inc_gov_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Cash transfer from government', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Cash transfer from government', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '906fb8e6-5f33-4225-9944-03f86fa6148b', - type: 'SELECT_MANY', - name: 'gen_gov_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (cash transfer from government):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (cash transfer from government):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '0151b35e-3002-4fed-8a20-31d2e82cccbe', - type: 'DECIMAL', - name: 'inc_loanfamily_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Loan (family, friend)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Loan (family, friend)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4d4b17e0-aa9e-4e1b-8ff7-19d5b88d1ba2', - type: 'SELECT_MANY', - name: 'gen_loanfamily_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (loan- family, friend):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (loan- family, friend):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c93241f9-bbdb-4d22-bd10-f170db0cc461', - type: 'DECIMAL', - name: 'inc_loanbank_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Loan (bank, other financial institution or organization)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Loan (bank, other financial institution or organization)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'dc8043c4-3a05-4b0a-9cfb-d9360771a2cc', - type: 'SELECT_MANY', - name: 'gen_loanbank_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by( loan - bank, financial institution):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by( loan - bank, financial institution):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '769e0551-87c0-4d5f-8c2c-5d5bdc30ad64', - type: 'DECIMAL', - name: 'inc_asset_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Sale of assets (including livestock, land)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Sale of assets (including livestock, land)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '69ea9ef5-3761-4b13-8c35-82dec22974c1', - type: 'SELECT_MANY', - name: 'gen_sale_asset_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (sale of assets):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (sale of assets):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '95cd2dad-1030-4353-9286-a3f5d6a7b59d', - type: 'DECIMAL', - name: 'inc_enterprise_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Income (or goods) from household enterprise (profit or otherwise)', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Income (or goods) from household enterprise (profit or otherwise)', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a11edd90-c8f2-4856-b0c6-c061e679fd68', - type: 'SELECT_MANY', - name: 'gen_enterprise_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (household enterprise):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (household enterprise):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f1a965c9-f4f0-4685-8a98-54a8fd9fc2c4', - type: 'DECIMAL', - name: 'inc_other_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Any other source?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Any other source?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5e0677c3-7dcd-4b67-be77-413486bbe9a1', - type: 'STRING', - name: 'other_name_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Specify other income source:', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Specify other income source:', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '9d3860f5-91ae-466b-a0fb-08179dfe2ace', - type: 'SELECT_MANY', - name: 'gen_other_inc_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Generated by (other income source):', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Generated by (other income source):', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Adult', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Adult', - value: 'by_adult', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Child', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Child', - value: 'by_child', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Father', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Father', - value: 'by_father', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Mother', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Mother', - value: 'by_mother', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'by_other', - admin: null, - listName: 'generated_by', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd25c61f3-1130-46b9-ba32-537e3c25d7fc', - type: 'DECIMAL', - name: 'total_inc_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Total income', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Total income', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '93c8f90a-3d79-4348-adb8-55d8e0f331e1', - type: 'INTEGER', - name: 'round_total_income_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Rounded total income', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Rounded total income', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '71d16835-66e9-4c82-bcbc-81d62985f1c1', - type: 'INTEGER', - name: 'level_debt_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Level of debt in ${currency_h_c}', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Level of debt in ${currency_h_c}', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '1968029a-4a2e-47b5-b581-08d5e1f2e614', - type: 'STRING', - name: 'debt_reason_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - "What is the main reason for your household's choice to assume debt?", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - "What is the main reason for your household's choice to assume debt?", - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e5ee036f-ed03-4b5a-bc43-d3c6f9396d43', - type: 'SELECT_ONE', - name: 'meet_household_needs_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'Can you meet the basic needs of your household according to your priorities?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'Can you meet the basic needs of your household according to your priorities?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '18f8190e-5a21-4b47-84d8-09fe97fc7997', - type: 'INTEGER', - name: 'avg_hhdaily_income_h_f', - required: false, - associatedWith: 'Household', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is the Family’s average daily income in ${currency_h_c}', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the Family’s average daily income in ${currency_h_c}', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - ], -} as AllHouseholdsFlexFieldsAttributesQuery; diff --git a/src/frontend/fixtures/core/fakeAllIndividualsFlexFieldsAttributes.ts b/src/frontend/fixtures/core/fakeAllIndividualsFlexFieldsAttributes.ts deleted file mode 100644 index c023a31f8e..0000000000 --- a/src/frontend/fixtures/core/fakeAllIndividualsFlexFieldsAttributes.ts +++ /dev/null @@ -1,1956 +0,0 @@ -import { AllIndividualsFlexFieldsAttributesQuery } from '../../src/__generated__/graphql'; - -export const fakeAllIndividualsFlexFieldsAttributes = { - allIndividualsFlexFieldsAttributes: [ - { - isFlexField: true, - id: '94a4baec-cbe9-456c-a74d-ad233b206f3d', - type: 'SELECT_ONE', - name: 'spouse_present_primary_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - "Est ce que le conjoint du collecteur est présent lors de l'enregistrement?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Is the spouse present dureing the current registration', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is the spouse present dureing the current registration', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '995cf21f-8ca0-4dfd-b034-3c87bead020e', - type: 'STRING', - name: 'verif_primary_mother_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: "Quel est le prénom de la mère de l'individu collecteur?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: "What is the first name of ${full_name_i_c} 's mother?", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "What is the first name of ${full_name_i_c} 's mother?", - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'c7c3d06b-e62a-439a-af85-c68d0c11e202', - type: 'STRING', - name: 'verif_primary_grandmother_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - "Quel est le prénom de la grand-mère de l'individu collecteur?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: "What is the first name of ${full_name_i_c} 's grandmother?", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "What is the first name of ${full_name_i_c} 's grandmother?", - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '047c4337-1125-4829-8f7a-5db87ddcac55', - type: 'STRING', - name: 'verif_primary_origin_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: 'Quel est le village d’origine du collecteur?', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'What is the village of origin of ${full_name_i_c}?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the village of origin of ${full_name_i_c}?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'ad9368fc-0235-43ad-8577-c62ac9cfd6db', - type: 'INTEGER', - name: 'verif_primary_children_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - 'Combien d’enfants le collecteur a-t-il eu au total, incluant ceux qui ne resident pas dans le ménage et/ou ceux qui sont décédés.', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: - 'How many children did ${full_name_i_c} have in total, including those who do not reside in the household and / or those who died.', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many children did ${full_name_i_c} have in total, including those who do not reside in the household and / or those who died.', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4692b7c1-3385-4469-a58b-6b314a4f0deb', - type: 'STRING', - name: 'verif_primary_oldest_child_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - "Quel est le prénom de l'enfant ainé du collecteur (fille ou garçon)?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: - 'What is the first name of the eldest child of ${full_name_i_c} (girl or boy)?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'What is the first name of the eldest child of ${full_name_i_c} (girl or boy)?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '94adb438-aecf-4c96-90a3-27cdfa4f1031', - type: 'STRING', - name: 'verif_primary_youngest_child_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - "Quel est le prénom de l'enfant cadet du collecteur (fille ou garçon)?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: - 'What is the first name of the youngest child of ${full_name_i_c} (girl or boy)?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'What is the first name of the youngest child of ${full_name_i_c} (girl or boy)?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '1bd415ba-f194-4be4-bab4-0ee5a42ee757', - type: 'INTEGER', - name: 'verif_primary_children_school_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - 'Combien d’enfants du collecteur sont actuellement à l’école primaire ?', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: - 'How many children of ${full_name_i_c} are currently in primary school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many children of ${full_name_i_c} are currently in primary school?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'b45f0b56-fda7-4637-bda7-7ffce2a4a1cb', - type: 'INTEGER', - name: 'verif_primary_rooms_house_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: - 'Combien de pièces fermées y a-t-il dans la maison du collecteur?', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: - "How many closed rooms are there in ${full_name_i_c} 's house?", - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: "How many closed rooms are there in ${full_name_i_c} 's house?", - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '18b7da79-1d3b-4e8a-97bb-728180ba2eab', - type: 'SELECT_ONE', - name: 'cheer_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I have felt cheerful and in good spirits', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I have felt cheerful and in good spirits', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'At no time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'At no time', - value: '0', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Some of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Some of the time', - value: '1', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Less than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Less than half of the time', - value: '2', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'More than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'More than half of the time', - value: '3', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: '4', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'All of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'All of the time', - value: '5', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '6c97f192-65e8-4c1e-8bb9-c28c59e2f3e1', - type: 'SELECT_ONE', - name: 'relaxed_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I have felt relaxed and calm', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I have felt relaxed and calm', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'At no time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'At no time', - value: '0', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Some of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Some of the time', - value: '1', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Less than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Less than half of the time', - value: '2', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'More than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'More than half of the time', - value: '3', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: '4', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'All of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'All of the time', - value: '5', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e49dad0e-62fb-4706-b945-4e17f4a2c64d', - type: 'SELECT_ONE', - name: 'active_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I have felt active and vigorous', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I have felt active and vigorous', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'At no time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'At no time', - value: '0', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Some of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Some of the time', - value: '1', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Less than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Less than half of the time', - value: '2', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'More than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'More than half of the time', - value: '3', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: '4', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'All of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'All of the time', - value: '5', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4ee48ad5-2416-4ffa-b0d3-c3bf024ad6ec', - type: 'SELECT_ONE', - name: 'fresh_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'I woke up feeling fresh and rested', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'I woke up feeling fresh and rested', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'At no time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'At no time', - value: '0', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Some of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Some of the time', - value: '1', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Less than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Less than half of the time', - value: '2', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'More than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'More than half of the time', - value: '3', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: '4', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'All of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'All of the time', - value: '5', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a75f21d1-2a65-4d55-b642-a87eaa632a28', - type: 'SELECT_ONE', - name: 'interested_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'My daily life has been filled with things that interest me', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'My daily life has been filled with things that interest me', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'At no time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'At no time', - value: '0', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Some of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Some of the time', - value: '1', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Less than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Less than half of the time', - value: '2', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'More than half of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'More than half of the time', - value: '3', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Most of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Most of the time', - value: '4', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'All of the time', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'All of the time', - value: '5', - admin: null, - listName: 'wellbeing_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '82310cab-a52d-4520-9686-d76a90ff628b', - type: 'INTEGER', - name: 'wellbeing_index_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Wellbeing Index', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Wellbeing Index', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'e7d95f79-0f71-4cbc-9b20-0a191ebffe1c', - type: 'INTEGER', - name: 'marriage_age_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'If child is married, age at the time of first marriage?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'If child is married, age at the time of first marriage?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd894f47f-a2f8-4702-a1f6-df6641e54083', - type: 'SELECT_ONE', - name: 'school_enrolled_before_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If the individual is a child, does he/she ever been enrolled in school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If the individual is a child, does he/she ever been enrolled in school?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '2df515fe-b10f-4bb8-83fe-07bd0be103e4', - type: 'SELECT_ONE', - name: 'school_enrolled_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If the individual is a child, does he/she currently enrolled in school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If the individual is a child, does he/she currently enrolled in school?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '08f980fc-18ed-415d-b08c-3a9628fdbf7b', - type: 'SELECT_ONE', - name: 'school_frequency_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Is the child currently attending school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is the child currently attending school?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd33f0ffa-ebbb-4307-b606-8c0214e6b6c7', - type: 'SELECT_ONE', - name: 'school_type_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What type of school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What type of school?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Informal', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Informal', - value: 'informal', - admin: null, - listName: 'school_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Other', - value: 'other', - admin: null, - listName: 'school_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Private', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Private', - value: 'private', - admin: null, - listName: 'school_type', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Public', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Public', - value: 'public', - admin: null, - listName: 'school_type', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '488c685b-afd1-4252-8596-688afe86d89e', - type: 'SELECT_ONE', - name: 'school_level_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'At what level is the child attending?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'At what level is the child attending?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'primary', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'primary', - value: 'primary', - admin: null, - listName: 'school_level', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'secondary', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'secondary', - value: 'secondary', - admin: null, - listName: 'school_level', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '09f2a711-d421-4d21-a043-69ef3ffd7057', - type: 'INTEGER', - name: 'years_in_school_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'How many years has the child been in school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'How many years has the child been in school?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'a373f510-90e8-4d72-b7c7-f5c51c3cb358', - type: 'INTEGER', - name: 'minutes_to_school_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'How many minutes does it take for the child to go to the nearest available school?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'How many minutes does it take for the child to go to the nearest available school?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '9169b6e6-0834-4c6b-a8f6-0416004a22b8', - type: 'SELECT_ONE', - name: 'formal_school_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If your child is attending a school, does he/she experience challenges?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If your child is attending a school, does he/she experience challenges?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'bb3ceeb8-01b6-4e2f-865e-529b86b322b6', - type: 'SELECT_MANY', - name: 'diff_challenges_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What difficulties or challenges is he/she experiencing?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What difficulties or challenges is he/she experiencing?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Bullying among students', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Bullying among students', - value: 'bullying', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Distance to school', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Distance to school', - value: 'distance_school', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Not inclusive for children with disabilities', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Not inclusive for children with disabilities', - value: 'exclude_disabled', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Financial constraints', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Financial constraints', - value: 'financial_cons', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'No interest in learning', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No interest in learning', - value: 'no_interest', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Performance issues', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Performance issues', - value: 'performance_issues', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Physical abuse from staff', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Physical abuse from staff', - value: 'physical_abuse', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Poor quality of teaching and/or management (service)', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Poor quality of teaching and/or management (service)', - value: 'poor_teaching', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Psycological distress / severely distressed', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Psycological distress / severely distressed', - value: 'psych_distress', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Safety fears for movement outside home', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Safety fears for movement outside home', - value: 'safety_fear', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'Humiliation, discrimination, verbal abuse from staff', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Humiliation, discrimination, verbal abuse from staff', - value: 'verbal_abuse', - admin: null, - listName: 'diff_challenges', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'd9296591-50c7-4b65-888b-501d744b4a99', - type: 'INTEGER', - name: 'days_out_of_school_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Number of days out of school engaged work?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Number of days out of school engaged work?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '2ae86577-2f3c-48ba-934a-02c8e8278a69', - type: 'SELECT_ONE', - name: 'child_engaged_work_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Is the child out of school engaged in work?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Is the child out of school engaged in work?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '9ffa7917-e083-45bc-a5de-683572e38c0e', - type: 'STRING', - name: 'child_engaged_worktype_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What type of work is the child engaged in?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What type of work is the child engaged in?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '852cceda-ad35-4edd-9ef3-52cf47a1160f', - type: 'INTEGER', - name: 'avg_child_dailyincome_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is the average daily income of the child?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the average daily income of the child?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '33651e29-c1ab-4d33-b493-53330a4071f6', - type: 'SELECT_ONE', - name: 'parents_alive_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Are both mother and father of the child alive?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Are both mother and father of the child alive?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'f5623c11-31d3-45cd-9962-250990db11b5', - type: 'STRING', - name: 'parents_death_reason_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: - 'If one or both have passed away, what is the reason of their death?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: - 'If one or both have passed away, what is the reason of their death?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '35a07759-0748-4f2d-9224-7854110aef0b', - type: 'SELECT_MANY', - name: 'child_where_night_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Where does the child spend his/her night:', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Where does the child spend his/her night:', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'home', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'home', - value: 'home', - admin: null, - listName: 'child_night', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'other', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'other', - value: 'other', - admin: null, - listName: 'child_night', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'street', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'street', - value: 'street', - admin: null, - listName: 'child_night', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { - label: 'work place', - language: 'English(EN)', - __typename: 'LabelNode', - }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'work place', - value: 'work_place', - admin: null, - listName: 'child_night', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '1ae3238a-7c22-4e43-adb6-2b0d8600e1e1', - type: 'STRING', - name: 'specify_where_night_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'Describe where:', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Describe where:', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '4afb4d2e-679c-4ee4-936a-152fadc12fdc', - type: 'INTEGER', - name: 'muac_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { language: 'French(FR)', label: '', __typename: 'LabelNode' }, - { - language: 'English(EN)', - label: 'What is the child Mid-upper arm circumference (MUAC) in mm?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'What is the child Mid-upper arm circumference (MUAC) in mm?', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: 'fa327815-3a53-4fbf-8fb2-7fcadd079dd1', - type: 'IMAGE', - name: 'arm_picture_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: 'Prenez une photo de la mesure du périmètre brachial', - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Picture of the measured arm circumference', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Picture of the measured arm circumference', - hint: "{'English(EN)': ''}", - choices: [], - __typename: 'FieldAttributeNode', - }, - { - isFlexField: true, - id: '5f64619d-82b1-473c-b084-0f86b5c63cbd', - type: 'SELECT_ONE', - name: 'mas_treatment_i_f', - required: false, - associatedWith: 'Individual', - labels: [ - { language: 'Arabic(AR)', label: '', __typename: 'LabelNode' }, - { - language: 'French(FR)', - label: "L'enfant participe-t-il a un traitement nutritionnel?", - __typename: 'LabelNode', - }, - { - language: 'English(EN)', - label: 'Does the child participate in a nutritional programme?', - __typename: 'LabelNode', - }, - { language: 'Spanish(ES)', label: '', __typename: 'LabelNode' }, - ], - labelEn: 'Does the child participate in a nutritional programme?', - hint: "{'English(EN)': ''}", - choices: [ - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'No', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'No', - value: '0', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - { - labels: [ - { label: '', language: 'Arabic(AR)', __typename: 'LabelNode' }, - { label: '', language: 'French(FR)', __typename: 'LabelNode' }, - { label: 'Yes', language: 'English(EN)', __typename: 'LabelNode' }, - { label: '', language: 'Spanish(ES)', __typename: 'LabelNode' }, - ], - labelEn: 'Yes', - value: '1', - admin: null, - listName: 'yes_no', - __typename: 'CoreFieldChoiceObject', - }, - ], - __typename: 'FieldAttributeNode', - }, - ], -} as AllIndividualsFlexFieldsAttributesQuery; diff --git a/src/frontend/fixtures/core/fakeApolloAllLogEntries.ts b/src/frontend/fixtures/core/fakeApolloAllLogEntries.ts deleted file mode 100644 index 73517e643b..0000000000 --- a/src/frontend/fixtures/core/fakeApolloAllLogEntries.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { AllLogEntriesDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllLogEntries = [ - { - request: { - query: AllLogEntriesDocument, - variables: {}, - }, - result: { - data: { - allLogEntries: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - __typename: 'PageInfo', - }, - totalCount: 5, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'TG9nRW50cnlOb2RlOjU=', - action: 'UPDATE', - changes: { status: { to: 'MERGED', from: 'MERGING' } }, - objectRepr: 'roamaniaks', - objectId: '30bb58c2-11ad-4208-8d5e-d435f0796e76', - timestamp: '2022-02-22T15:12:47.536737', - contentType: { - id: '96', - appLabel: 'registration_data', - model: 'registrationdataimport', - name: 'Registration data import', - __typename: 'ContentTypeObjectType', - }, - user: null, - __typename: 'LogEntryNode', - }, - __typename: 'LogEntryNodeEdge', - }, - ], - __typename: 'LogEntryNodeConnection', - }, - logEntryActionChoices: [ - { name: 'Create', value: 'CREATE', __typename: 'ChoiceObject' }, - { name: 'Update', value: 'UPDATE', __typename: 'ChoiceObject' }, - { name: 'Delete', value: 'DELETE', __typename: 'ChoiceObject' }, - { - name: 'Soft Delete', - value: 'SOFT_DELETE', - __typename: 'ChoiceObject', - }, - ], - }, - }, - }, -]; diff --git a/src/frontend/fixtures/core/fakeApolloMe.ts b/src/frontend/fixtures/core/fakeApolloMe.ts deleted file mode 100644 index 95889043dc..0000000000 --- a/src/frontend/fixtures/core/fakeApolloMe.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { MeDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloMe = [ - { - request: { - query: MeDocument, - variables: {}, - }, - result: { - data: { - me: { - id: 'VXNlck5vZGU6YjYzMWUyY2ItMDg1Yi00ODI0LTk3MmYtMDZmMDIxNjgzYzNj', - username: 'macsk@tix.com', - email: 'macsk@tix.com', - firstName: 'Mac', - lastName: 'Szew', - businessAreas: { - edges: [ - { - node: { - id: - 'VXNlckJ1c2luZXNzQXJlYU5vZGU6YmZlOWNhZDItZWFlNi00NzZiLTk4NGUtMjFlOTNlY2MyNzNm', - name: 'Afghanistan', - slug: 'afghanistan', - permissions: [ - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', - 'PAYMENT_VERIFICATION_CREATE', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', - 'PROGRAMME_VIEW_LIST_AND_DETAILS', - 'GRIEVANCES_UPDATE_AS_OWNER', - 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', - 'GRIEVANCES_ADD_NOTE_AS_CREATOR', - 'PROGRAMME_REMOVE', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', - 'RDI_RERUN_DEDUPE', - 'PAYMENT_VERIFICATION_EXPORT', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', - 'DASHBOARD_EXPORT', - 'RDI_IMPORT_DATA', - 'TARGETING_REMOVE', - 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', - 'PAYMENT_VERIFICATION_UPDATE', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', - 'GRIEVANCES_SEND_BACK_AS_CREATOR', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', - 'TARGETING_LOCK', - 'POPULATION_VIEW_HOUSEHOLDS_LIST', - 'GRIEVANCES_ADD_NOTE', - 'PAYMENT_VERIFICATION_VIEW_LIST', - 'GRIEVANCE_ASSIGN', - 'TARGETING_SEND', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', - 'TARGETING_VIEW_DETAILS', - 'PAYMENT_VERIFICATION_FINISH', - 'GRIEVANCES_UPDATE_AS_CREATOR', - 'GRIEVANCES_ADD_NOTE_AS_OWNER', - 'PROGRAMME_UPDATE', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', - 'PAYMENT_VERIFICATION_ACTIVATE', - 'RDI_VIEW_DETAILS', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', - 'GRIEVANCES_VIEW_LIST_SENSITIVE', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', - 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', - 'PAYMENT_VERIFICATION_VIEW_DETAILS', - 'DASHBOARD_VIEW_COUNTRY', - 'TARGETING_DUPLICATE', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', - 'USER_MANAGEMENT_VIEW_LIST', - 'TARGETING_VIEW_LIST', - 'RDI_REFUSE_IMPORT', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', - 'REPORTING_EXPORT', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', - 'TARGETING_UNLOCK', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_SEND_FOR_APPROVAL', - 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', - 'PROGRAMME_CREATE', - 'ALL_VIEW_PII_DATA_ON_LISTS', - 'ACTIVITY_LOG_DOWNLOAD', - 'RDI_VIEW_LIST', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', - 'RDI_MERGE_IMPORT', - 'PROGRAMME_FINISH', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', - 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', - 'GRIEVANCES_CREATE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', - 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_SEND_BACK', - 'PAYMENT_VERIFICATION_VERIFY', - 'POPULATION_VIEW_INDIVIDUALS_LIST', - 'ACTIVITY_LOG_VIEW', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', - 'PAYMENT_VERIFICATION_IMPORT', - 'PROGRAMME_ACTIVATE', - 'TARGETING_CREATE', - 'GRIEVANCES_SET_IN_PROGRESS', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_APPROVE_DATA_CHANGE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', - 'GRIEVANCES_SEND_BACK_AS_OWNER', - 'PAYMENT_VERIFICATION_DISCARD', - 'POPULATION_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_UPDATE', - 'GRIEVANCES_SET_ON_HOLD', - 'TARGETING_UPDATE', - ], - __typename: 'UserBusinessAreaNode', - }, - __typename: 'UserBusinessAreaNodeEdge', - }, - { - node: { - id: - 'VXNlckJ1c2luZXNzQXJlYU5vZGU6NTdiMWUyOWItNGQ4MS00MjA2LWE1YjMtNzJlMWJkZGM2Mzc3', - name: 'Global', - slug: 'global', - permissions: [ - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', - 'PAYMENT_VERIFICATION_CREATE', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', - 'PROGRAMME_VIEW_LIST_AND_DETAILS', - 'GRIEVANCES_UPDATE_AS_OWNER', - 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', - 'GRIEVANCES_ADD_NOTE_AS_CREATOR', - 'PROGRAMME_REMOVE', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', - 'RDI_RERUN_DEDUPE', - 'PAYMENT_VERIFICATION_EXPORT', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', - 'DASHBOARD_EXPORT', - 'RDI_IMPORT_DATA', - 'TARGETING_REMOVE', - 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', - 'PAYMENT_VERIFICATION_UPDATE', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', - 'GRIEVANCES_SEND_BACK_AS_CREATOR', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', - 'TARGETING_LOCK', - 'POPULATION_VIEW_HOUSEHOLDS_LIST', - 'GRIEVANCES_ADD_NOTE', - 'PAYMENT_VERIFICATION_VIEW_LIST', - 'GRIEVANCE_ASSIGN', - 'TARGETING_SEND', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', - 'TARGETING_VIEW_DETAILS', - 'PAYMENT_VERIFICATION_FINISH', - 'GRIEVANCES_UPDATE_AS_CREATOR', - 'GRIEVANCES_ADD_NOTE_AS_OWNER', - 'PROGRAMME_UPDATE', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', - 'PAYMENT_VERIFICATION_ACTIVATE', - 'RDI_VIEW_DETAILS', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', - 'GRIEVANCES_VIEW_LIST_SENSITIVE', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', - 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', - 'PAYMENT_VERIFICATION_VIEW_DETAILS', - 'DASHBOARD_VIEW_COUNTRY', - 'TARGETING_DUPLICATE', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', - 'USER_MANAGEMENT_VIEW_LIST', - 'TARGETING_VIEW_LIST', - 'RDI_REFUSE_IMPORT', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', - 'REPORTING_EXPORT', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', - 'TARGETING_UNLOCK', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_SEND_FOR_APPROVAL', - 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', - 'PROGRAMME_CREATE', - 'ALL_VIEW_PII_DATA_ON_LISTS', - 'ACTIVITY_LOG_DOWNLOAD', - 'RDI_VIEW_LIST', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', - 'RDI_MERGE_IMPORT', - 'PROGRAMME_FINISH', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', - 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', - 'GRIEVANCES_CREATE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', - 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_SEND_BACK', - 'PAYMENT_VERIFICATION_VERIFY', - 'POPULATION_VIEW_INDIVIDUALS_LIST', - 'ACTIVITY_LOG_VIEW', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', - 'PAYMENT_VERIFICATION_IMPORT', - 'PROGRAMME_ACTIVATE', - 'TARGETING_CREATE', - 'GRIEVANCES_SET_IN_PROGRESS', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_APPROVE_DATA_CHANGE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', - 'GRIEVANCES_SEND_BACK_AS_OWNER', - 'PAYMENT_VERIFICATION_DISCARD', - 'POPULATION_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_UPDATE', - 'GRIEVANCES_SET_ON_HOLD', - 'TARGETING_UPDATE', - ], - __typename: 'UserBusinessAreaNode', - }, - __typename: 'UserBusinessAreaNodeEdge', - }, - ], - __typename: 'UserBusinessAreaNodeConnection', - }, - __typename: 'UserNode', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/core/fakeBaseUrl.ts b/src/frontend/fixtures/core/fakeBaseUrl.ts deleted file mode 100644 index 802b732f6a..0000000000 --- a/src/frontend/fixtures/core/fakeBaseUrl.ts +++ /dev/null @@ -1 +0,0 @@ -export const fakeBaseUrl: string = 'afghanistan/programs/UHJvZ3JhbU5vZGU6NmI1OTE1OTktYmNhNy00NDVhLWJmZjItYWU5MTUyMjMxZGFm'; diff --git a/src/frontend/fixtures/core/fakeMe.ts b/src/frontend/fixtures/core/fakeMe.ts deleted file mode 100644 index 898579b805..0000000000 --- a/src/frontend/fixtures/core/fakeMe.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { MeQuery } from '../../src/__generated__/graphql'; - -export const fakeMe = { - me: { - id: 'VXNlck5vZGU6ODA0N2Q5ODctNDQzOC00ZDExLTg0MTctNjJlZGE3MTkyMTI4', - username: 'maciej.szewczyk@tivix.com', - email: 'maciej.szewczyk@tivix.com', - firstName: '', - lastName: '', - businessAreas: { - edges: [ - { - node: { - id: - 'VXNlckJ1c2luZXNzQXJlYU5vZGU6NzdlOTNiN2EtZjE0ZS00ODgwLTkzMGItNmM1NDYwNWE4Mjhh', - name: 'Afghanistan', - slug: 'afghanistan', - permissions: [ - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', - 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', - 'PAYMENT_VERIFICATION_CREATE', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', - 'ALL_VIEW_PII_DATA_ON_LISTS', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', - 'PAYMENT_VERIFICATION_IMPORT', - 'PAYMENT_VERIFICATION_UPDATE', - 'POPULATION_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', - 'POPULATION_VIEW_INDIVIDUALS_LIST', - 'GRIEVANCES_SEND_BACK_AS_CREATOR', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', - 'PAYMENT_VERIFICATION_VIEW_DETAILS', - 'GRIEVANCE_ASSIGN', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', - 'USER_MANAGEMENT_VIEW_LIST', - 'GRIEVANCES_SEND_BACK', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', - 'TARGETING_VIEW_LIST', - 'TARGETING_UNLOCK', - 'TARGETING_DUPLICATE', - 'POPULATION_VIEW_HOUSEHOLDS_LIST', - 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', - 'PROGRAMME_UPDATE', - 'GRIEVANCES_APPROVE_DATA_CHANGE', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', - 'PROGRAMME_ACTIVATE', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', - 'RDI_VIEW_DETAILS', - 'DASHBOARD_EXPORT', - 'REPORTING_EXPORT', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_UPDATE_AS_OWNER', - 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', - 'PAYMENT_VERIFICATION_FINISH', - 'GRIEVANCES_SET_IN_PROGRESS', - 'GRIEVANCES_CREATE', - 'PAYMENT_VERIFICATION_ACTIVATE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', - 'PAYMENT_VERIFICATION_EXPORT', - 'GRIEVANCES_ADD_NOTE_AS_OWNER', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', - 'ACTIVITY_LOG_DOWNLOAD', - 'ACTIVITY_LOG_VIEW', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', - 'PROGRAMME_VIEW_LIST_AND_DETAILS', - 'GRIEVANCES_ADD_NOTE_AS_CREATOR', - 'PROGRAMME_CREATE', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', - 'RDI_IMPORT_DATA', - 'TARGETING_UPDATE', - 'DASHBOARD_VIEW_COUNTRY', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', - 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', - 'TARGETING_CREATE', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', - 'RDI_VIEW_LIST', - 'GRIEVANCES_SEND_FOR_APPROVAL', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_SEND_BACK_AS_OWNER', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', - 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', - 'TARGETING_LOCK', - 'TARGETING_VIEW_DETAILS', - 'RDI_RERUN_DEDUPE', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', - 'TARGETING_SEND', - 'GRIEVANCES_SET_ON_HOLD', - 'GRIEVANCES_UPDATE_AS_CREATOR', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', - 'PAYMENT_VERIFICATION_VIEW_LIST', - 'TARGETING_REMOVE', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', - 'PAYMENT_VERIFICATION_VERIFY', - 'GRIEVANCES_UPDATE', - 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', - 'RDI_MERGE_IMPORT', - 'PAYMENT_VERIFICATION_DISCARD', - 'GRIEVANCES_VIEW_LIST_SENSITIVE', - 'PROGRAMME_FINISH', - 'PAYMENT_VERIFICATION_DELETE', - 'GRIEVANCES_ADD_NOTE', - 'RDI_REFUSE_IMPORT', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', - 'PROGRAMME_REMOVE', - ], - __typename: 'UserBusinessAreaNode', - }, - __typename: 'UserBusinessAreaNodeEdge', - }, - ], - __typename: 'UserBusinessAreaNodeConnection', - }, - __typename: 'UserNode', - }, -} as MeQuery; diff --git a/src/frontend/fixtures/dashboard/fakeChartGrievances.tsx b/src/frontend/fixtures/dashboard/fakeChartGrievances.tsx deleted file mode 100644 index 294c835216..0000000000 --- a/src/frontend/fixtures/dashboard/fakeChartGrievances.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeChartGrievances = { - datasets: [{ data: [2, 1, 0, 0], __typename: '_DatasetsNode' }], - labels: [ - 'Resolved', - 'Unresolved', - 'Unresolved for longer than 30 days', - 'Unresolved for longer than 60 days', - ], - totalNumberOfGrievances: 3, - totalNumberOfFeedback: 0, - totalNumberOfOpenSensitive: 0, - __typename: 'ChartGrievanceTicketsNode', -} as AllChartsQuery['chartGrievances']; diff --git a/src/frontend/fixtures/dashboard/fakeChartIndividualsReachedByAgeAndGender.tsx b/src/frontend/fixtures/dashboard/fakeChartIndividualsReachedByAgeAndGender.tsx deleted file mode 100644 index b5643fd6d4..0000000000 --- a/src/frontend/fixtures/dashboard/fakeChartIndividualsReachedByAgeAndGender.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeChartIndividualsReachedByAgeAndGender = { - datasets: [ - { data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], __typename: '_DatasetsNode' }, - ], - labels: [ - 'Females 0-5', - 'Females 6-11', - 'Females 12-17', - 'Females 18-59', - 'Females 60+', - 'Males 0-5', - 'Males 6-11', - 'Males 12-17', - 'Males 18-59', - 'Males 60+', - ], - __typename: 'ChartDatasetNode', -} as AllChartsQuery['chartIndividualsReachedByAgeAndGender']; diff --git a/src/frontend/fixtures/dashboard/fakeChartIndividualsWithDisabilityReachedByAge.tsx b/src/frontend/fixtures/dashboard/fakeChartIndividualsWithDisabilityReachedByAge.tsx deleted file mode 100644 index acbbc2649e..0000000000 --- a/src/frontend/fixtures/dashboard/fakeChartIndividualsWithDisabilityReachedByAge.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeChartIndividualsWithDisabilityReachedByAge = { - datasets: [ - { - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - label: 'with disability', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - label: 'without disability', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - label: 'total', - __typename: '_DetailedDatasetsNode', - }, - ], - labels: [ - 'Females 0-5', - 'Females 6-11', - 'Females 12-17', - 'Females 18-59', - 'Females 60+', - 'Males 0-5', - 'Males 6-11', - 'Males 12-17', - 'Males 18-59', - 'Males 60+', - ], - __typename: 'ChartDetailedDatasetsNode', -} as AllChartsQuery['chartIndividualsWithDisabilityReachedByAge']; diff --git a/src/frontend/fixtures/dashboard/fakeChartPaymentVerification.tsx b/src/frontend/fixtures/dashboard/fakeChartPaymentVerification.tsx deleted file mode 100644 index a24a838e34..0000000000 --- a/src/frontend/fixtures/dashboard/fakeChartPaymentVerification.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeChartPaymentVerification = { - datasets: [ - { label: 'PENDING', data: [0], __typename: '_DetailedDatasetsNode' }, - { label: 'RECEIVED', data: [0], __typename: '_DetailedDatasetsNode' }, - { label: 'NOT RECEIVED', data: [0], __typename: '_DetailedDatasetsNode' }, - { - label: 'RECEIVED WITH ISSUES', - data: [0], - __typename: '_DetailedDatasetsNode', - }, - ], - labels: ['Payment Verification'], - households: 0, - averageSampleSize: 0, - __typename: 'ChartPaymentVerification', -} as AllChartsQuery['chartPaymentVerification']; diff --git a/src/frontend/fixtures/dashboard/fakeChartTotalTransferredCashByCountry.tsx b/src/frontend/fixtures/dashboard/fakeChartTotalTransferredCashByCountry.tsx deleted file mode 100644 index b8fdacd309..0000000000 --- a/src/frontend/fixtures/dashboard/fakeChartTotalTransferredCashByCountry.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { GlobalAreaChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeChartTotalTransferredCashByCountry = { - datasets: [ - { - data: [1719], - label: 'Actual cash transferred', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0], - label: 'Actual voucher transferred', - __typename: '_DetailedDatasetsNode', - }, - { - data: [1719], - label: 'Total transferred', - __typename: '_DetailedDatasetsNode', - }, - ], - labels: ['Afghanistan'], - __typename: 'ChartDetailedDatasetsNode', -} as GlobalAreaChartsQuery['chartTotalTransferredCashByCountry']; diff --git a/src/frontend/fixtures/dashboard/fakeSectionChildReached.tsx b/src/frontend/fixtures/dashboard/fakeSectionChildReached.tsx deleted file mode 100644 index 41d361e52f..0000000000 --- a/src/frontend/fixtures/dashboard/fakeSectionChildReached.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeSectionChildReached = { - total: 0, - __typename: 'SectionTotalNode', -} as AllChartsQuery['sectionChildReached']; diff --git a/src/frontend/fixtures/dashboard/fakeSectionHouseholdsReached.tsx b/src/frontend/fixtures/dashboard/fakeSectionHouseholdsReached.tsx deleted file mode 100644 index cabe0af7e2..0000000000 --- a/src/frontend/fixtures/dashboard/fakeSectionHouseholdsReached.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeSectionHouseholdsReached = { - total: 1, - __typename: 'SectionTotalNode', -} as AllChartsQuery['sectionHouseholdsReached']; diff --git a/src/frontend/fixtures/dashboard/fakeSectionIndividualsReached.tsx b/src/frontend/fixtures/dashboard/fakeSectionIndividualsReached.tsx deleted file mode 100644 index 693082f17d..0000000000 --- a/src/frontend/fixtures/dashboard/fakeSectionIndividualsReached.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeSectionIndividualsReached = { - total: 0, - __typename: 'SectionTotalNode', -} as AllChartsQuery['sectionIndividualsReached']; diff --git a/src/frontend/fixtures/dashboard/fakeSectionTotalTransferred.tsx b/src/frontend/fixtures/dashboard/fakeSectionTotalTransferred.tsx deleted file mode 100644 index 3482889990..0000000000 --- a/src/frontend/fixtures/dashboard/fakeSectionTotalTransferred.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AllChartsQuery } from '../../src/__generated__/graphql'; - -export const fakeSectionTotalTransferred = { - total: 1719, - __typename: 'SectionTotalNode', -} as AllChartsQuery['sectionTotalTransferred']; diff --git a/src/frontend/fixtures/feedback/fakeApolloAllFeedbacks.ts b/src/frontend/fixtures/feedback/fakeApolloAllFeedbacks.ts deleted file mode 100644 index 4f560cdd04..0000000000 --- a/src/frontend/fixtures/feedback/fakeApolloAllFeedbacks.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { AllFeedbacksDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllFeedbacks = [ - { - request: { - query: AllFeedbacksDocument, - variables: { - feedbackId: '', - issueType: '', - createdBy: '', - createdAtRange: '', - first: 10, - orderBy: '-created_at', - }, - }, - result: { - data: { - allFeedbacks: { - totalCount: 2, - pageInfo: { - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'RmVlZGJhY2tOb2RlOjM3YmJiOTI2LTNkNjUtNDlhNy04YTU0LWRjYjYxMzc5ZWIyMQ==', - unicefId: 'FED-23-0002', - issueType: 'NEGATIVE_FEEDBACK', - householdLookup: null, - createdAt: '2023-06-15T18:32:24.711951+00:00', - createdBy: { - id: - 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - linkedGrievance: null, - __typename: 'FeedbackNode', - }, - __typename: 'FeedbackNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: - 'RmVlZGJhY2tOb2RlOjRmNzdmMmIyLTk4YTMtNGMyMy1hZGM4LTAxMDEwYTczMGY4Nw==', - unicefId: 'FED-23-0001', - issueType: 'NEGATIVE_FEEDBACK', - householdLookup: { - id: - 'SG91c2Vob2xkTm9kZToyMDA3NzQ5OC04MGYwLTQ2MmEtODJlNi04NjZjZWY5MmQwNmE=', - unicefId: 'HH-20-0000.0001', - __typename: 'HouseholdNode', - }, - createdAt: '2023-06-15T15:04:39.755594+00:00', - createdBy: { - id: - 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - linkedGrievance: null, - __typename: 'FeedbackNode', - }, - __typename: 'FeedbackNodeEdge', - }, - ], - __typename: 'FeedbackNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/grievances/fakeApolloAllGrievances.ts b/src/frontend/fixtures/grievances/fakeApolloAllGrievances.ts deleted file mode 100644 index 6d488555de..0000000000 --- a/src/frontend/fixtures/grievances/fakeApolloAllGrievances.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { AllGrievanceTicketDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllGrievances = [ - { - request: { - query: AllGrievanceTicketDocument, - variables: { - household: 'HH-20-0000.0001', - businessArea: 'afghanistan', - }, - }, - result: { - data: { - allGrievanceTicket: { - totalCount: 1, - pageInfo: { - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'PageInfo', - }, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTplYzBkNDEwZi1kMTE1LTQ2OGYtYWI5Ni0wOGQ5NzM4ODUyYjA=', - status: 2, - assignedTo: { - id: - 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - createdBy: { - id: - 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - __typename: 'UserNode', - }, - category: 5, - issueType: null, - createdAt: '2022-06-30T09:25:42.661116', - userModified: '2022-06-30T09:25:42.658121', - admin: null, - household: { - unicefId: 'HH-20-0000.0001', - id: - 'SG91c2Vob2xkTm9kZTowOWI4YWE2ZC1hOTViLTQ5NWEtYTM0ZS1kMGM0YmQyNWE4Njc=', - __typename: 'HouseholdNode', - }, - unicefId: 'GRV-000005', - existingTickets: [], - relatedTickets: [], - __typename: 'GrievanceTicketNode', - }, - __typename: 'GrievanceTicketNodeEdge', - }, - ], - __typename: 'GrievanceTicketNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/grievances/fakeApolloApprovePaymentDetailsMutation.ts b/src/frontend/fixtures/grievances/fakeApolloApprovePaymentDetailsMutation.ts deleted file mode 100644 index 0066901194..0000000000 --- a/src/frontend/fixtures/grievances/fakeApolloApprovePaymentDetailsMutation.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ApprovePaymentDetailsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloApprovePaymentDetailsMutation = [ - { - request: { - query: ApprovePaymentDetailsDocument, - variables: { - approveStatus: false, - grievanceTicketId: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU', - }, - }, - result: { - data: { - approvePaymentDetails: { - grievanceTicket: { - id: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU=', - status: 5, - paymentVerificationTicketDetails: { - id: - 'VGlja2V0UGF5bWVudFZlcmlmaWNhdGlvbkRldGFpbHNOb2RlOmQ5NWFlNzA2LWRmNTQtNDYyMi1hODVmLTRiOGExZTg2Y2VhMQ==', - approveStatus: false, - __typename: 'TicketPaymentVerificationDetailsNode', - }, - __typename: 'GrievanceTicketNode', - }, - __typename: 'PaymentDetailsApproveMutation', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/grievances/fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation.ts b/src/frontend/fixtures/grievances/fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation.ts deleted file mode 100644 index 8f4d348e25..0000000000 --- a/src/frontend/fixtures/grievances/fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { UpdateGrievanceDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation = [ - { - request: { - query: UpdateGrievanceDocument, - variables: { - approveStatus: false, - grievanceTicketId: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU', - }, - }, - result: { - data: { - approvePaymentDetails: { - grievanceTicket: { - id: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU=', - status: 5, - paymentVerificationTicketDetails: { - id: - 'VGlja2V0UGF5bWVudFZlcmlmaWNhdGlvbkRldGFpbHNOb2RlOmQ5NWFlNzA2LWRmNTQtNDYyMi1hODVmLTRiOGExZTg2Y2VhMQ==', - approveStatus: false, - __typename: 'TicketPaymentVerificationDetailsNode', - }, - __typename: 'GrievanceTicketNode', - }, - __typename: 'PaymentDetailsApproveMutation', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/grievances/fakeGrievanceTicket.ts b/src/frontend/fixtures/grievances/fakeGrievanceTicket.ts deleted file mode 100644 index f3998c82d0..0000000000 --- a/src/frontend/fixtures/grievances/fakeGrievanceTicket.ts +++ /dev/null @@ -1,522 +0,0 @@ -import { GrievanceTicketQuery } from '../../src/__generated__/graphql'; - -export const fakeGrievanceTicket = { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2MWU4Y2UwMC05NTU2LTQ1NjEtODc4Mi1kZjUxYTU0ZDEzZjE=', - unicefId: 'GRV-000004', - status: 3, - category: 2, - consent: true, - priority: 1, - urgency: 1, - createdBy: { - id: 'VXNlck5vZGU6OTEyZjg1MGItOWQwMS00ZTdmLWFiZDgtNjJkZTcwMjhjODY1', - firstName: 'Maciej', - lastName: 'Szewczyk', - email: 'fffff@gmail.com', - __typename: 'UserNode', - }, - createdAt: '2022-02-11T09:25:34.682132', - updatedAt: '2022-02-11T09:32:44.102182', - description: 'dwdw', - language: '', - admin: null, - admin2: null, - area: '', - assignedTo: { - id: 'VXNlck5vZGU6OTEyZjg1MGItOWQwMS00ZTdmLWFiZDgtNjJkZTcwMjhjODY1', - firstName: 'Maciej', - lastName: 'Szewczyk', - email: 'fffff@gmail.com', - __typename: 'UserNode', - }, - individual: { - id: 'SW5kaXZpZHVhbE5vZGU6ZjVmMzgwN2ItYTBjOS00Mjk0LTg0Y2QtNDhkMjllMjZhODU3', - age: 58, - lastRegistrationDate: '1988-06-15', - createdAt: '2022-02-07T11:46:27.922172', - updatedAt: '2022-02-07T11:46:27.922194', - fullName: 'Agata Kowalska', - sex: 'FEMALE', - unicefId: 'IND-88-0000.0005', - birthDate: '1964-01-10', - maritalStatus: 'SINGLE', - phoneNo: '+48875012932', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2022-02-08T07:35:39.718645', - role: 'PRIMARY', - relationship: 'HEAD', - status: 'ACTIVE', - documents: { - edges: [ - { - node: { - id: 'RG9jdW1lbnROb2RlOjg5ZTE2YzQ4LWYwOWMtNGVlMC1iYWYyLTZiOWFiYjZjMjVlNg==', - country: 'Poland', - countryIso3: 'POL', - documentNumber: 'TSH221375', - photo: null, - type: { - label: 'National ID', - key: 'NATIONAL_ID', - __typename: 'DocumentTypeNode', - }, - __typename: 'DocumentNode', - }, - __typename: 'DocumentNodeEdge', - }, - ], - __typename: 'DocumentNodeConnection', - }, - identities: { edges: [], __typename: 'IndividualIdentityNodeConnection' }, - household: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - unicefId: 'HH-20-0000.0001', - status: 'ACTIVE', - admin1: { - id: 'QWRtaW5BcmVhTm9kZTo3NmU0MDRlYS1mYjVhLTRkMDktODVkMS1hNTA3MjU4OThmNzk=', - name: 'Nangarhar', - level: 1, - pCode: 'AF06', - __typename: 'AreaNode', - }, - admin2: { - id: 'QWRtaW5BcmVhTm9kZTpkMTU1MjA2MC05NWExLTQ5ODItODY3MC0yMzg4NDcxZDUxYTA=', - name: 'Achin', - level: 2, - pCode: 'AF0617', - __typename: 'AreaNode', - }, - programs: { - edges: [ - { - node: { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - __typename: 'ProgramNode', - }, - __typename: 'ProgramNodeEdge', - }, - ], - __typename: 'ProgramNodeConnection', - }, - __typename: 'HouseholdNode', - address: '938 Luna Cliffs Apt. 551\nJameschester, SC 24934', - countryOrigin: 'San Marino', - adminArea: { - id: 'QWRtaW5BcmVhTm9kZTpkMTU1MjA2MC05NWExLTQ5ODItODY3MC0yMzg4NDcxZDUxYTA=', - name: 'Achin', - level: 2, - __typename: 'AreaNode', - }, - }, - __typename: 'IndividualNode', - givenName: 'Agata', - familyName: 'Kowalska', - estimatedBirthDate: false, - pregnant: true, - lastSyncAt: null, - deduplicationBatchStatus: 'UNIQUE_IN_BATCH', - disability: 'NOT_DISABLED', - commsDisability: '', - firstRegistrationDate: '1988-06-15', - whoAnswersAltPhone: '', - memoryDisability: '', - middleName: '', - whoAnswersPhone: '', - phoneNoAlternative: '', - hearingDisability: '', - observedDisability: [], - individualId: '', - seeingDisability: '', - physicalDisability: '', - selfcareDisability: '', - photo: null, - workStatus: 'NOT_PROVIDED', - enrolledInNutritionProgramme: null, - administrationOfRutf: null, - headingHousehold: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6ZjVmMzgwN2ItYTBjOS00Mjk0LTg0Y2QtNDhkMjllMjZhODU3', - givenName: 'Agata', - familyName: 'Kowalska', - fullName: 'Agata Kowalska', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - flexFields: { - muac_i_f: 120, - school_enrolled_i_f: '1', - school_enrolled_before_i_f: '0', - }, - householdsAndRoles: [ - { - id: 'fe0e26a2-8db0-485d-942c-3a1333561db1', - role: 'PRIMARY', - household: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - unicefId: 'HH-20-0000.0001', - __typename: 'HouseholdNode', - }, - __typename: 'IndividualRoleInHouseholdNode', - individual: { - id: 'SW5kaXZpZHVhbE5vZGU6ZjVmMzgwN2ItYTBjOS00Mjk0LTg0Y2QtNDhkMjllMjZhODU3', - unicefId: 'IND-88-0000.0005', - __typename: 'IndividualNode', - }, - }, - ], - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - createdAt: '2022-02-07T11:46:27.904164', - residenceStatus: 'REFUGEE', - size: 4, - totalCashReceived: '19318.00', - totalCashReceivedUsd: '24697.00', - currency: '', - firstRegistrationDate: '2020-08-22T00:00:00', - lastRegistrationDate: '2020-08-22T00:00:00', - status: 'ACTIVE', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - hasDuplicates: false, - unicefId: 'HH-20-0000.0001', - flexFields: { months_displaced_h_f: 12, difficulty_breathing_h_f: '1' }, - unhcrId: '', - geopoint: { type: 'Point', coordinates: [70.210209, 172.085021] }, - village: '', - adminAreaTitle: 'Achin', - admin1: { - id: 'QWRtaW5BcmVhTm9kZTo3NmU0MDRlYS1mYjVhLTRkMDktODVkMS1hNTA3MjU4OThmNzk=', - name: 'Nangarhar', - level: 1, - pCode: 'AF06', - __typename: 'AreaNode', - }, - admin2: { - id: 'QWRtaW5BcmVhTm9kZTpkMTU1MjA2MC05NWExLTQ5ODItODY3MC0yMzg4NDcxZDUxYTA=', - name: 'Achin', - level: 2, - pCode: 'AF0617', - __typename: 'AreaNode', - }, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6ZjVmMzgwN2ItYTBjOS00Mjk0LTg0Y2QtNDhkMjllMjZhODU3', - fullName: 'Agata Kowalska', - givenName: 'Agata', - familyName: 'Kowalska', - __typename: 'IndividualNode', - }, - address: '938 Luna Cliffs Apt. 551\nJameschester, SC 24934', - individuals: { - totalCount: 3, - __typename: 'IndividualNodeConnection', - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YTI2ODYyMTAtYjBhNi00NTI1LWI4YTAtYTFmY2FlMWIwMjE5', - age: 80, - lastRegistrationDate: '1942-12-12', - createdAt: '2022-02-07T11:46:27.919328', - updatedAt: '2022-02-07T11:46:27.919378', - fullName: 'Alicja Kowalska', - sex: 'FEMALE', - unicefId: 'IND-42-0000.0001', - birthDate: '1941-08-26', - maritalStatus: 'MARRIED', - phoneNo: '+48503123555', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2022-02-08T07:35:39.718645', - role: 'ALTERNATE', - relationship: 'NON_BENEFICIARY', - status: 'ACTIVE', - documents: { - edges: [ - { - node: { - id: 'RG9jdW1lbnROb2RlOjYzYjM1NzA4LWZhNzYtNDExMy1iMmIyLWE5MGU1YWE2OTZiOA==', - country: 'Poland', - countryIso3: 'POL', - documentNumber: 'BSH221315', - photo: null, - type: { - label: 'National ID', - key: 'NATIONAL_ID', - __typename: 'DocumentTypeNode', - }, - __typename: 'DocumentNode', - }, - __typename: 'DocumentNodeEdge', - }, - ], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: null, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZjVmMzgwN2ItYTBjOS00Mjk0LTg0Y2QtNDhkMjllMjZhODU3', - age: 58, - lastRegistrationDate: '1988-06-15', - createdAt: '2022-02-07T11:46:27.922172', - updatedAt: '2022-02-07T11:46:27.922194', - fullName: 'Agata Kowalska', - sex: 'FEMALE', - unicefId: 'IND-88-0000.0005', - birthDate: '1964-01-10', - maritalStatus: 'SINGLE', - phoneNo: '+48875012932', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2022-02-08T07:35:39.718645', - role: 'PRIMARY', - relationship: 'HEAD', - status: 'ACTIVE', - documents: { - edges: [ - { - node: { - id: 'RG9jdW1lbnROb2RlOjg5ZTE2YzQ4LWYwOWMtNGVlMC1iYWYyLTZiOWFiYjZjMjVlNg==', - country: 'Poland', - countryIso3: 'POL', - documentNumber: 'TSH221375', - photo: null, - type: { - label: 'National ID', - key: 'NATIONAL_ID', - __typename: 'DocumentTypeNode', - }, - __typename: 'DocumentNode', - }, - __typename: 'DocumentNodeEdge', - }, - ], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - unicefId: 'HH-20-0000.0001', - status: 'ACTIVE', - admin1: { - id: 'QWRtaW5BcmVhTm9kZTo3NmU0MDRlYS1mYjVhLTRkMDktODVkMS1hNTA3MjU4OThmNzk=', - name: 'Nangarhar', - level: 1, - pCode: 'AF06', - __typename: 'AreaNode', - }, - admin2: { - id: 'QWRtaW5BcmVhTm9kZTpkMTU1MjA2MC05NWExLTQ5ODItODY3MC0yMzg4NDcxZDUxYTA=', - name: 'Achin', - level: 2, - pCode: 'AF0617', - __typename: 'AreaNode', - }, - programs: { - edges: [ - { - node: { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - __typename: 'ProgramNode', - }, - __typename: 'ProgramNodeEdge', - }, - ], - __typename: 'ProgramNodeConnection', - }, - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YWI5YWZhNzUtMTg0Yy00NDIxLWJmMGUtNTIzZGUxNWMyOGFm', - age: 22, - lastRegistrationDate: '1988-06-15', - createdAt: '2022-02-07T11:46:27.922555', - updatedAt: '2022-02-07T11:46:27.922577', - fullName: 'Angela Kowalska', - sex: 'FEMALE', - unicefId: 'IND-88-0000.0006', - birthDate: '2000-01-10', - maritalStatus: 'SINGLE', - phoneNo: '+48724467321', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2022-02-08T07:35:39.718645', - role: 'NO_ROLE', - relationship: 'BROTHER_SISTER', - status: 'ACTIVE', - documents: { - edges: [ - { - node: { - id: 'RG9jdW1lbnROb2RlOjM0NjQwYmU2LTc4ZTgtNDc2Zi1iYWM2LWFjOTIwZTIwYmExOQ==', - country: 'Poland', - countryIso3: 'POL', - documentNumber: 'CSH221395', - photo: null, - type: { - label: 'National ID', - key: 'NATIONAL_ID', - __typename: 'DocumentTypeNode', - }, - __typename: 'DocumentNode', - }, - __typename: 'DocumentNodeEdge', - }, - ], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo3NjExNzM2Ny0yYWFiLTRmNTEtODUwOC1mMzBmODliYWUzYzE=', - unicefId: 'HH-20-0000.0001', - status: 'ACTIVE', - admin1: { - id: 'QWRtaW5BcmVhTm9kZTo3NmU0MDRlYS1mYjVhLTRkMDktODVkMS1hNTA3MjU4OThmNzk=', - name: 'Nangarhar', - level: 1, - pCode: 'AF06', - __typename: 'AreaNode', - }, - admin2: { - id: 'QWRtaW5BcmVhTm9kZTpkMTU1MjA2MC05NWExLTQ5ODItODY3MC0yMzg4NDcxZDUxYTA=', - name: 'Achin', - level: 2, - pCode: 'AF0617', - __typename: 'AreaNode', - }, - programs: { - edges: [ - { - node: { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - __typename: 'ProgramNode', - }, - __typename: 'ProgramNodeEdge', - }, - ], - __typename: 'ProgramNodeConnection', - }, - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - }, - programs: { - edges: [ - { - node: { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - __typename: 'ProgramNode', - }, - __typename: 'ProgramNodeEdge', - }, - ], - __typename: 'ProgramNodeConnection', - }, - __typename: 'HouseholdNode', - activeIndividualsCount: 2, - countryOrigin: 'San Marino', - country: 'Isle of Man', - femaleAgeGroup05Count: 0, - femaleAgeGroup611Count: 0, - femaleAgeGroup1217Count: 0, - femaleAgeGroup1859Count: null, - femaleAgeGroup60Count: null, - pregnantCount: null, - maleAgeGroup05Count: 0, - maleAgeGroup611Count: 0, - maleAgeGroup1217Count: 0, - maleAgeGroup1859Count: null, - maleAgeGroup60Count: null, - femaleAgeGroup05DisabledCount: 0, - femaleAgeGroup611DisabledCount: 0, - femaleAgeGroup1217DisabledCount: 0, - femaleAgeGroup1859DisabledCount: null, - femaleAgeGroup60DisabledCount: null, - maleAgeGroup05DisabledCount: 0, - maleAgeGroup611DisabledCount: 0, - maleAgeGroup1217DisabledCount: 0, - maleAgeGroup1859DisabledCount: null, - maleAgeGroup60DisabledCount: null, - fchildHoh: false, - childHoh: false, - start: null, - deviceid: '', - orgNameEnumerator: 'UNICEF', - returnee: false, - nameEnumerator: 'Harley Rawlings', - lastSyncAt: null, - consentSharing: [ - 'HUMANITARIAN_PARTNER', - 'PRIVATE_PARTNER', - 'GOVERNMENT_PARTNER', - 'UNICEF', - '', - ], - orgEnumerator: 'UNICEF', - updatedAt: '2022-02-07T11:46:27.904196', - consent: true, - registrationDataImport: { - name: 'romaniaks', - dataSource: 'XLS', - importDate: '2022-02-07T11:45:52.336512', - importedBy: { - firstName: 'Maciej', - lastName: 'Szewczyk', - email: 'fffff@gmail.com', - username: 'maciej.szewczyk@tivix.com', - __typename: 'UserNode', - }, - __typename: 'RegistrationDataImportNode', - }, - }, - paymentRecord: null, - relatedTickets: [], - addIndividualTicketDetails: null, - individualDataUpdateTicketDetails: null, - householdDataUpdateTicketDetails: null, - deleteIndividualTicketDetails: { - id: 'VGlja2V0RGVsZXRlSW5kaXZpZHVhbERldGFpbHNOb2RlOjVhZWE2YTEzLTVkZGItNGY5My04NGM0LWExOGM1NmQxMzI1OA==', - roleReassignData: '{}', - approveStatus: false, - __typename: 'TicketDeleteIndividualDetailsNode', - }, - systemFlaggingTicketDetails: null, - paymentVerificationTicketDetails: null, - needsAdjudicationTicketDetails: null, - issueType: 15, - ticketNotes: { edges: [], __typename: 'TicketNoteNodeConnection' }, - __typename: 'GrievanceTicketNode', -} as unknown as GrievanceTicketQuery['grievanceTicket']; diff --git a/src/frontend/fixtures/grievances/fakeGrievanceTicketPaymentVerification.ts b/src/frontend/fixtures/grievances/fakeGrievanceTicketPaymentVerification.ts deleted file mode 100644 index 3b3772c8d3..0000000000 --- a/src/frontend/fixtures/grievances/fakeGrievanceTicketPaymentVerification.ts +++ /dev/null @@ -1,863 +0,0 @@ -import { GrievanceTicketNode } from '../../src/__generated__/graphql'; - -export const fakeGrievanceTicketPaymentVerification = { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTowNmQ4MGI3Yi00Zjc5LTQ3YWUtOTA5Ni00YTYyM2IwOGI2ZTk=', - unicefId: 'GRV-0001741', - status: 1, - category: 4, - consent: true, - partner: null, - targetId: 'HH-0', - businessArea: { - postponeDeduplication: false, - __typename: 'UserBusinessAreaNode', - }, - createdBy: { - id: 'VXNlck5vZGU6NTQ2YmMzZTYtZWE3OS00MjRjLTg2MDEtYTQzNzI4ZDVlYzZi', - firstName: '', - lastName: '', - email: 'marek.biczysko@kellton.com', - __typename: 'UserNode', - }, - createdAt: '2024-12-11T10:43:51.217634+00:00', - updatedAt: '2025-02-09T11:20:00.299803+00:00', - description: '111111', - language: '', - admin: null, - admin2: null, - area: '', - assignedTo: null, - adminUrl: - '/api/unicorn/grievance/grievanceticket/06d80b7b-4f79-47ae-9096-4a623b08b6e9/change/', - individual: null, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - status: 'ACTIVE', - adminUrl: - '/api/unicorn/household/household/ab1744c3-cf04-4328-881b-c45e763bc0f5/change/', - createdAt: '2024-02-27T13:59:37.896164+00:00', - rdiMergeStatus: 'MERGED', - residenceStatus: 'REFUGEE', - maleChildrenCount: null, - femaleChildrenCount: null, - childrenDisabledCount: null, - size: 4, - totalCashReceived: null, - totalCashReceivedUsd: null, - currency: '', - firstRegistrationDate: '2024-02-12T21:31:59+00:00', - lastRegistrationDate: '2024-01-28T05:03:22+00:00', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - hasDuplicates: false, - unicefId: 'HH-0', - flexFields: { - treatment_facility_h_f: ['other_public', 'government_health_center'], - other_treatment_facility_h_f: 'narodowy fundusz zdrowia', - }, - unhcrId: '', - geopoint: null, - village: 'Armstrongberg', - adminAreaTitle: 'Charkh - AF0505', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6MjE2ZjczMGEtNTA3OC00ZjQxLWFjZDYtYjZiMTNmOTRjMDFk', - fullName: 'Jasmine Heather Long', - givenName: 'Jasmine', - familyName: 'Long', - __typename: 'IndividualNode', - }, - address: '585 Summers Knolls\nWest Mindy, TN 78990', - individuals: { - totalCount: 6, - __typename: 'IndividualNodeConnection', - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZWZkOTVhYmMtNDNiYS00M2ZhLWE2YzAtMzZkZDc1ZmQ0YWY5', - age: 20, - lastRegistrationDate: '2024-02-03', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/efd95abc-43ba-43fa-a6c0-36dd75fd4af9/change/', - createdAt: '2024-02-27T13:59:37.593747+00:00', - updatedAt: '2024-02-27T13:59:37.593751+00:00', - fullName: 'Jamie Stacey Hendricks', - sex: 'MALE', - unicefId: 'IND-1', - birthDate: '2004-12-07', - maritalStatus: 'MARRIED', - phoneNo: '+48609456001', - phoneNoValid: true, - email: 'scottsmith@example.net', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'NO_ROLE', - relationship: 'DAUGHTERINLAW_SONINLAW', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - status: 'ACTIVE', - importId: 'HH-0', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - program: null, - totalCashReceivedUsd: null, - lastRegistrationDate: '2024-01-28T05:03:22+00:00', - start: '2024-02-16T17:11:19+00:00', - firstRegistrationDate: '2024-02-12T21:31:59+00:00', - countryOrigin: 'Comoros', - village: 'Armstrongberg', - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YjM4MmE2YTctYWIxYi00OWUxLWJiYjgtYzYwN2RhZTkwYzcx', - age: 18, - lastRegistrationDate: '2024-01-24', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/b382a6a7-ab1b-49e1-bbb8-c607dae90c71/change/', - createdAt: '2024-02-27T13:59:37.593865+00:00', - updatedAt: '2024-02-27T13:59:37.593869+00:00', - fullName: 'Adam David Floyd', - sex: 'FEMALE', - unicefId: 'IND-2', - birthDate: '2006-06-17', - maritalStatus: 'DIVORCED', - phoneNo: '+48609456002', - phoneNoValid: true, - email: 'opineda@example.org', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'NO_ROLE', - relationship: 'WIFE_HUSBAND', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - status: 'ACTIVE', - importId: 'HH-0', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - program: null, - totalCashReceivedUsd: null, - lastRegistrationDate: '2024-01-28T05:03:22+00:00', - start: '2024-02-16T17:11:19+00:00', - firstRegistrationDate: '2024-02-12T21:31:59+00:00', - countryOrigin: 'Comoros', - village: 'Armstrongberg', - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YTBiYzRlMTktOTgxYy00MTFiLWJkYjQtOGFhODIxMDMzNTE5', - age: 23, - lastRegistrationDate: '2024-01-10', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/a0bc4e19-981c-411b-bdb4-8aa821033519/change/', - createdAt: '2024-02-27T13:59:37.593980+00:00', - updatedAt: '2024-02-27T13:59:37.593984+00:00', - fullName: 'Amanda Faith Freeman', - sex: 'FEMALE', - unicefId: 'IND-3', - birthDate: '2001-08-30', - maritalStatus: 'WIDOWED', - phoneNo: '+48609456003', - phoneNoValid: true, - email: 'mark63@example.net', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'NO_ROLE', - relationship: 'BROTHER_SISTER', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - status: 'ACTIVE', - importId: 'HH-0', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - program: null, - totalCashReceivedUsd: null, - lastRegistrationDate: '2024-01-28T05:03:22+00:00', - start: '2024-02-16T17:11:19+00:00', - firstRegistrationDate: '2024-02-12T21:31:59+00:00', - countryOrigin: 'Comoros', - village: 'Armstrongberg', - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ODk5YzYxMTgtYzk0YS00MGNlLTlmOTAtNWMxMWM0NzkzMjE4', - age: 42, - lastRegistrationDate: '2024-01-14', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/899c6118-c94a-40ce-9f90-5c11c4793218/change/', - createdAt: '2024-02-27T13:59:37.594114+00:00', - updatedAt: '2024-02-27T13:59:37.594119+00:00', - fullName: 'Brandy Shane Stone', - sex: 'MALE', - unicefId: 'IND-4', - birthDate: '1982-08-08', - maritalStatus: 'WIDOWED', - phoneNo: '+48609456004', - phoneNoValid: true, - email: 'steven31@example.com', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'PRIMARY', - relationship: 'NON_BENEFICIARY', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: null, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YzI3Y2I0NWItNWJjYy00MzBkLWJkZjAtYWQ1NDMzNGIyYmJk', - age: 81, - lastRegistrationDate: '2024-02-09', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/c27cb45b-5bcc-430d-bdf0-ad54334b2bbd/change/', - createdAt: '2024-02-27T13:59:37.594228+00:00', - updatedAt: '2024-02-27T13:59:37.594232+00:00', - fullName: 'Jose Tracy Davis', - sex: 'MALE', - unicefId: 'IND-5', - birthDate: '1943-02-21', - maritalStatus: 'MARRIED', - phoneNo: '+48609456005', - phoneNoValid: true, - email: 'tiffany78@example.org', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'ALTERNATE', - relationship: 'NON_BENEFICIARY', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: null, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MjE2ZjczMGEtNTA3OC00ZjQxLWFjZDYtYjZiMTNmOTRjMDFk', - age: 33, - lastRegistrationDate: '2024-01-02', - rdiMergeStatus: 'MERGED', - adminUrl: - '/api/unicorn/household/individual/216f730a-5078-4f41-acd6-b6b13f94c01d/change/', - createdAt: '2024-02-27T13:59:37.593606+00:00', - updatedAt: '2024-04-24T09:47:51.050345+00:00', - fullName: 'Jasmine Heather Long', - sex: 'MALE', - unicefId: 'IND-0', - birthDate: '1991-04-01', - maritalStatus: 'A_', - phoneNo: '+48609456000', - phoneNoValid: true, - email: 'ariel71@example.net', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2025-01-26T00:00:21.840144+00:00', - role: 'NO_ROLE', - relationship: 'HEAD', - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - status: 'ACTIVE', - importId: 'HH-0', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - program: null, - totalCashReceivedUsd: null, - lastRegistrationDate: '2024-01-28T05:03:22+00:00', - start: '2024-02-16T17:11:19+00:00', - firstRegistrationDate: '2024-02-12T21:31:59+00:00', - countryOrigin: 'Comoros', - village: 'Armstrongberg', - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - }, - program: null, - __typename: 'HouseholdNode', - activeIndividualsCount: 4, - countryOrigin: 'Comoros', - country: 'Finland', - zipCode: null, - femaleAgeGroup05Count: 3, - femaleAgeGroup611Count: 1, - femaleAgeGroup1217Count: 3, - femaleAgeGroup1859Count: 1, - femaleAgeGroup60Count: 1, - pregnantCount: 2, - maleAgeGroup05Count: 0, - maleAgeGroup611Count: 1, - maleAgeGroup1217Count: 3, - maleAgeGroup1859Count: 2, - maleAgeGroup60Count: 1, - femaleAgeGroup05DisabledCount: null, - femaleAgeGroup611DisabledCount: null, - femaleAgeGroup1217DisabledCount: null, - femaleAgeGroup1859DisabledCount: null, - femaleAgeGroup60DisabledCount: null, - maleAgeGroup05DisabledCount: null, - maleAgeGroup611DisabledCount: null, - maleAgeGroup1217DisabledCount: null, - maleAgeGroup1859DisabledCount: null, - maleAgeGroup60DisabledCount: null, - fchildHoh: null, - childHoh: null, - start: '2024-02-16T17:11:19+00:00', - deviceid: '35c8a12e66ffa35f708dd2721611e4d6', - orgNameEnumerator: 'Partner Organization', - returnee: null, - nameEnumerator: 'Daniel Brooks', - lastSyncAt: null, - consentSharing: ['UNICEF', 'HUMANITARIAN_PARTNER'], - orgEnumerator: 'PARTNER', - updatedAt: '2024-02-27T13:59:37.896168+00:00', - consent: true, - registrationDataImport: { - name: 'Successful product. - 1708527046692986908', - dataSource: 'XLS', - importDate: '2024-02-21T14:50:46.693309+00:00', - importedBy: { - firstName: 'Paulina', - lastName: 'Kujawa', - email: 'paulina.kujawa@kellton.com', - username: 'paulina.kujawa@kellton.com', - __typename: 'UserNode', - }, - __typename: 'RegistrationDataImportNode', - }, - deliveredQuantities: [ - { - totalDeliveredQuantity: '0', - currency: 'USD', - __typename: 'DeliveredQuantityNode', - }, - { - totalDeliveredQuantity: '0', - currency: 'AFN', - __typename: 'DeliveredQuantityNode', - }, - { - totalDeliveredQuantity: '0', - currency: 'AWG', - __typename: 'DeliveredQuantityNode', - }, - { - totalDeliveredQuantity: '0', - currency: 'DZD', - __typename: 'DeliveredQuantityNode', - }, - ], - programRegistrationId: null, - }, - paymentRecord: { - id: 'UGF5bWVudE5vZGU6MTAwMDAwMDAtZmVlZC1iZWVmLTAwMDAtMDAwMDBiYWRmMDBk', - unicefId: 'RCPT-0060-24-0.000.078', - deliveredQuantity: null, - entitlementQuantity: null, - parent: { - id: 'UGF5bWVudFBsYW5Ob2RlOjAwMDAwMDAwLWZlZWQtYmVlZi0wMDAwLTAwMDAwYmFkZjAwZA==', - unicefId: 'PP-0060-24-00000023', - __typename: 'PaymentPlanNode', - }, - verification: null, - __typename: 'PaymentNode', - }, - relatedTickets: [ - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3MGU1NDRlYy0zMmM0LTRiMTEtYjJkMi0xMzcyNTdmY2UwYjk=', - unicefId: 'GRV-0000062', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTowZDYzNzgwMi03M2I1LTRmMTMtYjA4OC1jNjgxN2FmNjA1NDI=', - unicefId: 'GRV-0000090', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTowYzJkYWQ0Ni03ZjI4LTQ2OTgtOWFkYS03ZmRjOGJmMjgzYTA=', - unicefId: 'GRV-0001487', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTpjN2RiMTBmZS04NGVhLTQ3NzQtOTQyYy02YjZlY2ZmMTRlNmQ=', - unicefId: 'GRV-0000745', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTo2MTAzNGZhOS1lNGUwLTQ3OTUtYjY4NC1lNzZjMjBhNzc1NzE=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo4ODI3ZmEwMi04NDFlLTQ2YzktOWY3OS0yNWRlMTcwYmQ2MDU=', - unicefId: 'GRV-0000744', - status: 3, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2ZGE5MjE1Yy0xM2EyLTQyNWItYTMzYi1lZGFiYzFlMDY4Nzc=', - unicefId: 'GRV-0001738', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTpmN2U3MDQ3MC00OWJiLTRiNzYtOWU2OC01ZTAyYjA5YmUyNjM=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZToxMjdlYzdmZS0wZjkxLTRjMmUtOWQ1Ny05MTI2Yzg2ZGVhMDE=', - unicefId: 'GRV-0000057', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo1YjA3Y2EzNC1lMzViLTQ5NDQtYjMyOS1hYzNmMGY2MDUxZDY=', - unicefId: 'GRV-0000743', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2NThmYWVkMy04ZmQ4LTQzMWItYjc4MS0wMmUwMDMyN2QzMzA=', - unicefId: 'GRV-0000088', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2MmU0MDBjNC1kMTc5LTQxYTktOTNmNC1hODdmZmMzMzcxNDI=', - unicefId: 'GRV-0000089', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZToxZTgyNjBhNi0wMDY3LTRhYWItYmIyOC05NzNjZWEzNTc0NWU=', - unicefId: 'GRV-0000061', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo0NjY4MDcwMy02MzZjLTRjYjgtOTg2Yy01N2QxMTA5OWNiYmU=', - unicefId: 'GRV-0001739', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTo2MTAzNGZhOS1lNGUwLTQ3OTUtYjY4NC1lNzZjMjBhNzc1NzE=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTplYzQyODZkNC1lYTAwLTQ2MzEtYWU2My02ZDY2MGI2Yjg0NjM=', - unicefId: 'GRV-0001719', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTpiNDRiNDJhOC0xZGVjLTRhODgtYjBlOS01YzY2NmYyY2IyYjc=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTplZjdiMTI1Yi1jZWE5LTRlNTAtYmIzMi01NTYzODA3Y2UzNzU=', - unicefId: 'GRV-0001735', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTozYzM0M2ViYS01ODlkLTRiNmUtYjMxNS0yY2RhMmM4OGJjMDk=', - unicefId: 'GRV-0000060', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo4N2M2YzJiNi05ZjNkLTQ5NTgtOGQyOS1jZjUwMmIyZTNlNmY=', - unicefId: 'GRV-0000056', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - ], - linkedTickets: [], - existingTickets: [ - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZToxMjdlYzdmZS0wZjkxLTRjMmUtOWQ1Ny05MTI2Yzg2ZGVhMDE=', - category: 6, - unicefId: 'GRV-0000057', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZToxZTgyNjBhNi0wMDY3LTRhYWItYmIyOC05NzNjZWEzNTc0NWU=', - category: 6, - unicefId: 'GRV-0000061', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTplZjdiMTI1Yi1jZWE5LTRlNTAtYmIzMi01NTYzODA3Y2UzNzU=', - category: 2, - unicefId: 'GRV-0001735', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2ZGE5MjE1Yy0xM2EyLTQyNWItYTMzYi1lZGFiYzFlMDY4Nzc=', - category: 2, - unicefId: 'GRV-0001738', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTpmN2U3MDQ3MC00OWJiLTRiNzYtOWU2OC01ZTAyYjA5YmUyNjM=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo0NjY4MDcwMy02MzZjLTRjYjgtOTg2Yy01N2QxMTA5OWNiYmU=', - category: 2, - unicefId: 'GRV-0001739', - status: 1, - household: { - id: 'SG91c2Vob2xkTm9kZTo2MTAzNGZhOS1lNGUwLTQ3OTUtYjY4NC1lNzZjMjBhNzc1NzE=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo4N2M2YzJiNi05ZjNkLTQ5NTgtOGQyOS1jZjUwMmIyZTNlNmY=', - category: 6, - unicefId: 'GRV-0000056', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3MGU1NDRlYy0zMmM0LTRiMTEtYjJkMi0xMzcyNTdmY2UwYjk=', - category: 4, - unicefId: 'GRV-0000062', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTowZDYzNzgwMi03M2I1LTRmMTMtYjA4OC1jNjgxN2FmNjA1NDI=', - category: 2, - unicefId: 'GRV-0000090', - status: 2, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo4ODI3ZmEwMi04NDFlLTQ2YzktOWY3OS0yNWRlMTcwYmQ2MDU=', - category: 2, - unicefId: 'GRV-0000744', - status: 3, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo1YjA3Y2EzNC1lMzViLTQ5NDQtYjMyOS1hYzNmMGY2MDUxZDY=', - category: 2, - unicefId: 'GRV-0000743', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTpjN2RiMTBmZS04NGVhLTQ3NzQtOTQyYy02YjZlY2ZmMTRlNmQ=', - category: 2, - unicefId: 'GRV-0000745', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTo2MTAzNGZhOS1lNGUwLTQ3OTUtYjY4NC1lNzZjMjBhNzc1NzE=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTplYzQyODZkNC1lYTAwLTQ2MzEtYWU2My02ZDY2MGI2Yjg0NjM=', - category: 2, - unicefId: 'GRV-0001719', - status: 5, - household: { - id: 'SG91c2Vob2xkTm9kZTpiNDRiNDJhOC0xZGVjLTRhODgtYjBlOS01YzY2NmYyY2IyYjc=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTozYzM0M2ViYS01ODlkLTRiNmUtYjMxNS0yY2RhMmM4OGJjMDk=', - category: 6, - unicefId: 'GRV-0000060', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2NThmYWVkMy04ZmQ4LTQzMWItYjc4MS0wMmUwMDMyN2QzMzA=', - category: 2, - unicefId: 'GRV-0000088', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTphYjE3NDRjMy1jZjA0LTQzMjgtODgxYi1jNDVlNzYzYmMwZjU=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTo2MmU0MDBjNC1kMTc5LTQxYTktOTNmNC1hODdmZmMzMzcxNDI=', - category: 2, - unicefId: 'GRV-0000089', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - { - id: 'R3JpZXZhbmNlVGlja2V0Tm9kZTowYzJkYWQ0Ni03ZjI4LTQ2OTgtOWFkYS03ZmRjOGJmMjgzYTA=', - category: 2, - unicefId: 'GRV-0001487', - status: 6, - household: { - id: 'SG91c2Vob2xkTm9kZTplYmM5NzkzMi0yOTQwLTQzMmEtYjg4NS1iYWE0ZjdhYWU3ODg=', - unicefId: 'HH-0', - __typename: 'HouseholdNode', - }, - __typename: 'GrievanceTicketNode', - }, - ], - addIndividualTicketDetails: null, - individualDataUpdateTicketDetails: null, - householdDataUpdateTicketDetails: null, - deleteIndividualTicketDetails: null, - deleteHouseholdTicketDetails: null, - systemFlaggingTicketDetails: null, - paymentVerificationTicketDetails: null, - needsAdjudicationTicketDetails: null, - issueType: 18, - ticketNotes: { - edges: [], - __typename: 'TicketNoteNodeConnection', - }, - priority: 0, - urgency: 0, - programs: [ - { - name: 'Copy of Programme: (Test Program)', - id: 'UHJvZ3JhbU5vZGU6YzM5ZTg4ZDYtYjZmZS00MGQ0LWJjNzktMjQ1MjA1YTFhYWMx', - __typename: 'ProgramNode', - }, - ], - comments: null, - documentation: [], - __typename: 'GrievanceTicketNode', -} as GrievanceTicketNode; diff --git a/src/frontend/fixtures/grievances/fakeGrievancesChoices.ts b/src/frontend/fixtures/grievances/fakeGrievancesChoices.ts deleted file mode 100644 index aca54d4b44..0000000000 --- a/src/frontend/fixtures/grievances/fakeGrievancesChoices.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { GrievancesChoiceDataQuery } from '../../src/__generated__/graphql'; - -export const fakeGrievancesChoices = { - grievanceTicketStatusChoices: [ - { name: 'New', value: '1', __typename: 'ChoiceObject' }, - { name: 'Assigned', value: '2', __typename: 'ChoiceObject' }, - { name: 'Closed', value: '6', __typename: 'ChoiceObject' }, - { name: 'For Approval', value: '5', __typename: 'ChoiceObject' }, - { name: 'In Progress', value: '3', __typename: 'ChoiceObject' }, - { name: 'On Hold', value: '4', __typename: 'ChoiceObject' }, - ], - grievanceTicketCategoryChoices: [ - { name: 'Data Change', value: '2', __typename: 'ChoiceObject' }, - { name: 'Grievance Complaint', value: '4', __typename: 'ChoiceObject' }, - { name: 'Needs Adjudication', value: '8', __typename: 'ChoiceObject' }, - { name: 'Negative Feedback', value: '5', __typename: 'ChoiceObject' }, - { name: 'Payment Verification', value: '1', __typename: 'ChoiceObject' }, - { name: 'Positive Feedback', value: '7', __typename: 'ChoiceObject' }, - { name: 'Referral', value: '6', __typename: 'ChoiceObject' }, - { name: 'Sensitive Grievance', value: '3', __typename: 'ChoiceObject' }, - { name: 'System Flagging', value: '9', __typename: 'ChoiceObject' }, - ], - grievanceTicketManualCategoryChoices: [ - { name: 'Data Change', value: '2', __typename: 'ChoiceObject' }, - { name: 'Grievance Complaint', value: '4', __typename: 'ChoiceObject' }, - { name: 'Negative Feedback', value: '5', __typename: 'ChoiceObject' }, - { name: 'Positive Feedback', value: '7', __typename: 'ChoiceObject' }, - { name: 'Referral', value: '6', __typename: 'ChoiceObject' }, - { name: 'Sensitive Grievance', value: '3', __typename: 'ChoiceObject' }, - ], - grievanceTicketIssueTypeChoices: [ - { - category: '2', - label: 'Data Change', - subCategories: [ - { name: 'Add Individual', value: '16', __typename: 'ChoiceObject' }, - { - name: 'Household Data Update', - value: '13', - __typename: 'ChoiceObject', - }, - { - name: 'Individual Data Update', - value: '14', - __typename: 'ChoiceObject', - }, - { - name: 'Withdraw Individual', - value: '15', - __typename: 'ChoiceObject', - }, - ], - __typename: 'IssueTypesObject', - }, - { - category: '3', - label: 'Sensitive Grievance', - subCategories: [ - { - name: 'Bribery, corruption or kickback', - value: '2', - __typename: 'ChoiceObject', - }, - { name: 'Data breach', value: '1', __typename: 'ChoiceObject' }, - { - name: 'Conflict of interest', - value: '8', - __typename: 'ChoiceObject', - }, - { name: 'Fraud and forgery', value: '3', __typename: 'ChoiceObject' }, - { - name: 'Fraud involving misuse of programme funds by third party', - value: '4', - __typename: 'ChoiceObject', - }, - { name: 'Gross mismanagement', value: '9', __typename: 'ChoiceObject' }, - { - name: 'Harassment and abuse of authority', - value: '5', - __typename: 'ChoiceObject', - }, - { - name: 'Inappropriate staff conduct', - value: '6', - __typename: 'ChoiceObject', - }, - { name: 'Miscellaneous', value: '12', __typename: 'ChoiceObject' }, - { name: 'Personal disputes', value: '10', __typename: 'ChoiceObject' }, - { - name: 'Sexual harassment and sexual exploitation', - value: '11', - __typename: 'ChoiceObject', - }, - { - name: 'Unauthorized use, misuse or waste of UNICEF property or funds', - value: '7', - __typename: 'ChoiceObject', - }, - ], - __typename: 'IssueTypesObject', - }, - ], - grievanceTicketUrgencyChoices: [ - { - name: 'Very urgent', - value: 1, - }, - { - name: 'Urgent', - value: 2, - }, - { - name: 'Not urgent', - value: 3, - }, - ], - grievanceTicketPriorityChoices: [ - { - name: 'High', - value: 1, - }, - { - name: 'Medium', - value: 2, - }, - { - name: 'Low', - value: 3, - }, - ], -} as GrievancesChoiceDataQuery; diff --git a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByCategory.ts b/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByCategory.ts deleted file mode 100644 index 134ee72f22..0000000000 --- a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByCategory.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { AllGrievanceDashboardChartsQuery } from '../../../src/__generated__/graphql'; - -export const fakeChartTicketsByCategory = { - datasets: [{ data: [10, 7, 1, 1, 1], __typename: '_DatasetsNode' }], - labels: [ - 'Needs Adjudication', - 'Referral', - 'Grievance Complaint', - 'Negative Feedback', - 'Positive Feedback', - ], - __typename: 'ChartDatasetNode', -} as AllGrievanceDashboardChartsQuery['ticketsByCategory']; diff --git a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByLocationAndCategory.ts b/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByLocationAndCategory.ts deleted file mode 100644 index 7d61a4306a..0000000000 --- a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByLocationAndCategory.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { AllGrievanceDashboardChartsQuery } from '../../../src/__generated__/graphql'; - -export const fakeChartTicketsByLocationAndCategory = { - datasets: [ - { data: [0, 0], label: 'Data Change', __typename: '_DetailedDatasetsNode' }, - { - data: [0, 1], - label: 'Grievance Complaint', - __typename: '_DetailedDatasetsNode', - }, - { - data: [10, 0], - label: 'Needs Adjudication', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 1], - label: 'Negative Feedback', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 0], - label: 'Payment Verification', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 1], - label: 'Positive Feedback', - __typename: '_DetailedDatasetsNode', - }, - { data: [0, 7], label: 'Referral', __typename: '_DetailedDatasetsNode' }, - { - data: [0, 0], - label: 'Sensitive Grievance', - __typename: '_DetailedDatasetsNode', - }, - { - data: [0, 0], - label: 'System Flagging', - __typename: '_DetailedDatasetsNode', - }, - ], - labels: ['Abband', 'Colombo'], - __typename: 'ChartDetailedDatasetsNode', -} as AllGrievanceDashboardChartsQuery['ticketsByLocationAndCategory']; diff --git a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByStatus.ts b/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByStatus.ts deleted file mode 100644 index 0ec8c77280..0000000000 --- a/src/frontend/fixtures/grievances/grievancesDashboard/fakeChartTicketsByStatus.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { AllGrievanceDashboardChartsQuery } from '../../../src/__generated__/graphql'; - -export const fakeChartTicketsByStatus = { - datasets: [{ data: [9, 8, 2, 1], __typename: '_DatasetsNode' }], - labels: ['Assigned', 'New', 'For Approval', 'Closed'], - __typename: 'ChartDatasetNode', -} as AllGrievanceDashboardChartsQuery['ticketsByStatus']; diff --git a/src/frontend/fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation.ts b/src/frontend/fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation.ts deleted file mode 100644 index 4147dc127b..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ActionPpDocument, Action } from '../../src/__generated__/graphql'; - -export const fakeActionPpMutation = [ - { - request: { - query: ActionPpDocument, - variables: { - input: { - paymentPlanId: 'UGF5bWVudFBsYW5Ob2RlOmRiNWYxNDM4LTdjMTYtNDBmYi1iMzlmLTYwYTlmOGM3ZDkzNg==', - action: Action.Approve, - comment: 'fake comment', - }, - }, - }, - result: { - data: { - paymentPlan: { - id: 'UGF5bWVudFBsYW5Ob2RlOmRiNWYxNDM4LTdjMTYtNDBmYi1iMzlmLTYwYTlmOGM3ZDkzNg==', - status: 'status', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/paymentmodule/fakeApolloPaymentPlan.ts b/src/frontend/fixtures/paymentmodule/fakeApolloPaymentPlan.ts deleted file mode 100644 index fc26e23fd3..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeApolloPaymentPlan.ts +++ /dev/null @@ -1,311 +0,0 @@ -import { - PaymentPlanBackgroundActionStatus, - PaymentPlanQuery, -} from '../../src/__generated__/graphql'; - -export const fakeApolloPaymentPlan: PaymentPlanQuery['paymentPlan'] = { - id: 'UGF5bWVudFBsYW5Ob2RlOjU4MmE3ZTYzLTRkZGEtNDQ3Zi1hYWFhLTQzYWJmMzI0ZTViMw==', - name: 'Reconciled Payment Plan Follow Up', - version: 1737726866493915, - unicefId: 'PP-0060-25-00000007', - status: 'ACCEPTED', - buildStatus: 'OK', - canCreateFollowUp: false, - backgroundActionStatus: null, - canCreatePaymentVerificationPlan: false, - availablePaymentRecordsCount: 0, - bankReconciliationSuccess: 0, - bankReconciliationError: 0, - exchangeRate: 1, - fspCommunicationChannel: 'XLSX', - canExportXlsx: true, - canDownloadXlsx: false, - canSendXlsxPassword: false, - programCycle: { - id: 'UHJvZ3JhbUN5Y2xlTm9kZTphMjRhNDY2Zi1hMDllLTQwMDItOTdmZC00N2FmZTNiOTA3OTM=', - title: 'Network poor.', - __typename: 'ProgramCycleNode', - }, - excludedIds: '', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - caId: null, - caHashId: null, - status: 'ACTIVE', - isSocialWorkerProgram: false, - __typename: 'ProgramNode', - }, - vulnerabilityScoreMin: null, - vulnerabilityScoreMax: null, - adminUrl: - '/api/unicorn/payment/paymentplan/582a7e63-4dda-447f-aaaa-43abf324e5b3/change/', - currency: 'USD', - currencyName: 'United States dollar', - startDate: null, - endDate: null, - dispersionStartDate: '2025-01-24', - dispersionEndDate: '2025-01-29', - femaleChildrenCount: 0, - femaleAdultsCount: 2, - maleChildrenCount: 0, - maleAdultsCount: 2, - totalHouseholdsCount: 2, - totalIndividualsCount: 10, - totalEntitledQuantity: 424, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 424, - totalWithdrawnHouseholdsCount: 0, - approvalProcess: { - totalCount: 1, - edgeCount: 1, - edges: [ - { - node: { - id: 'QXBwcm92YWxQcm9jZXNzTm9kZTpkMTM4MTZhMi0zOGRiLTRlZDItYTA4My0xYzY1NmVmYzBiOGU=', - sentForApprovalBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - sentForApprovalDate: '2025-01-24T14:09:52.670350+00:00', - sentForAuthorizationBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - sentForAuthorizationDate: '2025-01-24T14:09:57.924344+00:00', - sentForFinanceReleaseBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - sentForFinanceReleaseDate: '2025-01-24T14:10:08.713416+00:00', - approvalNumberRequired: 1, - authorizationNumberRequired: 1, - financeReleaseNumberRequired: 1, - actions: { - approval: [ - { - createdAt: '2025-01-24T14:09:57.921746+00:00', - comment: '', - info: 'Approved by Root Rootkowski', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - __typename: 'ApprovalNode', - }, - ], - authorization: [ - { - createdAt: '2025-01-24T14:10:08.712539+00:00', - comment: '', - info: 'Authorized by Root Rootkowski', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - __typename: 'ApprovalNode', - }, - ], - financeRelease: [ - { - createdAt: '2025-01-24T14:10:13.163921+00:00', - comment: '', - info: 'Released by Root Rootkowski', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - __typename: 'ApprovalNode', - }, - ], - reject: [], - __typename: 'FilteredActionsListNode', - }, - rejectedOn: null, - __typename: 'ApprovalProcessNode', - }, - __typename: 'ApprovalProcessNodeEdge', - }, - ], - __typename: 'ApprovalProcessNodeConnection', - }, - steficonRule: { - id: 'UnVsZUNvbW1pdE5vZGU6Ng==', - rule: { - id: 'U3RlZmljb25SdWxlTm9kZTo1', - name: 'Test Formula for Payment Plan 033', - __typename: 'SteficonRuleNode', - }, - __typename: 'RuleCommitNode', - }, - steficonRuleTargeting: null, - hasPaymentListExportFile: false, - hasFspDeliveryMechanismXlsxTemplate: true, - canCreateXlsxWithFspAuthCode: false, - importedFileDate: null, - importedFileName: '', - totalEntitledQuantityUsd: 424, - paymentsConflictsCount: 0, - deliveryMechanisms: [ - { - id: 'RGVsaXZlcnlNZWNoYW5pc21QZXJQYXltZW50UGxhbk5vZGU6Y2JjN2IyZDMtZmQ5ZC00YWE1LWFjZWMtNWU4MmEzNjU0MDdm', - name: 'Cash', - code: 'cash', - order: 1, - sentToPaymentGateway: false, - chosenConfiguration: '', - fsp: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC1mMDAwMDAwMDAwMDE=', - name: 'Test FSP 1', - communicationChannel: 'XLSX', - isPaymentGateway: false, - __typename: 'FinancialServiceProviderNode', - }, - __typename: 'DeliveryMechanismPerPaymentPlanNode', - }, - ], - canSendToPaymentGateway: false, - canSplit: true, - splitChoices: [ - { - name: 'By Admin Area 1', - value: 'BY_ADMIN_AREA1', - __typename: 'ChoiceObject', - }, - { - name: 'By Admin Area 2', - value: 'BY_ADMIN_AREA2', - __typename: 'ChoiceObject', - }, - { - name: 'By Admin Area 3', - value: 'BY_ADMIN_AREA3', - __typename: 'ChoiceObject', - }, - { - name: 'By Collector', - value: 'BY_COLLECTOR', - __typename: 'ChoiceObject', - }, - { - name: 'By Records', - value: 'BY_RECORDS', - __typename: 'ChoiceObject', - }, - ], - volumeByDeliveryMechanism: [ - { - deliveryMechanism: { - id: 'RGVsaXZlcnlNZWNoYW5pc21QZXJQYXltZW50UGxhbk5vZGU6Y2JjN2IyZDMtZmQ5ZC00YWE1LWFjZWMtNWU4MmEzNjU0MDdm', - name: 'Cash', - order: 1, - fsp: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC1mMDAwMDAwMDAwMDE=', - name: 'Test FSP 1', - __typename: 'FinancialServiceProviderNode', - }, - __typename: 'DeliveryMechanismPerPaymentPlanNode', - }, - volume: 424, - volumeUsd: 424, - __typename: 'VolumeByDeliveryMechanismNode', - }, - ], - verificationPlans: { - totalCount: 0, - edges: [], - __typename: 'PaymentVerificationPlanNodeConnection', - }, - paymentVerificationSummary: null, - paymentItems: { - totalCount: 2, - edgeCount: 2, - edges: [ - { - node: { - id: 'UGF5bWVudE5vZGU6Njk1ZjNjMGItNzMyYy00MzI0LWI5YjUtOTJiYjE0OTIxMzNj', - status: 'PENDING', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - node: { - id: 'UGF5bWVudE5vZGU6OTYzNDkwYTItNDE0OC00YjA4LWI4YTctZTM0NzVmYWU5OGI1', - status: 'PENDING', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - ], - __typename: 'PaymentNodeConnection', - }, - reconciliationSummary: { - deliveredFully: 0, - deliveredPartially: 0, - notDelivered: 0, - unsuccessful: 0, - pending: 2, - numberOfPayments: 2, - reconciled: 0, - __typename: 'ReconciliationSummaryNode', - }, - excludedHouseholds: [], - excludedIndividuals: [], - exclusionReason: '', - excludeHouseholdError: '', - isFollowUp: true, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - sourcePaymentPlan: { - id: 'UGF5bWVudFBsYW5Ob2RlOjgyZTUzYzE3LTM4MmMtNGI2My05ZTk5LTg0ZTMxMGZhNGRmYQ==', - unicefId: 'PP-0060-22-11223344', - __typename: 'PaymentPlanNode', - }, - unsuccessfulPaymentsCount: 0, - supportingDocuments: [], - targetingCriteria: { - __typename: 'TargetingCriteriaNode', - id: 'ef403820-8654-4791-b8e4-2f0ae95a7b2c', - flagExcludeIfActiveAdjudicationTicket: false, - flagExcludeIfOnSanctionList: false, - householdIds: '', - individualIds: '', - rules: [], - }, - __typename: 'PaymentPlanNode', -} as PaymentPlanQuery['paymentPlan']; - -export const fakeApolloPaymentPlanWithWrongBackgroundActionStatus: PaymentPlanQuery['paymentPlan'] = - { - ...fakeApolloPaymentPlan, - backgroundActionStatus: PaymentPlanBackgroundActionStatus.XlsxExporting, - }; diff --git a/src/frontend/fixtures/paymentmodule/fakeChooseDeliveryMechForPaymentPlanMutation.ts b/src/frontend/fixtures/paymentmodule/fakeChooseDeliveryMechForPaymentPlanMutation.ts deleted file mode 100644 index 72d5817edb..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeChooseDeliveryMechForPaymentPlanMutation.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ChooseDeliveryMechForPaymentPlanDocument } from '../../src/__generated__/graphql'; - -export const fakeChooseDeliveryMechForPaymentPlanMutation = [ - { - request: { - query: ChooseDeliveryMechForPaymentPlanDocument, - variables: { - approveStatus: false, - grievanceTicketId: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU', - }, - }, - result: { - data: { - approvePaymentDetails: { - grievanceTicket: { - id: - 'R3JpZXZhbmNlVGlja2V0Tm9kZTo3ZTY1N2JiZC1hNzM4LTQ0MTktYjlmOS04YTIyOWI2MGUwNzU=', - status: 5, - paymentVerificationTicketDetails: { - id: - 'VGlja2V0UGF5bWVudFZlcmlmaWNhdGlvbkRldGFpbHNOb2RlOmQ5NWFlNzA2LWRmNTQtNDYyMi1hODVmLTRiOGExZTg2Y2VhMQ==', - approveStatus: false, - __typename: 'TicketPaymentVerificationDetailsNode', - }, - __typename: 'GrievanceTicketNode', - }, - __typename: 'PaymentDetailsApproveMutation', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/paymentmodule/fakeDeliveryMechanisms.ts b/src/frontend/fixtures/paymentmodule/fakeDeliveryMechanisms.ts deleted file mode 100644 index dcdf1daa88..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeDeliveryMechanisms.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { AllDeliveryMechanismsQuery } from '../../src/__generated__/graphql'; - -export const fakeDeliveryMechanisms = { - allDeliveryMechanisms: [ - { name: 'None', value: '', __typename: 'ChoiceObject' }, - { - name: 'Displaced | Internally Displaced People', - value: 'IDP', - __typename: 'ChoiceObject', - }, - ], -} as AllDeliveryMechanismsQuery; diff --git a/src/frontend/fixtures/paymentmodule/fakeExportXlsxPpListPerFspMutation.ts b/src/frontend/fixtures/paymentmodule/fakeExportXlsxPpListPerFspMutation.ts deleted file mode 100644 index 47d4b16c48..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeExportXlsxPpListPerFspMutation.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { ExportXlsxPpListPerFspDocument } from '../../src/__generated__/graphql'; - -export const fakeExportXlsxPpListPerFspMutation = [ - { - request: { - query: ExportXlsxPpListPerFspDocument, - variables: { - paymentPlanId: 'fakePaymentPlanId', - }, - }, - result: { - data: { - exportXlsxPaymentPlanPaymentListPerFsp: { - paymentPlan: { - id: 'fakePaymentPlanId', - status: 'fakeStatus', - }, - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/paymentmodule/fakeFspsData.ts b/src/frontend/fixtures/paymentmodule/fakeFspsData.ts deleted file mode 100644 index 1ac27c30bf..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeFspsData.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { AvailableFspsForDeliveryMechanismsQuery } from '../../src/__generated__/graphql'; - -export const fakeFspsData = { - availableFspsForDeliveryMechanisms: [ - { - deliveryMechanism: 'Cash by FSP', - fsps: [ - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo0ZTE3Y2NjMy0xYjNjLTQ1NDctODFiMC04YTQ2NTFiNWJmNTA=', - name: 'Floyd, Adams and Washington', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo5ZWMwMmE4Ni0yYzM0LTQ4NjQtOGQ2OS05MTQwMDU2NWY1ODA=', - name: 'Mcdaniel Inc', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTpkNDZiODJjYi04MjVhLTRkNzAtYmI3ZS0zMWYxMjgyZWM2Nzc=', - name: 'Mitchell-Thomas', - __typename: 'FspChoice', - }, - ], - __typename: 'FspChoices', - }, - { - deliveryMechanism: 'Cheque', - fsps: [ - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTozNmJjYjkxYy05ZDhiLTRhNTEtYjU3NC01OGYzYzU2YzIyNWQ=', - name: 'Cochran, King and Hardy', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo0ZTE3Y2NjMy0xYjNjLTQ1NDctODFiMC04YTQ2NTFiNWJmNTA=', - name: 'Floyd, Adams and Washington', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTpjYTBjMDY1MC1jZDk3LTQ2YmEtODM5NC00ZmUxZmUwMTc1ZDM=', - name: 'Mack, Brown and Garcia', - __typename: 'FspChoice', - }, - ], - __typename: 'FspChoices', - }, - { - deliveryMechanism: 'In Kind', - fsps: [ - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo0ZTE3Y2NjMy0xYjNjLTQ1NDctODFiMC04YTQ2NTFiNWJmNTA=', - name: 'Floyd, Adams and Washington', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo5NGZjM2I3Yi1lMDZlLTQ0MmUtYTcxZS1iNWU5MzlkOWU1OWE=', - name: 'Beltran, Barker and Pruitt', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTpjYTBjMDY1MC1jZDk3LTQ2YmEtODM5NC00ZmUxZmUwMTc1ZDM=', - name: 'Mack, Brown and Garcia', - __typename: 'FspChoice', - }, - ], - __typename: 'FspChoices', - }, - { - deliveryMechanism: 'Cash', - fsps: [ - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC1mMDAwMDAwMDAwMDE=', - name: 'Test FSP 1', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTozNmJjYjkxYy05ZDhiLTRhNTEtYjU3NC01OGYzYzU2YzIyNWQ=', - name: 'Cochran, King and Hardy', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTpjYTBjMDY1MC1jZDk3LTQ2YmEtODM5NC00ZmUxZmUwMTc1ZDM=', - name: 'Mack, Brown and Garcia', - __typename: 'FspChoice', - }, - { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTpkNDZiODJjYi04MjVhLTRkNzAtYmI3ZS0zMWYxMjgyZWM2Nzc=', - name: 'Mitchell-Thomas', - __typename: 'FspChoice', - }, - ], - __typename: 'FspChoices', - }, - ], -} as AvailableFspsForDeliveryMechanismsQuery; diff --git a/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListMutation.ts b/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListMutation.ts deleted file mode 100644 index 2d74e65ee2..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListMutation.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ImportXlsxPpListDocument } from '../../src/__generated__/graphql'; - -export const fakeImportXlsxPpListMutation = [ - { - request: { - query: ImportXlsxPpListDocument, - variables: { - file: 'fakeFile', - paymentPlanId: 'fakePaymentPlanId', - }, - }, - result: { - data: { - importXlsxPaymentPlanPaymentList: { - paymentPlan: { - id: 'fakePaymentPlanId', - status: 'fakeStatus', - }, - errors: { - sheet: 'fakeSheet', - coordinates: 'fakeCoordinates', - message: 'fakeMessage', - }, - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListPerFspMutation.ts b/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListPerFspMutation.ts deleted file mode 100644 index 2ee2ed0763..0000000000 --- a/src/frontend/fixtures/paymentmodule/fakeImportXlsxPpListPerFspMutation.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ImportXlsxPpListPerFspDocument } from '../../src/__generated__/graphql'; - -export const fakeImportXlsxPpListPerFspMutation = [ - { - request: { - query: ImportXlsxPpListPerFspDocument, - variables: { - file: 'fakeFile', - paymentPlanId: 'fakePaymentPlanId', - }, - }, - result: { - data: { - importXlsxPaymentPlanPaymentListPerFsp: { - paymentPlan: { - id: 'fakePaymentPlanId', - status: 'fakeStatus', - }, - errors: { - sheet: 'fakeSheet', - coordinates: 'fakeCoordinates', - message: 'fakeMessage', - }, - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/payments/fakeApolloAllPaymentPlansForTable.ts b/src/frontend/fixtures/payments/fakeApolloAllPaymentPlansForTable.ts deleted file mode 100644 index 08c5678626..0000000000 --- a/src/frontend/fixtures/payments/fakeApolloAllPaymentPlansForTable.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { AllPaymentPlansForTableDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllPaymentPlansForTable = [ - { - request: { - query: AllPaymentPlansForTableDocument, - variables: { - businessArea: 'afghanistan', - search: '', - status: [], - totalEntitledQuantityFrom: null, - totalEntitledQuantityTo: null, - dispersionStartDate: null, - dispersionEndDate: null, - isFollowUp: null, - program: - 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - first: 5, - orderBy: '-created_at', - }, - }, - result: { - data: { - allPaymentPlans: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOmJmOTBkOWQzLTkyY2QtNGMyMC1iODc3LTU1OTFiNzUwZjlkZQ==', - unicefId: 'PP-0060-22-11223344', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'FINISHED', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMTIz', - name: 'Test Target Population', - __typename: 'TargetPopulationNode', - }, - currency: 'USD', - currencyName: 'United States dollar', - startDate: '2023-09-29', - endDate: '2023-10-29', - dispersionStartDate: '2023-09-29', - dispersionEndDate: '2023-10-13', - femaleChildrenCount: 0, - femaleAdultsCount: 13, - maleChildrenCount: 1, - maleAdultsCount: 15, - totalHouseholdsCount: 5, - totalIndividualsCount: 29, - totalEntitledQuantity: 2999, - totalDeliveredQuantity: 999, - totalUndeliveredQuantity: null, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjAwMDAwMDAwLWZlZWQtYmVlZi0wMDAwLTAwMDAwYmFkZjAwZA==', - unicefId: 'PP-0060-23-00000013', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'OPEN', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMTIz', - name: 'Test Target Population', - __typename: 'TargetPopulationNode', - }, - currency: 'USD', - currencyName: 'United States dollar', - startDate: '2023-09-29', - endDate: '2023-10-29', - dispersionStartDate: '2023-09-29', - dispersionEndDate: '2023-10-13', - femaleChildrenCount: 0, - femaleAdultsCount: 0, - maleChildrenCount: 0, - maleAdultsCount: 2, - totalHouseholdsCount: 2, - totalIndividualsCount: 2, - totalEntitledQuantity: null, - totalDeliveredQuantity: null, - totalUndeliveredQuantity: null, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - ], - __typename: 'PaymentPlanNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/payments/fakeApolloAllPaymentVerifications.ts b/src/frontend/fixtures/payments/fakeApolloAllPaymentVerifications.ts deleted file mode 100644 index bf40c1ba12..0000000000 --- a/src/frontend/fixtures/payments/fakeApolloAllPaymentVerifications.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { - AllPaymentVerificationsDocument, - PaymentVerificationNodeConnection, -} from '../../src/__generated__/graphql'; -import { fakeProgram } from '../programs/fakeProgram'; - -export const fakeApolloAllPaymentVerifications = [ - { - request: { - query: AllPaymentVerificationsDocument, - variables: { - businessArea: 'afghanistan', - paymentPlanId: - 'Q2FzaFBsYW5Ob2RlOjIyODExYzJjLWVmYTktNDRiYy1hYjM0LWQ0YjJkNjFmYThlNA==', - first: 5, - orderBy: null, - }, - }, - result: { - data: { - allPaymentVerifications: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvbk5vZGU6NDYyODNkMTktMWJjMS00NjljLWI0Y2MtODQ5NjJlOGU0YTU5', - paymentVerificationPlan: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvblBsYW5Ob2RlOmQ1YWVmZjE1LWQ0ZDAtNGE0YS1hMzIzLWNlMGMwOTM2MzU3Ng==', - unicefId: 'PVP-1', - verificationChannel: 'RAPIDPRO', - __typename: 'PaymentVerificationPlanNode', - }, - payment: { - id: - 'UGF5bWVudE5vZGU6NzBjYmU4ZjgtNzUxYy00NTliLTlmZjEtZDg4M2Y4ZTFjNGFj', - unicefId: 'RCPT-0060-22-0.000.005', - deliveredQuantity: 2274, - currency: 'NOK', - household: { - status: 'ACTIVE', - unicefId: 'HH-22-0000.0007', - id: - 'SG91c2Vob2xkTm9kZTo1YzhhYTJkNy0zNWY0LTQ3ZjMtODNkNy1jZjQwNTMxYmQzMjI=', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6Yjc5MjlkNjMtNTIzZS00YmNjLWI3YTUtODA0ZjAxYmJiYjA1', - fullName: 'Denise Laurie Schwartz', - familyName: 'Schwartz', - phoneNo: '+1 684 1511478743', - phoneNoAlternative: '', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'GenericPaymentNode', - }, - status: 'PENDING', - receivedAmount: null, - __typename: 'PaymentVerificationNode', - }, - __typename: 'PaymentVerificationNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvbk5vZGU6OGJkM2RlMjYtODZjMi00OTcyLTgyM2QtYWMyMjc5MDA4ZWNm', - paymentVerificationPlan: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvblBsYW5Ob2RlOmQ1YWVmZjE1LWQ0ZDAtNGE0YS1hMzIzLWNlMGMwOTM2MzU3Ng==', - unicefId: 'PVP-1', - verificationChannel: 'RAPIDPRO', - __typename: 'PaymentVerificationPlanNode', - }, - payment: { - id: - 'UGF5bWVudE5vZGU6ZmI4NjIzM2EtNWRiOS00NjQ2LWJiN2UtN2Q3OTVhNWI3Njc2', - unicefId: 'RCPT-0060-22-0.000.007', - deliveredQuantity: 5526, - currency: 'BYR', - household: { - status: 'ACTIVE', - unicefId: 'HH-22-0000.0009', - id: - 'SG91c2Vob2xkTm9kZTpkNGNjZjliMy01N2M0LTQ4M2UtODIxMS1jODZkN2M5Yzc0Zjk=', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6MzAyNmI3ZTUtZGI0Ny00ZGUwLWIzOGMtNGYwMGY1ODQ2MGFl', - fullName: 'John Sally Martin', - familyName: 'Martin', - phoneNo: '+993 0684121090', - phoneNoAlternative: '', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'GenericPaymentNode', - }, - status: 'PENDING', - receivedAmount: null, - __typename: 'PaymentVerificationNode', - }, - __typename: 'PaymentVerificationNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvbk5vZGU6OTEyNWIxYWMtY2Y2Zi00ZDg2LTk4OWEtNDFmMDlkZTg3ZTQ0', - paymentVerificationPlan: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvblBsYW5Ob2RlOmQ1YWVmZjE1LWQ0ZDAtNGE0YS1hMzIzLWNlMGMwOTM2MzU3Ng==', - unicefId: 'PVP-1', - verificationChannel: 'RAPIDPRO', - __typename: 'PaymentVerificationPlanNode', - }, - payment: { - id: - 'UGF5bWVudE5vZGU6M2UyZTQ4NjktZWRmNC00NTA4LWI4ZjAtY2YwZjZmNmUzNzY3', - unicefId: 'RCPT-0060-22-0.000.003', - deliveredQuantity: 1877, - currency: 'SLL', - household: { - status: 'ACTIVE', - unicefId: 'HH-22-0000.0005', - id: - 'SG91c2Vob2xkTm9kZTo3ZDhjOTYwMi1iMWIzLTQzM2ItODI4My0xMGQ3NGU2ZWU4NGY=', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6NzU5MzQzYTEtMWJjNy00Y2JhLThkZDEtZjA5YjQ1NzRkMmFi', - fullName: 'Kristina Katrina Russo', - familyName: 'Russo', - phoneNo: '+232 5632769040', - phoneNoAlternative: '', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'GenericPaymentNode', - }, - status: 'PENDING', - receivedAmount: null, - __typename: 'PaymentVerificationNode', - }, - __typename: 'PaymentVerificationNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjM=', - node: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvbk5vZGU6ZDFhNTUxZGMtNjcyMi00ZmNiLTk5NjQtN2Q4MTg5MWJjYzY1', - paymentVerificationPlan: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvblBsYW5Ob2RlOmQ1YWVmZjE1LWQ0ZDAtNGE0YS1hMzIzLWNlMGMwOTM2MzU3Ng==', - unicefId: 'PVP-1', - verificationChannel: 'RAPIDPRO', - __typename: 'PaymentVerificationPlanNode', - }, - payment: { - id: - 'UGF5bWVudE5vZGU6ZTE2YTUxNWUtNjlhOC00NTM2LTg0MGMtMjczN2FmMjgyYmQw', - unicefId: 'RCPT-0060-22-0.000.004', - deliveredQuantity: 1156, - currency: 'BWP', - household: { - status: 'ACTIVE', - unicefId: 'HH-22-0000.0006', - id: - 'SG91c2Vob2xkTm9kZTpmMDM4ZDA1MS02YmQ5LTQ0NWMtOGFkOC1lMWRhOWI4YjQ2MzA=', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6OWIxM2IwYzUtZWI4Yi00ODVhLWE0ODktNDc5NzQ3YjU2ZmEy', - fullName: 'Barbara Jeremy James', - familyName: 'James', - phoneNo: '+965 0452689882', - phoneNoAlternative: '', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'GenericPaymentNode', - }, - status: 'PENDING', - receivedAmount: null, - __typename: 'PaymentVerificationNode', - }, - __typename: 'PaymentVerificationNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - node: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvbk5vZGU6ZWMxMDgzODktM2UzZS00NmZlLThmMDItNmRmMjBjM2M0YjBl', - paymentVerificationPlan: { - id: - 'UGF5bWVudFZlcmlmaWNhdGlvblBsYW5Ob2RlOmQ1YWVmZjE1LWQ0ZDAtNGE0YS1hMzIzLWNlMGMwOTM2MzU3Ng==', - unicefId: 'PVP-1', - verificationChannel: 'RAPIDPRO', - __typename: 'PaymentVerificationPlanNode', - }, - payment: { - id: - 'UGF5bWVudE5vZGU6ZjI3NTQxNzMtZjdjMC00NWJhLTgxNDctMmE4MTVjNWZmZmI3', - unicefId: 'RCPT-0060-22-0.000.006', - deliveredQuantity: 974, - currency: 'YER', - household: { - status: 'ACTIVE', - unicefId: 'HH-22-0000.0008', - id: - 'SG91c2Vob2xkTm9kZTo5MmNmMzk3NC01MzVmLTRkMTMtYmRmNC1iOWJlNTJiNzMwN2E=', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6YTJmZTQ5OTAtY2Q0MC00MTBjLTg3YTktMmE0MTM1MjFjMmJl', - fullName: 'Michelle Eric Williams', - familyName: 'Williams', - phoneNo: '+1 441 4461030202', - phoneNoAlternative: '', - __typename: 'IndividualNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'GenericPaymentNode', - }, - status: 'PENDING', - receivedAmount: null, - __typename: 'PaymentVerificationNode', - }, - __typename: 'PaymentVerificationNodeEdge', - }, - ], - __typename: 'PaymentVerificationNodeConnection', - } as PaymentVerificationNodeConnection, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/payments/fakeApolloAllPaymentsForTable.ts b/src/frontend/fixtures/payments/fakeApolloAllPaymentsForTable.ts deleted file mode 100644 index 651771f6ce..0000000000 --- a/src/frontend/fixtures/payments/fakeApolloAllPaymentsForTable.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { AllPaymentsForTableDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllPaymentsForTable = [ - { - request: { - query: AllPaymentsForTableDocument, - variables: { - businessArea: 'afghanistan', - paymentPlanId: - 'UGF5bWVudFBsYW5Ob2RlOmJmOTBkOWQzLTkyY2QtNGMyMC1iODc3LTU1OTFiNzUwZjlkZQ==', - first: 10, - orderBy: '-created_at', - }, - }, - result: { - data: { - allPayments: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'UGF5bWVudE5vZGU6MTAwMDAwMDAtZmVlZC1iZWVmLTAwMDAtMDAwMDBiYWRmMDBk', - unicefId: 'RCPT-0060-23-0.000.043', - status: 'PENDING', - household: { - id: - 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDE=', - unicefId: 'HH-22-0000.0003', - size: 4, - admin2: null, - __typename: 'HouseholdNode', - }, - entitlementQuantity: null, - entitlementQuantityUsd: null, - currency: 'USD', - deliveredQuantity: null, - deliveredQuantityUsd: null, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx', - fullName: 'Jan Kowalski', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: - 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC1mMDAwMDAwMDAwMDE=', - name: 'Test FSP 1', - __typename: 'FinancialServiceProviderNode', - }, - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: - 'UGF5bWVudE5vZGU6MjAwMDAwMDAtZmVlZC1iZWVmLTAwMDAtMDAwMDBiYWRmMDBk', - unicefId: 'RCPT-0060-23-0.000.044', - status: 'PENDING', - household: { - id: - 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDI=', - unicefId: 'HH-22-0000.0004', - size: 4, - admin2: null, - __typename: 'HouseholdNode', - }, - entitlementQuantity: null, - entitlementQuantityUsd: null, - currency: 'USD', - deliveredQuantity: null, - deliveredQuantityUsd: null, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAy', - fullName: 'Adam Nowak', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: - 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC1mMDAwMDAwMDAwMDE=', - name: 'Test FSP 1', - __typename: 'FinancialServiceProviderNode', - }, - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - ], - __typename: 'PaymentNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/payments/fakeApolloAllPaymentsHousehold.ts b/src/frontend/fixtures/payments/fakeApolloAllPaymentsHousehold.ts deleted file mode 100644 index 48f6c0f4e2..0000000000 --- a/src/frontend/fixtures/payments/fakeApolloAllPaymentsHousehold.ts +++ /dev/null @@ -1,620 +0,0 @@ -import { AllPaymentsForTableDocument } from '@generated/graphql'; - -export const fakeApolloAllPaymentsHousehold = [ - { - request: { - query: AllPaymentsForTableDocument, - variables: { - businessArea: 'afghanistan', - first: 10, - orderBy: '-created_at', - paymentPlanId: - 'UGF5bWVudFBsYW5Ob2RlOjgyZTUzYzE3LTM4MmMtNGI2My05ZTk5LTg0ZTMxMGZhNGRmYQ==', - }, - }, - result: { - data: { - allPayments: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - __typename: 'PageInfo', - }, - totalCount: 5, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'UGF5bWVudE5vZGU6MDk5MjQ3YTYtM2FjYS00ZjRhLWFiZjMtMGEwNmVkNjAyZTIx', - unicefId: 'RCPT-0060-25-0.000.014', - status: 'PENDING', - vulnerabilityScore: null, - parent: { - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'PaymentPlanNode', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo0MWJiNjNhNy0xNTM1LTQxY2ItOWRlZS04MGFjYWUxMjVjYTk=', - unicefId: 'HH-0', - size: 5, - admin2: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6ODdhZGM2ODQtZGQ5MS00MzNiLTk2MTMtZTAxMGU2MGNmZDQz', - unicefId: 'IND-0', - fullName: 'Pamela Tara Miller', - __typename: 'IndividualNode', - }, - individuals: { - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ODdhZGM2ODQtZGQ5MS00MzNiLTk2MTMtZTAxMGU2MGNmZDQz', - unicefId: 'IND-0', - fullName: 'Pamela Tara Miller', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NWRiZmZmNDItYjcwNy00YzE5LThlM2ItZmNhYjE5ZmYyNDhl', - unicefId: 'IND-1', - fullName: 'John Mia Waters', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MjNiY2QyMjYtM2ZmYS00NjE1LTkwYjQtMGY1ZWI1MjFkYTUz', - unicefId: 'IND-2', - fullName: 'Raymond Lisa Brown', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MmEwN2MzNDEtYjdlYS00MTEyLWFmNWItNGM3MTQ2Y2VkZDZi', - unicefId: 'IND-3', - fullName: 'James Derrick Davis', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NTE0NDMxNzgtNjI1MS00NzA4LWIxMDktNTdkYTE4MTNkZDk5', - unicefId: 'IND-4', - fullName: 'Matthew Andrew Clarke', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NDY0YmZmNjAtMDRkMS00MTk3LTllZTEtZWI0MjUzYmZhMGVh', - unicefId: 'IND-5', - fullName: 'Gwendolyn Shannon Shields', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YzBiNzNjNWYtNTI3Yy00NDcyLThkNTgtNTA4MjViZGM0MmI0', - unicefId: 'IND-6', - fullName: 'Terry Elizabeth Bradshaw', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - __typename: 'HouseholdNode', - }, - entitlementQuantity: 1686, - entitlementQuantityUsd: 1686, - currency: 'USD', - deliveredQuantity: 423, - deliveredQuantityUsd: 423, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: 'SW5kaXZpZHVhbE5vZGU6NDY0YmZmNjAtMDRkMS00MTk3LTllZTEtZWI0MjUzYmZhMGVh', - unicefId: 'IND-5', - fullName: 'Gwendolyn Shannon Shields', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMDRiMGZkOC0wNzVmLTQyNDEtODJiMi1hMTZmZGZiOWE0NmM=', - name: 'Rowe-Horne', - __typename: 'FinancialServiceProviderNode', - }, - fspAuthCode: '', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: 'UGF5bWVudE5vZGU6ZjE0MjU1YTMtNDllYi00ZjAxLTgyNGYtMDFiZGI1NDRiZDM1', - unicefId: 'RCPT-0060-25-0.000.015', - status: 'PENDING', - vulnerabilityScore: null, - parent: { - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'PaymentPlanNode', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTowMWY2MDA3Yy1lYzMzLTQ4MTMtODRkZS04ZGQ3YzM4M2VjNzM=', - unicefId: 'HH-1', - size: 4, - admin2: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDJhNGQ2MTEtY2RjYS00M2Q1LWJhMmYtYjc3Y2E2YzY2N2Y3', - unicefId: 'IND-7', - fullName: 'Eugene Kelly Weiss', - __typename: 'IndividualNode', - }, - individuals: { - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDJhNGQ2MTEtY2RjYS00M2Q1LWJhMmYtYjc3Y2E2YzY2N2Y3', - unicefId: 'IND-7', - fullName: 'Eugene Kelly Weiss', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MDdhN2I1MjctNzFmNi00MDZjLTg1OTktNmE2NmM5OTI2NmQz', - unicefId: 'IND-8', - fullName: 'Kayla Brandon Rodriguez', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NjVmZjBhZTMtNjFmMC00MmIwLWFiZjUtMjFkZGQ5MmY1MmJi', - unicefId: 'IND-9', - fullName: 'Tina Patrick Shannon', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6OTAzZDlhZTQtM2VlOS00MmY4LTk3MzktNjkwMjhlNTQ1MWE1', - unicefId: 'IND-10', - fullName: 'Elizabeth Tracy Vasquez', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NzhjMDM0NTctZGUyMy00YmZjLWJjNDgtM2RmZTYyOTk5ODk1', - unicefId: 'IND-11', - fullName: 'Keith Alicia Perkins', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDk2MjI4NmEtNWE0Yi00NjA5LWIyMGUtMjM2ZTMzMDgzYmUy', - unicefId: 'IND-12', - fullName: 'Brandon John Smith', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - __typename: 'HouseholdNode', - }, - entitlementQuantity: 3180, - entitlementQuantityUsd: 3180, - currency: 'USD', - deliveredQuantity: 6549, - deliveredQuantityUsd: 6549, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: 'SW5kaXZpZHVhbE5vZGU6NzhjMDM0NTctZGUyMy00YmZjLWJjNDgtM2RmZTYyOTk5ODk1', - unicefId: 'IND-11', - fullName: 'Keith Alicia Perkins', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTowMjA4NGFkNy1mYjFmLTRlN2UtYWFmMi05YzBiYzRjZDA0NmI=', - name: 'Tate LLC', - __typename: 'FinancialServiceProviderNode', - }, - fspAuthCode: '', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: 'UGF5bWVudE5vZGU6NDIzNDhlNTgtY2YwNi00OTQwLTlhMDctMjNlZjMxNzY4ZGE3', - unicefId: 'RCPT-0060-25-0.000.016', - status: 'NOT_DISTRIBUTED', - vulnerabilityScore: null, - parent: { - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'PaymentPlanNode', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo5NDAzNmRiOS1iMDE0LTQ5ZWItYjNiYi1mMDRkMGVkMDVmM2U=', - unicefId: 'HH-2', - size: 5, - admin2: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6MjgxMmY0NTYtOGFjYS00NTJkLTliZTQtNWFlNjFjYzMwNjNk', - unicefId: 'IND-13', - fullName: 'Rachael Hannah Lewis', - __typename: 'IndividualNode', - }, - individuals: { - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MjgxMmY0NTYtOGFjYS00NTJkLTliZTQtNWFlNjFjYzMwNjNk', - unicefId: 'IND-13', - fullName: 'Rachael Hannah Lewis', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZTg2Mjc0NDctMTgwMC00MmVkLWI3NzktOTE3YWE1OTUxZWEz', - unicefId: 'IND-14', - fullName: 'Laurie Todd Johnson', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZGE1YWFmZGUtODk4ZC00NDUyLWI0NWMtMmUzOWQzMDQ0NjMy', - unicefId: 'IND-15', - fullName: 'Thomas Deborah Smith', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDk4OWE4OWMtYmJkNS00ZTcwLWIwNjktZDViMWQ4NThjMTM1', - unicefId: 'IND-16', - fullName: 'Joseph Benjamin Benjamin', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDNmNmZlMGEtZjgzZi00YzUwLWI3YTUtMTRmYjk1NDgyODZh', - unicefId: 'IND-17', - fullName: 'Brandon Brandon Cohen', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MzJiMzczY2MtMTM0ZC00ZTdjLWI3NmItZjFmYjkyNDA5ZjZh', - unicefId: 'IND-18', - fullName: 'Austin Alexander Reynolds', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDJjNTM2MTUtMDYyNi00NjlhLWExZTQtMzVjZGQyZmM1MThi', - unicefId: 'IND-19', - fullName: 'Kimberly Kevin Henry', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - __typename: 'HouseholdNode', - }, - entitlementQuantity: 3473, - entitlementQuantityUsd: 3473, - currency: 'USD', - deliveredQuantity: 0, - deliveredQuantityUsd: 0, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: 'SW5kaXZpZHVhbE5vZGU6MzJiMzczY2MtMTM0ZC00ZTdjLWI3NmItZjFmYjkyNDA5ZjZh', - unicefId: 'IND-18', - fullName: 'Austin Alexander Reynolds', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo2MDc0ZDM2My0xMWZmLTQzZTctODUwYS03MWEwNGViNjc0ODk=', - name: 'Jones Inc', - __typename: 'FinancialServiceProviderNode', - }, - fspAuthCode: '', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjM=', - node: { - id: 'UGF5bWVudE5vZGU6ZTU5ZjU2YzUtNzEwMC00MzU3LWI2OWEtZDE2MDA1ZGFjYTEz', - unicefId: 'RCPT-0060-25-0.000.017', - status: 'TRANSACTION_ERRONEOUS', - vulnerabilityScore: null, - parent: { - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'PaymentPlanNode', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTo3OTg3ZWM4ZS05OWE3LTRiZTktODkwZi02ODg5M2RkM2I4NzU=', - unicefId: 'HH-3', - size: 5, - admin2: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6NTMxOGNmMGQtMDRiZS00YmE3LThlMDItYzQ3OGE2NjRlYjc1', - unicefId: 'IND-20', - fullName: 'Leslie Jill Elliott', - __typename: 'IndividualNode', - }, - individuals: { - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NTMxOGNmMGQtMDRiZS00YmE3LThlMDItYzQ3OGE2NjRlYjc1', - unicefId: 'IND-20', - fullName: 'Leslie Jill Elliott', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MDMwOWI2YzktN2JhMS00NzliLWE1ZGMtOThjY2YzYzEyYjdj', - unicefId: 'IND-21', - fullName: 'Jeffrey Joseph Jones', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDhhZDI0MjAtMDE1My00NTQ2LWEwZWItZDdmZmEzMjE3Yzlk', - unicefId: 'IND-22', - fullName: 'Cindy Michael Pace', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZGU2ZjhlNDAtZmNhZS00ZjRjLTk4ZGUtODIwZDI2ZTEzNTVi', - unicefId: 'IND-23', - fullName: 'Kelly Tamara Gutierrez', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6Nzg0ZGUxNTctZTUyMC00ZDRmLTg3NGQtYTFkNmQ5YWM4Njc0', - unicefId: 'IND-24', - fullName: 'Stephanie Katherine Bradshaw', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MWQxN2FhNjQtZDY1Yy00Y2ViLWI0ZDEtMTg0MTI2MTVmNmE1', - unicefId: 'IND-25', - fullName: 'Elizabeth Daniel Riley', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6YjAxNTUwMDMtYTAwYS00MWZjLWJlZDgtYjA0OWFmNTlmMDU2', - unicefId: 'IND-26', - fullName: 'Crystal Heather Jones', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - __typename: 'HouseholdNode', - }, - entitlementQuantity: 6431, - entitlementQuantityUsd: 6431, - currency: 'USD', - deliveredQuantity: null, - deliveredQuantityUsd: null, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: 'SW5kaXZpZHVhbE5vZGU6MWQxN2FhNjQtZDY1Yy00Y2ViLWI0ZDEtMTg0MTI2MTVmNmE1', - unicefId: 'IND-25', - fullName: 'Elizabeth Daniel Riley', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTo3YWRlMTU1Ni1jMjk0LTQ5MGMtYTRhZC1mMjcxMTNkYWYxODA=', - name: 'Norman Inc', - __typename: 'FinancialServiceProviderNode', - }, - fspAuthCode: '', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - node: { - id: 'UGF5bWVudE5vZGU6Y2I3MzJjN2UtZjAxYy00ZDM1LWJkOGMtNjFjMTg5YmMwODhh', - unicefId: 'RCPT-0060-25-0.000.018', - status: 'PENDING', - vulnerabilityScore: null, - parent: { - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'PaymentPlanNode', - }, - household: { - id: 'SG91c2Vob2xkTm9kZTplMTQ4YTVmZC00NWZiLTRjNmEtODk1MS0zMGI2NTZmYjNiYTY=', - unicefId: 'HH-4', - size: 4, - admin2: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6ODljMjc3ZmItYjhkZi00MzAxLTg5NGQtMmRhNmJiMzBhNmQy', - unicefId: 'IND-27', - fullName: 'Bradley Janice Gonzalez', - __typename: 'IndividualNode', - }, - individuals: { - edges: [ - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ODljMjc3ZmItYjhkZi00MzAxLTg5NGQtMmRhNmJiMzBhNmQy', - unicefId: 'IND-27', - fullName: 'Bradley Janice Gonzalez', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZWZmNjlhNmItZTQ3MC00YjlmLWI4ZDgtZGJlMjE2OTgxYjI1', - unicefId: 'IND-28', - fullName: 'Adrienne Melissa Golden', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZDI1MzY0NTktYmQ4ZC00OTg2LTkxYzUtZmM3MDA5ZDEyNTZi', - unicefId: 'IND-29', - fullName: 'Calvin Tiffany Rivera', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6MzQyYTgyM2MtNTdkYS00OWQwLTkzMGUtMWFjNjA4NzM0NGRk', - unicefId: 'IND-30', - fullName: 'Shelby Diane Vazquez', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6ZGZhZmQyOTYtOTIyMS00MjBhLWI0MmItODc4YmI5YzhiZjQx', - unicefId: 'IND-31', - fullName: 'Jeremiah Stacy Greene', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - node: { - id: 'SW5kaXZpZHVhbE5vZGU6NGU3MjZhNDgtNzNiZi00NTllLWJkMGUtOGE3MzViOWUzYWI0', - unicefId: 'IND-32', - fullName: 'Kim Scott Oconnor', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - __typename: 'HouseholdNode', - }, - entitlementQuantity: 800, - entitlementQuantityUsd: 800, - currency: 'USD', - deliveredQuantity: 1754, - deliveredQuantityUsd: 1754, - paymentPlanHardConflicted: false, - paymentPlanSoftConflicted: false, - paymentPlanHardConflictedData: [], - paymentPlanSoftConflictedData: [], - collector: { - id: 'SW5kaXZpZHVhbE5vZGU6ZGZhZmQyOTYtOTIyMS00MjBhLWI0MmItODc4YmI5YzhiZjQx', - unicefId: 'IND-31', - fullName: 'Jeremiah Stacy Greene', - __typename: 'IndividualNode', - }, - financialServiceProvider: { - id: 'RmluYW5jaWFsU2VydmljZVByb3ZpZGVyTm9kZTplZWIwMmVjZi00ZDYwLTRkZDktOThhNS05YTk1ZTJlYmYxZjY=', - name: 'Taylor and Sons', - __typename: 'FinancialServiceProviderNode', - }, - fspAuthCode: '', - __typename: 'PaymentNode', - }, - __typename: 'PaymentNodeEdge', - }, - ], - __typename: 'PaymentNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/population/fakeApolloAllHouseholds.ts b/src/frontend/fixtures/population/fakeApolloAllHouseholds.ts deleted file mode 100644 index 55ad7ad977..0000000000 --- a/src/frontend/fixtures/population/fakeApolloAllHouseholds.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { AllHouseholdsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllHouseholds = [ - { - request: { - query: AllHouseholdsDocument, - variables: { - businessArea: 'afghanistan', - first: 10, - orderBy: '-unicef_id', - }, - }, - result: { - data: { - allHouseholds: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'SG91c2Vob2xkTm9kZTo4MmI2MTA3ZC1hYzg5LTQ2NTctYmVjYi1lOTY4ODdjNTU0ZWQ=', - status: 'ACTIVE', - unicefId: 'HH-20-0000.0001', - hasDuplicates: false, - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6MzIyYzFhYjAtNjQ3NS00NThhLWEyNTQtMWEyY2QzMjY5NDM2', - fullName: 'Agata Kowalska', - __typename: 'IndividualNode', - }, - size: 4, - admin2: { - id: - 'QWRtaW5BcmVhTm9kZTo2ZDRmZmJhNi0xN2Q3LTRhYjctYWJkYS1kODg2OWM3NjQxODc=', - name: 'Achin', - __typename: 'AreaNode', - }, - residenceStatus: 'REFUGEE', - totalCashReceived: null, - currency: '', - lastRegistrationDate: '2020-08-22T00:00:00', - program: null, - __typename: 'HouseholdNode', - }, - __typename: 'HouseholdNodeEdge', - }, - ], - __typename: 'HouseholdNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/population/fakeApolloAllHouseholdsForPopulationTable.ts b/src/frontend/fixtures/population/fakeApolloAllHouseholdsForPopulationTable.ts deleted file mode 100644 index 757972e8aa..0000000000 --- a/src/frontend/fixtures/population/fakeApolloAllHouseholdsForPopulationTable.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { AllHouseholdsForPopulationTableDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllHouseholdsForPopulationTable = [ - { - request: { - query: AllHouseholdsForPopulationTableDocument, - variables: { - businessArea: 'afghanistan', - familySize: '{"min":"","max":""}', - search: '', - documentType: 'national_id', - documentNumber: '', - admin2: '', - residenceStatus: '', - first: 10, - orderBy: 'unicef_id', - }, - }, - result: { - data: { - allHouseholds: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'SG91c2Vob2xkTm9kZTowOWI4YWE2ZC1hOTViLTQ5NWEtYTM0ZS1kMGM0YmQyNWE4Njc=', - status: 'ACTIVE', - unicefId: 'HH-20-0000.0001', - hasDuplicates: false, - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6N2JhZjlhMGItODQ4My00MDA0LTg2NzAtMGU4YTUwZjI1YTMw', - fullName: 'Agata Kowalska', - __typename: 'IndividualNode', - }, - size: 4, - admin2: { - id: 'QXJlYU5vZGU6NzYxZjhkODQtOTljZi00MWExLTk1MmYtMTQ5ZWFhNjJkZDJh', - name: 'Achin', - __typename: 'AreaNode', - }, - residenceStatus: 'REFUGEE', - totalCashReceived: null, - currency: '', - lastRegistrationDate: '2020-08-22T00:00:00', - __typename: 'HouseholdNode', - }, - __typename: 'HouseholdNodeEdge', - }, - ], - __typename: 'HouseholdNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/population/fakeApolloAllIndividuals.ts b/src/frontend/fixtures/population/fakeApolloAllIndividuals.ts deleted file mode 100644 index 945645d273..0000000000 --- a/src/frontend/fixtures/population/fakeApolloAllIndividuals.ts +++ /dev/null @@ -1,286 +0,0 @@ -import { AllIndividualsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllIndividuals = [ - { - request: { - query: AllIndividualsDocument, - variables: { - age: '{"min":"","max":""}', - businessArea: 'afghanistan', - sex: [''], - search: '', - admin2: [''], - flags: [], - status: '', - lastRegistrationDate: '{}', - first: 10, - orderBy: 'unicef_id', - }, - }, - result: { - data: { - allIndividuals: { - totalCount: 138, - pageInfo: { - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjk=', - __typename: 'PageInfo', - }, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx', - unicefId: 'IND-22-0000.0007', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Jan Kowalski', - household: { - id: - 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDE=', - unicefId: 'HH-22-0000.0003', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: null, - age: 29, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAy', - unicefId: 'IND-22-0000.0008', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Adam Nowak', - household: { - id: - 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDI=', - unicefId: 'HH-22-0000.0004', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: null, - age: 29, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6ZWRkNzRmNjQtZmQ1NS00MGNmLWE0OTMtZjU3ZDJjMjY5OWNi', - unicefId: 'IND-23-0000.0009', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Wendy Kelly Byrd', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'HEAD', - age: 66, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjM=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6OTgxZDM4NDItZjA5YS00OWQ3LTk3ZWUtMGFmYTM3NmFhOTFh', - unicefId: 'IND-23-0000.0010', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Cory Anthony Hamilton', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'FREE_UNION', - age: 21, - sex: 'FEMALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6NGYyZDkwZDItYTg4OC00MDAwLTllOWMtNWJiYWU2Yjg3YjZh', - unicefId: 'IND-23-0000.0011', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Edward Ashley Costa', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'NEPHEW_NIECE', - age: 54, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjU=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6ZjliYTFmNjItMjlmMC00ZjBmLThiMTAtODIyZDJhZGE2MGJm', - unicefId: 'IND-23-0000.0012', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Phillip Patrick Gomez', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'MOTHERINLAW_FATHERINLAW', - age: 86, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjY=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6NmJhMWQyMWYtNzU5Ni00MzI3LWJhMmYtNmIxZTg5NTNiZDgz', - unicefId: 'IND-23-0000.0013', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Kenneth Jacob Gibson', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'OTHER', - age: 59, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjc=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6NjI2N2NjYTQtMTA1OS00NWNjLWI5NjItMDk1Y2VkNGY0MjRk', - unicefId: 'IND-23-0000.0014', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Valerie David Williams', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'WIFE_HUSBAND', - age: 39, - sex: 'FEMALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjg=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6ZGI3ZjBkYjMtM2U1Ni00ZWMxLTllNjktZWYzNjQ3NjdhYTQx', - unicefId: 'IND-23-0000.0015', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Logan Sarah Morrison', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'GRANDDAUGHER_GRANDSON', - age: 35, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjk=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6Nzc3MDUwYTItNGI1OS00ZTlkLWE4YTItZGY3NzA3MTNjMWFm', - unicefId: 'IND-23-0000.0016', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2023-06-13T04:00:35.700739+00:00', - fullName: 'Jake Levi Cox', - household: { - id: - 'SG91c2Vob2xkTm9kZTo3MGI1MGZiOC01YmFhLTQ3MmYtYWEwMS0yMzFjNmUxN2FiM2M=', - unicefId: 'HH-23-0000.0005', - admin2: null, - __typename: 'HouseholdNode', - }, - relationship: 'BROTHER_SISTER', - age: 60, - sex: 'FEMALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/population/fakeApolloAllIndividualsForPopulationTable.ts b/src/frontend/fixtures/population/fakeApolloAllIndividualsForPopulationTable.ts deleted file mode 100644 index ad7b5b3cae..0000000000 --- a/src/frontend/fixtures/population/fakeApolloAllIndividualsForPopulationTable.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { AllIndividualsForPopulationTableDocument } from '../../src/__generated__/graphql'; -import { fakeProgram } from '../programs/fakeProgram'; - -export const fakeApolloAllIndividualsForPopulationTable = [ - { - request: { - query: AllIndividualsForPopulationTableDocument, - variables: { - age: '{"min":"","max":""}', - businessArea: 'afghanistan', - sex: [''], - search: '', - searchType: 'individual_id', - admin2: [''], - flags: [], - status: '', - lastRegistrationDate: '{"min":null,"max":null}', - first: 10, - orderBy: 'unicef_id', - }, - }, - result: { - data: { - allIndividuals: { - totalCount: 6, - pageInfo: { - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjU=', - __typename: 'PageInfo', - }, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2VkZDRiNDktNTRlMC00NDA4LThmZDItMTAzMGYwNWE3YTZh', - unicefId: 'IND-74-0000.0006', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'DUPLICATE', - sanctionListLastCheck: '2022-06-06T06:11:41.336055', - fullName: 'Jan Romaniak', - household: { - id: - 'SG91c2Vob2xkTm9kZTo5NjBmN2VlZS1kNDVhLTQ3OGEtYjRiNC04MmQwZThlODBhZGQ=', - unicefId: 'HH-20-0000.0002', - admin2: { - id: - 'QXJlYU5vZGU6NWYwNmViMzEtM2I1ZC00YmQ1LWIyOTMtYTg5YmE3OTgxYmZj', - name: 'Abband', - __typename: 'AreaNode', - }, - __typename: 'HouseholdNode', - }, - relationship: 'HEAD', - age: 30, - sex: 'MALE', - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - __typename: 'IndividualNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/population/fakeHousehold.ts b/src/frontend/fixtures/population/fakeHousehold.ts deleted file mode 100644 index 51e26b6080..0000000000 --- a/src/frontend/fixtures/population/fakeHousehold.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { HouseholdNode } from '../../src/__generated__/graphql'; - -export const fakeHousehold = { - id: 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDE=', - status: 'ACTIVE', - createdAt: '2024-01-17T09:20:12.470459+00:00', - residenceStatus: '', - maleChildrenCount: null, - femaleChildrenCount: null, - childrenDisabledCount: null, - size: 4, - totalCashReceived: null, - totalCashReceivedUsd: null, - currency: '', - firstRegistrationDate: '2023-01-17T09:20:12.357692+00:00', - lastRegistrationDate: '2024-01-17T09:20:12.357692+00:00', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - hasDuplicates: false, - unicefId: 'HH-23-0000.0003', - flexFields: {}, - unhcrId: '', - geopoint: null, - village: '', - adminAreaTitle: '', - admin1: null, - admin2: null, - admin3: null, - admin4: null, - headOfHousehold: { - id: 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx', - fullName: 'Jan Kowalski', - givenName: '', - familyName: '', - __typename: 'IndividualNode', - }, - address: 'Ohio', - individuals: { - totalCount: 1, - __typename: 'IndividualNodeConnection', - edges: [ - { - node: { - id: - 'SW5kaXZpZHVhbE5vZGU6Y2MwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx', - age: 29, - lastRegistrationDate: '2024-01-17', - createdAt: '2024-01-17T09:20:12.453824+00:00', - updatedAt: '2024-01-17T09:20:12.475990+00:00', - fullName: 'Jan Kowalski', - sex: 'MALE', - unicefId: 'IND-23-0000.0007', - birthDate: '1994-01-24', - maritalStatus: 'A_', - phoneNo: '', - phoneNoValid: false, - email: '', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'UNIQUE', - sanctionListLastCheck: '2024-01-18T00:42:24.735640+00:00', - role: 'PRIMARY', - relationship: null, - status: 'ACTIVE', - documents: { - edges: [], - __typename: 'DocumentNodeConnection', - }, - identities: { - edges: [], - __typename: 'IndividualIdentityNodeConnection', - }, - household: { - id: - 'SG91c2Vob2xkTm9kZTphYTAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDE=', - unicefId: 'HH-23-0000.0003', - status: 'ACTIVE', - admin1: null, - admin2: null, - program: { - id: - 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'HouseholdNode', - }, - __typename: 'IndividualNode', - }, - __typename: 'IndividualNodeEdge', - }, - ], - }, - program: { - id: - 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - __typename: 'HouseholdNode', - activeIndividualsCount: 1, - countryOrigin: '', - country: '', - zipCode: null, - femaleAgeGroup05Count: null, - femaleAgeGroup611Count: null, - femaleAgeGroup1217Count: null, - femaleAgeGroup1859Count: null, - femaleAgeGroup60Count: null, - pregnantCount: null, - maleAgeGroup05Count: null, - maleAgeGroup611Count: null, - maleAgeGroup1217Count: null, - maleAgeGroup1859Count: null, - maleAgeGroup60Count: null, - femaleAgeGroup05DisabledCount: null, - femaleAgeGroup611DisabledCount: null, - femaleAgeGroup1217DisabledCount: null, - femaleAgeGroup1859DisabledCount: null, - femaleAgeGroup60DisabledCount: null, - maleAgeGroup05DisabledCount: null, - maleAgeGroup611DisabledCount: null, - maleAgeGroup1217DisabledCount: null, - maleAgeGroup1859DisabledCount: null, - maleAgeGroup60DisabledCount: null, - fchildHoh: null, - childHoh: null, - start: null, - deviceid: '', - orgNameEnumerator: '', - returnee: null, - nameEnumerator: '', - lastSyncAt: null, - consentSharing: [], - orgEnumerator: 'A_', - updatedAt: '2024-01-17T09:20:12.470481+00:00', - consent: null, - registrationDataImport: { - name: 'Test Import', - dataSource: 'FLEX_REGISTRATION', - importDate: '2024-01-17T09:20:12.447952+00:00', - importedBy: { - firstName: 'Aaron', - lastName: 'Miller', - email: 'aaron.miller_1705483212388081168@unicef.com', - username: 'AaronMiller_1705483212388087501', - __typename: 'UserNode', - }, - __typename: 'RegistrationDataImportNode', - }, - deliveredQuantities: [ - { - totalDeliveredQuantity: '5755.00', - currency: 'USD', - __typename: 'DeliveredQuantityNode', - }, - { - totalDeliveredQuantity: '92.00', - currency: 'AZN', - __typename: 'DeliveredQuantityNode', - }, - { - totalDeliveredQuantity: '3177.00', - currency: 'COP', - __typename: 'DeliveredQuantityNode', - }, - ], -} as HouseholdNode; diff --git a/src/frontend/fixtures/population/fakeHouseholdChoices.ts b/src/frontend/fixtures/population/fakeHouseholdChoices.ts deleted file mode 100644 index c61fd47b75..0000000000 --- a/src/frontend/fixtures/population/fakeHouseholdChoices.ts +++ /dev/null @@ -1,206 +0,0 @@ -import { HouseholdChoiceDataQuery } from '../../src/__generated__/graphql'; - -export const fakeHouseholdChoices = { - residenceStatusChoices: [ - { name: 'None', value: '', __typename: 'ChoiceObject' }, - { - name: 'Displaced | Internally Displaced People', - value: 'IDP', - __typename: 'ChoiceObject', - }, - { - name: 'Displaced | Refugee / Asylum Seeker', - value: 'REFUGEE', - __typename: 'ChoiceObject', - }, - { - name: 'Displaced | Others of Concern', - value: 'OTHERS_OF_CONCERN', - __typename: 'ChoiceObject', - }, - { - name: 'Non-displaced | Host', - value: 'HOST', - __typename: 'ChoiceObject', - }, - { - name: 'Non-displaced | Non-host', - value: 'NON_HOST', - __typename: 'ChoiceObject', - }, - ], - relationshipChoices: [ - { name: 'Unknown', value: 'UNKNOWN', __typename: 'ChoiceObject' }, - { - name: 'Not a Family Member. Can only act as a recipient.', - value: 'NON_BENEFICIARY', - __typename: 'ChoiceObject', - }, - { - name: 'Head of household (self)', - value: 'HEAD', - __typename: 'ChoiceObject', - }, - { - name: 'Son / Daughter', - value: 'SON_DAUGHTER', - __typename: 'ChoiceObject', - }, - { - name: 'Wife / Husband', - value: 'WIFE_HUSBAND', - __typename: 'ChoiceObject', - }, - { - name: 'Brother / Sister', - value: 'BROTHER_SISTER', - __typename: 'ChoiceObject', - }, - { - name: 'Mother / Father', - value: 'MOTHER_FATHER', - __typename: 'ChoiceObject', - }, - { name: 'Aunt / Uncle', value: 'AUNT_UNCLE', __typename: 'ChoiceObject' }, - { - name: 'Grandmother / Grandfather', - value: 'GRANDMOTHER_GRANDFATHER', - __typename: 'ChoiceObject', - }, - { - name: 'Mother-in-law / Father-in-law', - value: 'MOTHERINLAW_FATHERINLAW', - __typename: 'ChoiceObject', - }, - { - name: 'Daughter-in-law / Son-in-law', - value: 'DAUGHTERINLAW_SONINLAW', - __typename: 'ChoiceObject', - }, - { - name: 'Sister-in-law / Brother-in-law', - value: 'SISTERINLAW_BROTHERINLAW', - __typename: 'ChoiceObject', - }, - { - name: 'Granddaughter / Grandson', - value: 'GRANDDAUGHER_GRANDSON', - __typename: 'ChoiceObject', - }, - { - name: 'Nephew / Niece', - value: 'NEPHEW_NIECE', - __typename: 'ChoiceObject', - }, - { name: 'Cousin', value: 'COUSIN', __typename: 'ChoiceObject' }, - ], - roleChoices: [ - { name: 'Primary collector', value: 'PRIMARY', __typename: 'ChoiceObject' }, - { - name: 'Alternate collector', - value: 'ALTERNATE', - __typename: 'ChoiceObject', - }, - { name: 'None', value: 'NO_ROLE', __typename: 'ChoiceObject' }, - ], - maritalStatusChoices: [ - { name: 'None', value: '', __typename: 'ChoiceObject' }, - { name: 'Single', value: 'SINGLE', __typename: 'ChoiceObject' }, - { name: 'Married', value: 'MARRIED', __typename: 'ChoiceObject' }, - { name: 'Widowed', value: 'WIDOWED', __typename: 'ChoiceObject' }, - { name: 'Divorced', value: 'DIVORCED', __typename: 'ChoiceObject' }, - { name: 'Separated', value: 'SEPARATED', __typename: 'ChoiceObject' }, - ], - workStatusChoices: [ - { name: 'Yes', value: '1', __typename: 'ChoiceObject' }, - { name: 'No', value: '0', __typename: 'ChoiceObject' }, - { name: 'Not provided', value: 'NOT_PROVIDED', __typename: 'ChoiceObject' }, - ], - deduplicationBatchStatusChoices: [ - { - name: 'Similar in batch', - value: 'SIMILAR_IN_BATCH', - __typename: 'ChoiceObject', - }, - { - name: 'Duplicate in batch', - value: 'DUPLICATE_IN_BATCH', - __typename: 'ChoiceObject', - }, - { - name: 'Unique in batch', - value: 'UNIQUE_IN_BATCH', - __typename: 'ChoiceObject', - }, - { - name: 'Not Processed', - value: 'NOT_PROCESSED', - __typename: 'ChoiceObject', - }, - ], - deduplicationGoldenRecordStatusChoices: [ - { name: 'Unique', value: 'UNIQUE', __typename: 'ChoiceObject' }, - { name: 'Duplicate', value: 'DUPLICATE', __typename: 'ChoiceObject' }, - { - name: 'Needs Adjudication', - value: 'NEEDS_ADJUDICATION', - __typename: 'ChoiceObject', - }, - { - name: 'Not Processed', - value: 'NOT_PROCESSED', - __typename: 'ChoiceObject', - }, - ], - observedDisabilityChoices: [ - { name: 'None', value: 'NONE', __typename: 'ChoiceObject' }, - { - name: 'Difficulty seeing (even if wearing glasses)', - value: 'SEEING', - __typename: 'ChoiceObject', - }, - { - name: 'Difficulty hearing (even if using a hearing aid)', - value: 'HEARING', - __typename: 'ChoiceObject', - }, - { - name: 'Difficulty walking or climbing steps', - value: 'WALKING', - __typename: 'ChoiceObject', - }, - { - name: 'Difficulty remembering or concentrating', - value: 'MEMORY', - __typename: 'ChoiceObject', - }, - { - name: 'Difficulty with self care (washing, dressing)', - value: 'SELF_CARE', - __typename: 'ChoiceObject', - }, - { - name: 'Difficulty communicating (e.g understanding or being understood)', - value: 'COMMUNICATING', - __typename: 'ChoiceObject', - }, - ], - severityOfDisabilityChoices: [ - { name: 'None', value: '', __typename: 'ChoiceObject' }, - { - name: 'Some difficulty', - value: 'SOME_DIFFICULTY', - __typename: 'ChoiceObject', - }, - { - name: 'A lot of difficulty', - value: 'LOT_DIFFICULTY', - __typename: 'ChoiceObject', - }, - { - name: 'Cannot do at all', - value: 'CANNOT_DO', - __typename: 'ChoiceObject', - }, - ], -} as HouseholdChoiceDataQuery; diff --git a/src/frontend/fixtures/population/fakeIndividual.ts b/src/frontend/fixtures/population/fakeIndividual.ts deleted file mode 100644 index 32c7a185ab..0000000000 --- a/src/frontend/fixtures/population/fakeIndividual.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { IndividualNode } from '../../src/__generated__/graphql'; - -export const fakeIndividual = { - id: 'SW5kaXZpZHVhbE5vZGU6MGZiNmJiNjktOTUzYy00MGE3LWEwMzgtY2EwYWY2ZTdlNTg5', - age: 121, - lastRegistrationDate: '1988-06-15', - createdAt: '2022-02-07T11:46:27.921643', - updatedAt: '2022-02-11T12:54:46.210554', - fullName: 'Jan Romaniak', - sex: 'MALE', - unicefId: 'IND-88-0000.0004', - birthDate: '1901-01-10', - maritalStatus: 'MARRIED', - phoneNo: '+48734123423', - sanctionListPossibleMatch: false, - sanctionListConfirmedMatch: false, - deduplicationGoldenRecordStatus: 'DUPLICATE', - sanctionListLastCheck: '2022-02-08T07:35:39.718645', - role: 'NO_ROLE', - relationship: 'BROTHER_SISTER', - status: 'WITHDRAWN', - documents: { - edges: [ - { - node: { - id: 'RG9jdW1lbnROb2RlOjBlYjYwZmY5LWRhMDYtNGYwMC1iMzQwLTFhOTU5Y2NjMjQyMw==', - country: 'Poland', - countryIso3: 'POL', - documentNumber: 'WSH221365', - photo: null, - type: { - label: 'National ID', - key: 'NATIONAL_ID', - __typename: 'DocumentTypeNode', - }, - __typename: 'DocumentNode', - }, - __typename: 'DocumentNodeEdge', - }, - ], - __typename: 'DocumentNodeConnection', - }, - identities: { edges: [], __typename: 'IndividualIdentityNodeConnection' }, - household: { - id: 'SG91c2Vob2xkTm9kZTowMTk1YTEzYi0wYThkLTRiYTEtYjM0OS00MDY4YWNmOTViNDE=', - unicefId: 'HH-20-0000.0002', - status: 'INACTIVE', - admin1: { - id: 'QWRtaW5BcmVhTm9kZTo1MDIzZDBlNS03OGY5LTQ0NWItYWJlNi03N2FkYzBhZTBmYmU=', - name: 'Ghazni', - level: 1, - pCode: 'AF11', - __typename: 'AreaNode', - }, - admin2: { - id: 'QWRtaW5BcmVhTm9kZTpiOWQwZTU3ZS02NGVhLTQ3MGEtOTllMC01YTQyOTc2NjAxNWM=', - name: 'Abband', - level: 2, - pCode: 'AF1115', - __typename: 'AreaNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - __typename: 'ProgramNode', - }, - __typename: 'HouseholdNode', - address: '938 Luna Cliffs Apt. 551\nJameschester, SC 24934', - countryOrigin: 'San Marino', - adminArea: { - id: 'QWRtaW5BcmVhTm9kZTpiOWQwZTU3ZS02NGVhLTQ3MGEtOTllMC01YTQyOTc2NjAxNWM=', - name: 'Abband', - level: 2, - __typename: 'AreaNode', - }, - }, - __typename: 'IndividualNode', - givenName: 'Jan', - familyName: 'Romaniak', - estimatedBirthDate: false, - pregnant: false, - lastSyncAt: null, - deduplicationBatchStatus: 'DUPLICATE_IN_BATCH', - disability: 'NOT_DISABLED', - commsDisability: '', - firstRegistrationDate: '1988-06-15', - whoAnswersAltPhone: '', - memoryDisability: '', - middleName: '', - whoAnswersPhone: '', - phoneNoAlternative: '', - hearingDisability: '', - observedDisability: [], - individualId: '', - seeingDisability: '', - physicalDisability: '', - selfcareDisability: '', - photo: null, - workStatus: 'NOT_PROVIDED', - enrolledInNutritionProgramme: null, - administrationOfRutf: null, - headingHousehold: null, - flexFields: { - muac_i_f: 334, - school_enrolled_i_f: '1', - school_enrolled_before_i_f: '0', - }, - householdsAndRoles: [], -} as unknown as IndividualNode; diff --git a/src/frontend/fixtures/programs/fakeApolloAllPrograms.ts b/src/frontend/fixtures/programs/fakeApolloAllPrograms.ts deleted file mode 100644 index fa13ab8016..0000000000 --- a/src/frontend/fixtures/programs/fakeApolloAllPrograms.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { AllProgramsForTableDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllPrograms = [ - { - request: { - query: AllProgramsForTableDocument, - variables: { - businessArea: 'afghanistan', - search: '', - startDate: null, - endDate: null, - status: '', - sector: [], - numberOfHouseholds: '{"min":"","max":""}', - budget: '{"min":"","max":""}', - dataCollectingType: '', - first: 5, - orderBy: null, - }, - }, - result: { - data: { - allPrograms: { - pageInfo: { - hasNextPage: true, - hasPreviousPage: false, - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'PageInfo', - }, - totalCount: 9, - edgeCount: 5, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'UHJvZ3JhbU5vZGU6ZDM4YWI4MTQtOTQyNy00ZmJkLTg4ODctOGUyYzlkMzcxYjg2', - name: 'Notice hair fall college enough perhaps.', - startDate: '2020-01-20', - endDate: '2020-08-19', - status: 'ACTIVE', - internalData: { - caId: '123-21-PRG-00001', - }, - description: - 'Purpose she occur lose new wish day per little because east like bill.', - budget: '691946197.49', - frequencyOfPayments: 'ONE_OFF', - populationGoal: 507376, - sector: 'EDUCATION', - totalNumberOfHouseholds: 12, - __typename: 'ProgramNode', - }, - __typename: 'ProgramNodeEdge', - }, - ], - __typename: 'ProgramNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/programs/fakeProgram.ts b/src/frontend/fixtures/programs/fakeProgram.ts deleted file mode 100644 index 2db8206ded..0000000000 --- a/src/frontend/fixtures/programs/fakeProgram.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - ProgramNode, - ProgramPartnerAccess, -} from '../../src/__generated__/graphql'; - -export const fakeProgram = { - id: 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - name: 'Surface campaign practice actually about about will what.', - startDate: '2020-02-25', - endDate: '2020-10-18', - status: 'FINISHED', - description: 'Yeah worry might newspaper drive her many.', - budget: '507922706.44', - frequencyOfPayments: 'REGULAR', - cashPlus: false, - populationGoal: 341883, - scope: 'UNICEF', - sector: 'CHILD_PROTECTION', - totalNumberOfHouseholds: 2, - administrativeAreasOfImplementation: 'Crime book.', - version: 1644233612796091, - partnerAccess: ProgramPartnerAccess.SelectedPartnersAccess, - partners: [ - { - areas: [], - areaAccess: 'BUSINESS_AREA', - id: '1', - }, - ], - dataCollectingType: { - code: '0', - description: 'Partial individuals collected', - }, - __typename: 'ProgramNode', -} as ProgramNode; diff --git a/src/frontend/fixtures/programs/fakeProgramChoices.ts b/src/frontend/fixtures/programs/fakeProgramChoices.ts deleted file mode 100644 index 36bd9c8372..0000000000 --- a/src/frontend/fixtures/programs/fakeProgramChoices.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ProgrammeChoiceDataQuery } from '../../src/__generated__/graphql'; - -export const fakeProgramChoices = { - programFrequencyOfPaymentsChoices: [ - { name: 'Regular', value: 'REGULAR', __typename: 'ChoiceObject' }, - { name: 'One-off', value: 'ONE_OFF', __typename: 'ChoiceObject' }, - ], - programScopeChoices: [ - { name: 'For partners', value: 'FOR_PARTNERS', __typename: 'ChoiceObject' }, - { name: 'Unicef', value: 'UNICEF', __typename: 'ChoiceObject' }, - ], - programSectorChoices: [ - { - name: 'Child Protection', - value: 'CHILD_PROTECTION', - __typename: 'ChoiceObject', - }, - { name: 'Education', value: 'EDUCATION', __typename: 'ChoiceObject' }, - { name: 'Health', value: 'HEALTH', __typename: 'ChoiceObject' }, - { - name: 'Multi Purpose', - value: 'MULTI_PURPOSE', - __typename: 'ChoiceObject', - }, - { name: 'Nutrition', value: 'NUTRITION', __typename: 'ChoiceObject' }, - { - name: 'Social Policy', - value: 'SOCIAL_POLICY', - __typename: 'ChoiceObject', - }, - { name: 'WASH', value: 'WASH', __typename: 'ChoiceObject' }, - ], - programStatusChoices: [ - { name: 'Draft', value: 'DRAFT', __typename: 'ChoiceObject' }, - { name: 'Active', value: 'ACTIVE', __typename: 'ChoiceObject' }, - { name: 'Finished', value: 'FINISHED', __typename: 'ChoiceObject' }, - ], - dataCollectingTypeChoices: [ - { name: 'Full', value: 'full', __typename: 'ChoiceObject' }, - { name: 'Partial', value: 'partial', __typename: 'ChoiceObject' }, - ], -} as ProgrammeChoiceDataQuery; diff --git a/src/frontend/fixtures/registration/fakeApolloAllRegistrationDataImports.ts b/src/frontend/fixtures/registration/fakeApolloAllRegistrationDataImports.ts deleted file mode 100644 index 634f8c9e25..0000000000 --- a/src/frontend/fixtures/registration/fakeApolloAllRegistrationDataImports.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { AllRegistrationDataImportsDocument } from '../../src/__generated__/graphql'; -import { fakeProgram } from '../programs/fakeProgram'; - -export const fakeApolloAllRegistrationDataImports = [ - { - request: { - query: AllRegistrationDataImportsDocument, - variables: { - search: '', - businessArea: 'afghanistan', - program: - 'UHJvZ3JhbU5vZGU6YzRkNTY1N2QtMWEyOS00NmUxLTgxOTAtZGY3Zjg1YTBkMmVm', - importDateRange: '{"min":null,"max":null}', - size: '{"min":"","max":""}', - first: 10, - orderBy: '-import_date', - }, - }, - result: { - data: { - allRegistrationDataImports: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'PageInfo', - }, - totalCount: 1, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'UmVnaXN0cmF0aW9uRGF0YUltcG9ydE5vZGU6NGQxMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw', - createdAt: '2023-09-29T10:52:29.562586+00:00', - name: 'Test Import', - status: 'IN_REVIEW', - erased: false, - importDate: '2023-09-29T10:52:29.562609+00:00', - importedBy: { - id: - 'VXNlck5vZGU6NTE1MTQ4MzMtM2U1Yy00NGRiLTljN2UtNWYxNzdmNDkxYmZk', - firstName: 'Tiffany', - lastName: 'Glenn', - email: 'tiffany.glenn_1695984749500934169@unicef.com', - __typename: 'UserNode', - }, - dataSource: 'API', - numberOfHouseholds: 1, - numberOfIndividuals: 3, - program: { - id: - 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - startDate: '2023-09-29', - endDate: '2024-09-28', - status: 'ACTIVE', - __typename: 'ProgramNode', - }, - refuseReason: null, - totalHouseholdsCountWithValidPhoneNo: 0, - __typename: 'RegistrationDataImportNode', - }, - __typename: 'RegistrationDataImportNodeEdge', - }, - ], - __typename: 'RegistrationDataImportNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/registration/fakeRegistrationDetailedFragment.ts b/src/frontend/fixtures/registration/fakeRegistrationDetailedFragment.ts deleted file mode 100644 index 927c6c4363..0000000000 --- a/src/frontend/fixtures/registration/fakeRegistrationDetailedFragment.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { RegistrationDetailedFragment } from '../../src/__generated__/graphql'; - -export const fakeRegistrationDetailedFragment = { - id: 'UmVnaXN0cmF0aW9uRGF0YUltcG9ydE5vZGU6YzY1NzRkODQtMzEzYS00MTNlLTgzMDUtMDY5ZmU4NWMyOGRl', - createdAt: '2022-02-07T11:45:52.336426', - name: 'romaniaks', - status: 'MERGED', - importDate: '2022-02-07T11:45:52.336512', - erased: false, - importedBy: { - id: 'VXNlck5vZGU6OTEyZjg1MGItOWQwMS00ZTdmLWFiZDgtNjJkZTcwMjhjODY1', - firstName: 'Maciej', - lastName: 'Szewczyk', - email: 'fffff@gmail.com', - __typename: 'UserNode', - }, - dataSource: 'XLS', - numberOfHouseholds: 2, - numberOfIndividuals: 6, - __typename: 'RegistrationDataImportNode', - datahubId: 'a5c025e4-0010-404c-8a22-515e0609d469', - errorMessage: '', - batchDuplicatesCountAndPercentage: [ - { - count: 2, - percentage: 33.33333333333333, - __typename: 'CountAndPercentageNode', - }, - { - count: 2, - percentage: 33.33333333333333, - __typename: 'CountAndPercentageNode', - }, - { - count: 2, - percentage: 33.33333333333333, - __typename: 'CountAndPercentageNode', - }, - ], - batchUniqueCountAndPercentage: [ - { - count: 4, - percentage: 66.66666666666666, - }, - { - count: 4, - percentage: 66.66666666666666, - __typename: 'CountAndPercentageNode', - }, - { - count: 4, - percentage: 66.66666666666666, - __typename: 'CountAndPercentageNode', - }, - ], - goldenRecordUniqueCountAndPercentage: [ - { - count: 6, - percentage: 100, - __typename: 'CountAndPercentageNode', - }, - { - count: 6, - percentage: 100, - __typename: 'CountAndPercentageNode', - }, - { - count: 6, - percentage: 100, - __typename: 'CountAndPercentageNode', - }, - ], - goldenRecordDuplicatesCountAndPercentage: [ - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - ], - goldenRecordPossibleDuplicatesCountAndPercentage: [ - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - { - count: 0, - percentage: 0, - __typename: 'CountAndPercentageNode', - }, - ], -} as RegistrationDetailedFragment; diff --git a/src/frontend/fixtures/reporting/fakeApolloAllReports.ts b/src/frontend/fixtures/reporting/fakeApolloAllReports.ts deleted file mode 100644 index c83e1245ab..0000000000 --- a/src/frontend/fixtures/reporting/fakeApolloAllReports.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { AllReportsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllReports = [ - { - request: { - query: AllReportsDocument, - variables: { - businessArea: 'afghanistan', - createdFrom: null, - createdTo: null, - createdBy: null, - first: 5, - orderBy: null, - }, - }, - result: { - data: { - allReports: { - pageInfo: { - hasNextPage: false, - hasPreviousPage: false, - endCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'PageInfo', - }, - totalCount: 1, - edgeCount: 1, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: - 'UmVwb3J0Tm9kZTo4OTlhNDM0My1jOWEwLTRkM2ItOGIyNi02MzhiMTVlMjM5ZGE=', - reportType: 1, - dateFrom: '2019-11-17', - dateTo: '2022-03-02', - status: 1, - createdAt: '2022-02-28T11:43:03.576723', - updatedAt: '2022-02-28T11:45:03.576723', - createdBy: { - firstName: '', - lastName: '', - __typename: 'UserNode', - }, - fileUrl: '', - numberOfRecords: null, - __typename: 'ReportNode', - }, - __typename: 'ReportNodeEdge', - }, - ], - __typename: 'ReportNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/reporting/fakeReportChoiceData.ts b/src/frontend/fixtures/reporting/fakeReportChoiceData.ts deleted file mode 100644 index e52ea3c30f..0000000000 --- a/src/frontend/fixtures/reporting/fakeReportChoiceData.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ReportChoiceDataQuery } from '../../src/__generated__/graphql'; - -export const fakeReportChoiceData = { - reportStatusChoices: [ - { name: 'Processing', value: '1', __typename: 'ChoiceObject' }, - { name: 'Generated', value: '2', __typename: 'ChoiceObject' }, - { name: 'Failed', value: '3', __typename: 'ChoiceObject' }, - ], - reportTypesChoices: [ - { name: 'Individuals', value: '1', __typename: 'ChoiceObject' }, - { name: 'Households', value: '2', __typename: 'ChoiceObject' }, - { - name: 'Cash Plan Verification', - value: '3', - __typename: 'ChoiceObject', - }, - { name: 'Payments', value: '4', __typename: 'ChoiceObject' }, - { name: 'Payment verification', value: '5', __typename: 'ChoiceObject' }, - { name: 'Cash Plan', value: '6', __typename: 'ChoiceObject' }, - { name: 'Programme', value: '7', __typename: 'ChoiceObject' }, - { name: 'Individuals & Payment', value: '8', __typename: 'ChoiceObject' }, - ], -} as ReportChoiceDataQuery; diff --git a/src/frontend/fixtures/steficon/fakeApolloAllSteficonRules.ts b/src/frontend/fixtures/steficon/fakeApolloAllSteficonRules.ts deleted file mode 100644 index 772abb5842..0000000000 --- a/src/frontend/fixtures/steficon/fakeApolloAllSteficonRules.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { AllSteficonRulesDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllSteficonRules = [ - { - request: { - query: AllSteficonRulesDocument, - variables: { - enabled: true, - deprecated: false, - type: 'PAYMENT_PLAN', - }, - }, - result: { - data: { - allSteficonRules: { - pageInfo: { - hasNextPage: true, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - __typename: 'PageInfo', - }, - totalCount: 2, - edges: [ - { - node: { - id: 'U3RlZmljb25SdWxlTm9kZTo1', - name: 'Test Formula for Payment Plan 033', - }, - }, - { - node: { - id: 'U3RlZmljb25SdWxlTm9kZTo3', - name: 'Test Formula for Payment Plan 044', - }, - }, - ], - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/targeting/fakeAllTargetPopulation.ts b/src/frontend/fixtures/targeting/fakeAllTargetPopulation.ts deleted file mode 100644 index 873d2bd3b8..0000000000 --- a/src/frontend/fixtures/targeting/fakeAllTargetPopulation.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { AllTargetPopulationsQuery } from '../../src/__generated__/graphql'; - -export const fakeAllTargetPopulation = { - allPaymentPlans: { - pageInfo: { - hasNextPage: true, - hasPreviousPage: false, - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - endCursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - __typename: 'PageInfo', - }, - totalCount: 25, - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOmRjYTdlMTQzLTU4Y2UtNDQ0Mi1hMDY2LTY3ZTc2ZDA4YzljYg==', - unicefId: 'PP-0060-24-00000073', - name: 'tes tp', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'LOCKED', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Paulina', - lastName: 'Kujawa', - email: 'paulina.kujawa@kellton.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6MDdkOGMwOGUtNzYxOS00NmUzLWJmM2UtMWIwYTk2ZjI5ZGRk', - name: 'tes tp', - __typename: 'TargetPopulationNode', - }, - currency: 'ALL', - currencyName: 'Albanian lek', - startDate: '2024-08-09', - endDate: '2024-08-31', - dispersionStartDate: '2024-08-09', - dispersionEndDate: '2024-08-23', - createdAt: '2024-06-29', - updatedAt: '2024-06-29', - femaleChildrenCount: 5, - femaleAdultsCount: 6, - maleChildrenCount: 7, - maleAdultsCount: 0, - totalHouseholdsCount: 4, - totalIndividualsCount: 18, - totalEntitledQuantity: 0, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 0, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjM2YTBkYWMwLWVlNjAtNDYyMC04MDk0LWI3Y2FjYjdjZjZlYQ==', - unicefId: 'PP-0060-24-00000072', - name: 'fdssdsdfsfdssdsdfsfdssdsdfs', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'OPEN', - createdBy: { - id: 'VXNlck5vZGU6NjZiN2MxMjMtMmRiOS00M2RjLWJlYTQtOTY5OTc5YjE3MjI5', - firstName: 'Jan', - lastName: 'Romaniak', - email: 'jan.romaniak@kellton.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6ZDE0ODJlMGMtNzJkMC00NDU3LWFkOWItMThmNzc1Zjg3MjVj', - name: 'fdssdsdfsfdssdsdfsfdssdsdfs', - __typename: 'TargetPopulationNode', - }, - currency: 'AOA', - currencyName: 'Angolan kwanza', - startDate: '2024-07-24', - endDate: '2024-07-27', - dispersionStartDate: '2024-07-24', - dispersionEndDate: '2024-07-30', - createdAt: '2024-06-29', - updatedAt: '2024-06-29', - femaleChildrenCount: 0, - femaleAdultsCount: 0, - maleChildrenCount: 0, - maleAdultsCount: 0, - totalHouseholdsCount: 0, - totalIndividualsCount: 0, - totalEntitledQuantity: 0, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 0, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOmZmNTY4NWY0LTI1ZDEtNGI1YS1iMWU0LTFkNjRiN2ZkYThiMw==', - unicefId: 'PP-0060-24-00000063', - name: 'Test TP 1', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'ACCEPTED', - createdBy: { - id: 'VXNlck5vZGU6NjZiN2MxMjMtMmRiOS00M2RjLWJlYTQtOTY5OTc5YjE3MjI5', - firstName: 'Jan', - lastName: 'Romaniak', - email: 'jan.romaniak@kellton.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6MzM3NDg0ZTAtYmVkMC00N2U0LWI2YzEtZWUyMmViNzFmZTY3', - name: 'Test TP 1', - __typename: 'TargetPopulationNode', - }, - currency: 'ALL', - currencyName: 'Albanian lek', - startDate: '2024-06-25', - endDate: '2024-06-29', - dispersionStartDate: '2024-06-25', - dispersionEndDate: '2024-06-29', - createdAt: '2024-06-29', - updatedAt: '2024-06-29', - femaleChildrenCount: 45, - femaleAdultsCount: 47, - maleChildrenCount: 65, - maleAdultsCount: 50, - totalHouseholdsCount: 50, - totalIndividualsCount: 207, - totalEntitledQuantity: 10600, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 10600, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjM=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjJjNDUwYzU1LWM4YWEtNDk5Ni1hMWU4LWU3OGYzMzgxYWVlNA==', - unicefId: 'PP-0060-24-00000057', - name: 'nazywam', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'ACCEPTED', - createdBy: { - id: 'VXNlck5vZGU6NmZiYTBhNDctN2U2Mi00ZjMyLWI0Y2EtNGNiNjkxZTk4ZmI0', - firstName: 'Szymon', - lastName: 'Wyderka', - email: 'szymon.wyderka@kellton.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - targetPopulation: { - id: 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6OTIyYzZiMmYtYWYxOS00NzM0LTg5M2QtZTg1YWM0NWQ4YjU1', - name: 'nazywam', - __typename: 'TargetPopulationNode', - }, - currency: 'ARS', - currencyName: 'Argentine peso', - startDate: '2024-06-12', - endDate: '2024-06-14', - dispersionStartDate: '2024-06-11', - dispersionEndDate: '2024-06-21', - createdAt: '2024-06-29', - updatedAt: '2024-06-29', - femaleChildrenCount: 20, - femaleAdultsCount: 5, - maleChildrenCount: 13, - maleAdultsCount: 4, - totalHouseholdsCount: 10, - totalIndividualsCount: 42, - totalEntitledQuantity: 2120, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 2120, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjQ=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjZiY2Y1NDFkLTliZGYtNGQ5Ny05NmYxLWU1M2MyZjYyZjkxMw==', - unicefId: 'PP-0060-24-00000056', - name: null, - isFollowUp: true, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'OPEN', - createdBy: { - id: 'VXNlck5vZGU6NmZiYTBhNDctN2U2Mi00ZjMyLWI0Y2EtNGNiNjkxZTk4ZmI0', - firstName: 'Szymon', - lastName: 'Wyderka', - email: 'szymon.wyderka@kellton.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - currency: 'AWG', - currencyName: 'Aruban florin', - startDate: '2024-04-01', - endDate: '2024-04-02', - dispersionStartDate: '2024-06-02', - dispersionEndDate: '2024-06-29', - createdAt: '2024-06-29', - updatedAt: '2024-06-29', - femaleChildrenCount: 0, - femaleAdultsCount: 5, - maleChildrenCount: 0, - maleAdultsCount: 3, - totalHouseholdsCount: 1, - totalIndividualsCount: 8, - totalEntitledQuantity: 212, - totalDeliveredQuantity: 0, - totalUndeliveredQuantity: 212, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - ], - __typename: 'PaymentPlanNodeConnection', - }, -} as AllTargetPopulationsQuery; diff --git a/src/frontend/fixtures/targeting/fakeApolloAllTargetPopulation.ts b/src/frontend/fixtures/targeting/fakeApolloAllTargetPopulation.ts deleted file mode 100644 index 1054cef195..0000000000 --- a/src/frontend/fixtures/targeting/fakeApolloAllTargetPopulation.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { AllTargetPopulationsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllTargetPopulation = [ - { - request: { - query: AllTargetPopulationsDocument, - variables: { - name: '', - totalHouseholdsCountMin: null, - totalHouseholdsCountMax: null, - status: '', - businessArea: 'afghanistan', - createdAtRange: '{"min":null,"max":null}', - first: 10, - orderBy: '-created_at', - program: - 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - }, - }, - result: { - data: { - allPaymentPlans: { - edges: [ - { - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjUxYTM0MzQxLTViOTAtNDM0ZS04NWYxLWU4OWYzNmE2N2E0MQ==', - unicefId: 'PP-0060-24-00000003', - name: 'ffrijrijrijr', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'TP_OPEN', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - currency: null, - currencyName: null, - startDate: '2024-12-19', - endDate: '2025-05-03', - dispersionStartDate: null, - dispersionEndDate: null, - femaleChildrenCount: 0, - femaleAdultsCount: 0, - maleChildrenCount: 0, - maleAdultsCount: 0, - totalHouseholdsCount: 0, - totalIndividualsCount: 0, - totalEntitledQuantity: null, - totalDeliveredQuantity: null, - totalUndeliveredQuantity: null, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjFlMDMyNDdmLWFmOWUtNDMyMS04ZGIwLWUxYzg2MGZjYWI5Nw==', - unicefId: 'PP-0060-22-11223344', - name: 'Reconciled Payment Plan', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'FINISHED', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - currency: 'USD', - currencyName: 'United States dollar', - startDate: null, - endDate: null, - dispersionStartDate: '2024-12-19', - dispersionEndDate: '2025-01-02', - femaleChildrenCount: 0, - femaleAdultsCount: 4, - maleChildrenCount: 0, - maleAdultsCount: 6, - totalHouseholdsCount: 5, - totalIndividualsCount: 28, - totalEntitledQuantity: 2999.0, - totalDeliveredQuantity: 999.0, - totalUndeliveredQuantity: null, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - { - cursor: 'YXJyYXljb25uZWN0aW9uOjI=', - node: { - id: 'UGF5bWVudFBsYW5Ob2RlOjAwMDAwMDAwLWZlZWQtYmVlZi0wMDAwLTAwMDAwYmFkZjAwZA==', - unicefId: 'PP-0060-24-00000001', - name: 'Test Payment Plan', - isFollowUp: false, - followUps: { - totalCount: 0, - edges: [], - __typename: 'PaymentPlanNodeConnection', - }, - status: 'TP_OPEN', - createdBy: { - id: 'VXNlck5vZGU6NDE5NmMyYzUtYzJkZC00OGQyLTg4N2YtM2E5ZDM5ZTc4OTE2', - firstName: 'Root', - lastName: 'Rootkowski', - email: 'root@root.com', - __typename: 'UserNode', - }, - program: { - id: 'UHJvZ3JhbU5vZGU6MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtZmFjZWIwMGMwMDAw', - name: 'Test Program', - __typename: 'ProgramNode', - }, - currency: 'USD', - currencyName: 'United States dollar', - startDate: null, - endDate: null, - dispersionStartDate: '2024-12-19', - dispersionEndDate: '2025-01-02', - femaleChildrenCount: 0, - femaleAdultsCount: 0, - maleChildrenCount: 0, - maleAdultsCount: 2, - totalHouseholdsCount: 2, - totalIndividualsCount: 2, - totalEntitledQuantity: null, - totalDeliveredQuantity: null, - totalUndeliveredQuantity: null, - __typename: 'PaymentPlanNode', - }, - __typename: 'PaymentPlanNodeEdge', - }, - ], - __typename: 'PaymentPlanNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/targeting/fakeApolloCandidateHouseholdsListByTargetingCriteria.ts b/src/frontend/fixtures/targeting/fakeApolloCandidateHouseholdsListByTargetingCriteria.ts deleted file mode 100644 index 6a2997df33..0000000000 --- a/src/frontend/fixtures/targeting/fakeApolloCandidateHouseholdsListByTargetingCriteria.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { TargetPopulationHouseholdsDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloTargetPopulationHouseholds = [ - { - request: { - query: TargetPopulationHouseholdsDocument, - variables: { - first: 10, - orderBy: null, - targetPopulation: - 'VGFyZ2V0UG9wdWxhdGlvbk5vZGU6ZDYzNWQ0ZDMtNGI1My00MTVkLTkzZWYtNjFlODhjZDg0MWMy', - }, - }, - result: { - data: { - targetPopulationHouseholds: { - edges: [ - { - node: { - id: - 'SG91c2Vob2xkTm9kZTozZjg1YWZjMC0zNTVhLTQ3ODAtYmVkZC0wMTE2ZTU0MmUyOGY=', - unicefId: 'HH-21-0000.1137', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6NmQ5ZTgwMDctZTZmNS00YmZjLTk0NDktY2UyMTk4ZTFjZjNk', - givenName: 'Johnie', - familyName: 'Zielinski', - fullName: 'Johnie Zielinski', - __typename: 'IndividualNode', - }, - size: 1, - adminArea: { - id: - 'QWRtaW5BcmVhTm9kZTpkMGQ1YmNmNS1hZDU1LTQ4YWMtODcyZS1mM2FkZGY0NDdjNDE=', - name: 'North Kordofan', - __typename: 'AreaNode', - }, - updatedAt: '2021-12-16T10:16:45.282245', - address: '', - selection: null, - __typename: 'HouseholdNode', - }, - cursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'HouseholdNodeEdge', - }, - { - node: { - id: - 'SG91c2Vob2xkTm9kZTpjMGQxMzIyMS0xYTk5LTQ2NDItYjZmNi05OTJjZWEzODAzNTY=', - unicefId: 'HH-21-0000.1133', - headOfHousehold: { - id: - 'SW5kaXZpZHVhbE5vZGU6ZjM2ZDA3YTYtNzgyZi00OGE3LWJjZGEtOWY4ZDI5ZmE0Yjg1', - givenName: 'Jennifer', - familyName: 'Foster', - fullName: 'Jennifer Foster', - __typename: 'IndividualNode', - }, - size: 1, - adminArea: { - id: - 'QWRtaW5BcmVhTm9kZTpkMGRkNDRkZC1iNzRiLTQ1MjYtOTAyNC0xOTg2MWI1ZDNkOWQ=', - name: 'River Nile', - __typename: 'AreaNode', - }, - updatedAt: '2021-12-16T10:16:45.281644', - address: '', - selection: null, - __typename: 'HouseholdNode', - }, - cursor: 'YXJyYXljb25uZWN0aW9uOjE=', - __typename: 'HouseholdNodeEdge', - }, - ], - totalCount: 2, - edgeCount: 2, - __typename: 'HouseholdNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/fixtures/users/fakeApolloAllUsers.ts b/src/frontend/fixtures/users/fakeApolloAllUsers.ts deleted file mode 100644 index 2318e33e9c..0000000000 --- a/src/frontend/fixtures/users/fakeApolloAllUsers.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { AllUsersDocument } from '../../src/__generated__/graphql'; - -export const fakeApolloAllUsers = [ - { - request: { - query: AllUsersDocument, - variables: { - businessArea: 'afghanistan', - first: 10, - orderBy: '-status', - }, - }, - result: { - data: { - allUsers: { - pageInfo: { - hasNextPage: true, - hasPreviousPage: false, - endCursor: 'YXJyYXljb25uZWN0aW9uOjk=', - startCursor: 'YXJyYXljb25uZWN0aW9uOjA=', - __typename: 'PageInfo', - }, - edges: [ - { - node: { - id: - 'VXNlck5vZGU6NzVmNmNkOTMtY2FhZC00NjQ1LWFjNzAtNjNhZTM2NGQ0MGI3', - firstName: '', - lastName: '', - username: 'wojciech.nosal@tivix.com', - email: 'wojciech.nosal@tivix.com', - isActive: true, - lastLogin: '2021-04-27T09:29:43.275926', - status: 'ACTIVE', - partner: { name: 'UNICEF', __typename: 'PartnerType' }, - userRoles: [ - { - businessArea: { - name: 'Global', - __typename: 'UserBusinessAreaNode', - }, - role: { - name: 'Basic User', - permissions: ['DASHBOARD_VIEW_COUNTRY'], - __typename: 'RoleNode', - }, - __typename: 'UserRoleNode', - }, - { - businessArea: { - name: 'Afghanistan', - __typename: 'UserBusinessAreaNode', - }, - role: { - name: 'Role with all permissions', - permissions: [ - 'RDI_VIEW_LIST', - 'RDI_VIEW_DETAILS', - 'RDI_IMPORT_DATA', - 'RDI_RERUN_DEDUPE', - 'RDI_MERGE_IMPORT', - 'RDI_REFUSE_IMPORT', - 'POPULATION_VIEW_HOUSEHOLDS_LIST', - 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', - 'POPULATION_VIEW_INDIVIDUALS_LIST', - 'POPULATION_VIEW_INDIVIDUALS_DETAILS', - 'PROGRAMME_VIEW_LIST_AND_DETAILS', - 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', - 'PROGRAMME_CREATE', - 'PROGRAMME_UPDATE', - 'PROGRAMME_REMOVE', - 'PROGRAMME_ACTIVATE', - 'PROGRAMME_FINISH', - 'TARGETING_VIEW_LIST', - 'TARGETING_VIEW_DETAILS', - 'TARGETING_CREATE', - 'TARGETING_UPDATE', - 'TARGETING_DUPLICATE', - 'TARGETING_REMOVE', - 'TARGETING_LOCK', - 'TARGETING_UNLOCK', - 'TARGETING_SEND', - 'PAYMENT_VERIFICATION_VIEW_LIST', - 'PAYMENT_VERIFICATION_VIEW_DETAILS', - 'PAYMENT_VERIFICATION_CREATE', - 'PAYMENT_VERIFICATION_UPDATE', - 'PAYMENT_VERIFICATION_ACTIVATE', - 'PAYMENT_VERIFICATION_DISCARD', - 'PAYMENT_VERIFICATION_FINISH', - 'PAYMENT_VERIFICATION_EXPORT', - 'PAYMENT_VERIFICATION_IMPORT', - 'PAYMENT_VERIFICATION_VERIFY', - 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', - 'USER_MANAGEMENT_VIEW_LIST', - 'DASHBOARD_VIEW_COUNTRY', - 'DASHBOARD_EXPORT', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_LIST_SENSITIVE', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', - 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', - 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', - 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', - 'GRIEVANCES_CREATE', - 'GRIEVANCES_UPDATE', - 'GRIEVANCES_UPDATE_AS_CREATOR', - 'GRIEVANCES_UPDATE_AS_OWNER', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_ADD_NOTE', - 'GRIEVANCES_ADD_NOTE_AS_CREATOR', - 'GRIEVANCES_ADD_NOTE_AS_OWNER', - 'GRIEVANCES_SET_IN_PROGRESS', - 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', - 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', - 'GRIEVANCES_SET_ON_HOLD', - 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', - 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', - 'GRIEVANCES_SEND_FOR_APPROVAL', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', - 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', - 'GRIEVANCES_SEND_BACK', - 'GRIEVANCES_SEND_BACK_AS_CREATOR', - 'GRIEVANCES_SEND_BACK_AS_OWNER', - 'GRIEVANCES_APPROVE_DATA_CHANGE', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', - 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', - 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', - 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', - 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', - 'GRIEVANCE_ASSIGN', - 'REPORTING_EXPORT', - 'ALL_VIEW_PII_DATA_ON_LISTS', - 'ACTIVITY_LOG_VIEW', - 'ACTIVITY_LOG_DOWNLOAD', - ], - __typename: 'RoleNode', - }, - __typename: 'UserRoleNode', - }, - ], - __typename: 'UserNode', - }, - cursor: 'YXJyYXljb25uZWN0aW9uOjc=', - __typename: 'UserNodeEdge', - }, - ], - totalCount: 13, - edgeCount: 10, - __typename: 'UserNodeConnection', - }, - }, - }, - }, -]; diff --git a/src/frontend/generated/core/ApiError.ts b/src/frontend/generated/core/ApiError.ts deleted file mode 100644 index ec7b16af6f..0000000000 --- a/src/frontend/generated/core/ApiError.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { ApiRequestOptions } from './ApiRequestOptions'; -import type { ApiResult } from './ApiResult'; - -export class ApiError extends Error { - public readonly url: string; - public readonly status: number; - public readonly statusText: string; - public readonly body: any; - public readonly request: ApiRequestOptions; - - constructor(request: ApiRequestOptions, response: ApiResult, message: string) { - super(message); - - this.name = 'ApiError'; - this.url = response.url; - this.status = response.status; - this.statusText = response.statusText; - this.body = response.body; - this.request = request; - } -} diff --git a/src/frontend/generated/core/ApiRequestOptions.ts b/src/frontend/generated/core/ApiRequestOptions.ts deleted file mode 100644 index 93143c3ce1..0000000000 --- a/src/frontend/generated/core/ApiRequestOptions.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type ApiRequestOptions = { - readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; - readonly url: string; - readonly path?: Record; - readonly cookies?: Record; - readonly headers?: Record; - readonly query?: Record; - readonly formData?: Record; - readonly body?: any; - readonly mediaType?: string; - readonly responseHeader?: string; - readonly errors?: Record; -}; diff --git a/src/frontend/generated/core/ApiResult.ts b/src/frontend/generated/core/ApiResult.ts deleted file mode 100644 index ee1126e2cc..0000000000 --- a/src/frontend/generated/core/ApiResult.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type ApiResult = { - readonly url: string; - readonly ok: boolean; - readonly status: number; - readonly statusText: string; - readonly body: any; -}; diff --git a/src/frontend/generated/core/CancelablePromise.ts b/src/frontend/generated/core/CancelablePromise.ts deleted file mode 100644 index d70de92946..0000000000 --- a/src/frontend/generated/core/CancelablePromise.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export class CancelError extends Error { - - constructor(message: string) { - super(message); - this.name = 'CancelError'; - } - - public get isCancelled(): boolean { - return true; - } -} - -export interface OnCancel { - readonly isResolved: boolean; - readonly isRejected: boolean; - readonly isCancelled: boolean; - - (cancelHandler: () => void): void; -} - -export class CancelablePromise implements Promise { - #isResolved: boolean; - #isRejected: boolean; - #isCancelled: boolean; - readonly #cancelHandlers: (() => void)[]; - readonly #promise: Promise; - #resolve?: (value: T | PromiseLike) => void; - #reject?: (reason?: any) => void; - - constructor( - executor: ( - resolve: (value: T | PromiseLike) => void, - reject: (reason?: any) => void, - onCancel: OnCancel - ) => void - ) { - this.#isResolved = false; - this.#isRejected = false; - this.#isCancelled = false; - this.#cancelHandlers = []; - this.#promise = new Promise((resolve, reject) => { - this.#resolve = resolve; - this.#reject = reject; - - const onResolve = (value: T | PromiseLike): void => { - if (this.#isResolved || this.#isRejected || this.#isCancelled) { - return; - } - this.#isResolved = true; - if (this.#resolve) this.#resolve(value); - }; - - const onReject = (reason?: any): void => { - if (this.#isResolved || this.#isRejected || this.#isCancelled) { - return; - } - this.#isRejected = true; - if (this.#reject) this.#reject(reason); - }; - - const onCancel = (cancelHandler: () => void): void => { - if (this.#isResolved || this.#isRejected || this.#isCancelled) { - return; - } - this.#cancelHandlers.push(cancelHandler); - }; - - Object.defineProperty(onCancel, 'isResolved', { - get: (): boolean => this.#isResolved, - }); - - Object.defineProperty(onCancel, 'isRejected', { - get: (): boolean => this.#isRejected, - }); - - Object.defineProperty(onCancel, 'isCancelled', { - get: (): boolean => this.#isCancelled, - }); - - return executor(onResolve, onReject, onCancel as OnCancel); - }); - } - - get [Symbol.toStringTag]() { - return "Cancellable Promise"; - } - - public then( - onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null, - onRejected?: ((reason: any) => TResult2 | PromiseLike) | null - ): Promise { - return this.#promise.then(onFulfilled, onRejected); - } - - public catch( - onRejected?: ((reason: any) => TResult | PromiseLike) | null - ): Promise { - return this.#promise.catch(onRejected); - } - - public finally(onFinally?: (() => void) | null): Promise { - return this.#promise.finally(onFinally); - } - - public cancel(): void { - if (this.#isResolved || this.#isRejected || this.#isCancelled) { - return; - } - this.#isCancelled = true; - if (this.#cancelHandlers.length) { - try { - for (const cancelHandler of this.#cancelHandlers) { - cancelHandler(); - } - } catch (error) { - console.warn('Cancellation threw an error', error); - return; - } - } - this.#cancelHandlers.length = 0; - if (this.#reject) this.#reject(new CancelError('Request aborted')); - } - - public get isCancelled(): boolean { - return this.#isCancelled; - } -} diff --git a/src/frontend/generated/core/OpenAPI.ts b/src/frontend/generated/core/OpenAPI.ts deleted file mode 100644 index a0a9ed4a99..0000000000 --- a/src/frontend/generated/core/OpenAPI.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { ApiRequestOptions } from './ApiRequestOptions'; - -type Resolver = (options: ApiRequestOptions) => Promise; -type Headers = Record; - -export type OpenAPIConfig = { - BASE: string; - VERSION: string; - WITH_CREDENTIALS: boolean; - CREDENTIALS: 'include' | 'omit' | 'same-origin'; - TOKEN?: string | Resolver | undefined; - USERNAME?: string | Resolver | undefined; - PASSWORD?: string | Resolver | undefined; - HEADERS?: Headers | Resolver | undefined; - ENCODE_PATH?: ((path: string) => string) | undefined; -}; - -export const OpenAPI: OpenAPIConfig = { - BASE: '', - VERSION: '1.0.0', - WITH_CREDENTIALS: false, - CREDENTIALS: 'include', - TOKEN: undefined, - USERNAME: undefined, - PASSWORD: undefined, - HEADERS: undefined, - ENCODE_PATH: undefined, -}; diff --git a/src/frontend/generated/core/request.ts b/src/frontend/generated/core/request.ts deleted file mode 100644 index f83d711995..0000000000 --- a/src/frontend/generated/core/request.ts +++ /dev/null @@ -1,322 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import { ApiError } from './ApiError'; -import type { ApiRequestOptions } from './ApiRequestOptions'; -import type { ApiResult } from './ApiResult'; -import { CancelablePromise } from './CancelablePromise'; -import type { OnCancel } from './CancelablePromise'; -import type { OpenAPIConfig } from './OpenAPI'; - -export const isDefined = (value: T | null | undefined): value is Exclude => { - return value !== undefined && value !== null; -}; - -export const isString = (value: any): value is string => { - return typeof value === 'string'; -}; - -export const isStringWithValue = (value: any): value is string => { - return isString(value) && value !== ''; -}; - -export const isBlob = (value: any): value is Blob => { - return ( - typeof value === 'object' && - typeof value.type === 'string' && - typeof value.stream === 'function' && - typeof value.arrayBuffer === 'function' && - typeof value.constructor === 'function' && - typeof value.constructor.name === 'string' && - /^(Blob|File)$/.test(value.constructor.name) && - /^(Blob|File)$/.test(value[Symbol.toStringTag]) - ); -}; - -export const isFormData = (value: any): value is FormData => { - return value instanceof FormData; -}; - -export const base64 = (str: string): string => { - try { - return btoa(str); - } catch (err) { - // @ts-ignore - return Buffer.from(str).toString('base64'); - } -}; - -export const getQueryString = (params: Record): string => { - const qs: string[] = []; - - const append = (key: string, value: any) => { - qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); - }; - - const process = (key: string, value: any) => { - if (isDefined(value)) { - if (Array.isArray(value)) { - value.forEach(v => { - process(key, v); - }); - } else if (typeof value === 'object') { - Object.entries(value).forEach(([k, v]) => { - process(`${key}[${k}]`, v); - }); - } else { - append(key, value); - } - } - }; - - Object.entries(params).forEach(([key, value]) => { - process(key, value); - }); - - if (qs.length > 0) { - return `?${qs.join('&')}`; - } - - return ''; -}; - -const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => { - const encoder = config.ENCODE_PATH || encodeURI; - - const path = options.url - .replace('{api-version}', config.VERSION) - .replace(/{(.*?)}/g, (substring: string, group: string) => { - if (options.path?.hasOwnProperty(group)) { - return encoder(String(options.path[group])); - } - return substring; - }); - - const url = `${config.BASE}${path}`; - if (options.query) { - return `${url}${getQueryString(options.query)}`; - } - return url; -}; - -export const getFormData = (options: ApiRequestOptions): FormData | undefined => { - if (options.formData) { - const formData = new FormData(); - - const process = (key: string, value: any) => { - if (isString(value) || isBlob(value)) { - formData.append(key, value); - } else { - formData.append(key, JSON.stringify(value)); - } - }; - - Object.entries(options.formData) - .filter(([_, value]) => isDefined(value)) - .forEach(([key, value]) => { - if (Array.isArray(value)) { - value.forEach(v => process(key, v)); - } else { - process(key, value); - } - }); - - return formData; - } - return undefined; -}; - -type Resolver = (options: ApiRequestOptions) => Promise; - -export const resolve = async (options: ApiRequestOptions, resolver?: T | Resolver): Promise => { - if (typeof resolver === 'function') { - return (resolver as Resolver)(options); - } - return resolver; -}; - -export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const [token, username, password, additionalHeaders] = await Promise.all([ - resolve(options, config.TOKEN), - resolve(options, config.USERNAME), - resolve(options, config.PASSWORD), - resolve(options, config.HEADERS), - ]); - - const headers = Object.entries({ - Accept: 'application/json', - ...additionalHeaders, - ...options.headers, - }) - .filter(([_, value]) => isDefined(value)) - .reduce((headers, [key, value]) => ({ - ...headers, - [key]: String(value), - }), {} as Record); - - if (isStringWithValue(token)) { - headers['Authorization'] = `Bearer ${token}`; - } - - if (isStringWithValue(username) && isStringWithValue(password)) { - const credentials = base64(`${username}:${password}`); - headers['Authorization'] = `Basic ${credentials}`; - } - - if (options.body !== undefined) { - if (options.mediaType) { - headers['Content-Type'] = options.mediaType; - } else if (isBlob(options.body)) { - headers['Content-Type'] = options.body.type || 'application/octet-stream'; - } else if (isString(options.body)) { - headers['Content-Type'] = 'text/plain'; - } else if (!isFormData(options.body)) { - headers['Content-Type'] = 'application/json'; - } - } - - return new Headers(headers); -}; - -export const getRequestBody = (options: ApiRequestOptions): any => { - if (options.body !== undefined) { - if (options.mediaType?.includes('/json')) { - return JSON.stringify(options.body) - } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) { - return options.body; - } else { - return JSON.stringify(options.body); - } - } - return undefined; -}; - -export const sendRequest = async ( - config: OpenAPIConfig, - options: ApiRequestOptions, - url: string, - body: any, - formData: FormData | undefined, - headers: Headers, - onCancel: OnCancel -): Promise => { - const controller = new AbortController(); - - const request: RequestInit = { - headers, - body: body ?? formData, - method: options.method, - signal: controller.signal, - }; - - if (config.WITH_CREDENTIALS) { - request.credentials = config.CREDENTIALS; - } - - onCancel(() => controller.abort()); - - return await fetch(url, request); -}; - -export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => { - if (responseHeader) { - const content = response.headers.get(responseHeader); - if (isString(content)) { - return content; - } - } - return undefined; -}; - -export const getResponseBody = async (response: Response): Promise => { - if (response.status !== 204) { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); - } - } - } catch (error) { - console.error(error); - } - } - return undefined; -}; - -export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => { - const errors: Record = { - 400: 'Bad Request', - 401: 'Unauthorized', - 403: 'Forbidden', - 404: 'Not Found', - 500: 'Internal Server Error', - 502: 'Bad Gateway', - 503: 'Service Unavailable', - ...options.errors, - } - - const error = errors[result.status]; - if (error) { - throw new ApiError(options, result, error); - } - - if (!result.ok) { - const errorStatus = result.status ?? 'unknown'; - const errorStatusText = result.statusText ?? 'unknown'; - const errorBody = (() => { - try { - return JSON.stringify(result.body, null, 2); - } catch (e) { - return undefined; - } - })(); - - throw new ApiError(options, result, - `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}` - ); - } -}; - -/** - * Request method - * @param config The OpenAPI configuration object - * @param options The request options from the service - * @returns CancelablePromise - * @throws ApiError - */ -export const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => { - return new CancelablePromise(async (resolve, reject, onCancel) => { - try { - const url = getUrl(config, options); - const formData = getFormData(options); - const body = getRequestBody(options); - const headers = await getHeaders(config, options); - - if (!onCancel.isCancelled) { - const response = await sendRequest(config, options, url, body, formData, headers, onCancel); - const responseBody = await getResponseBody(response); - const responseHeader = getResponseHeader(response, options.responseHeader); - - const result: ApiResult = { - url, - ok: response.ok, - status: response.status, - statusText: response.statusText, - body: responseHeader ?? responseBody, - }; - - catchErrorCodes(options, result); - - resolve(result.body); - } - } catch (error) { - reject(error); - } - }); -}; diff --git a/src/frontend/generated/index.ts b/src/frontend/generated/index.ts deleted file mode 100644 index 806bb5d882..0000000000 --- a/src/frontend/generated/index.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export { ApiError } from './core/ApiError'; -export { CancelablePromise, CancelError } from './core/CancelablePromise'; -export { OpenAPI } from './core/OpenAPI'; -export type { OpenAPIConfig } from './core/OpenAPI'; - -export { ActionEnum } from './models/ActionEnum'; -export { Admin1Enum } from './models/Admin1Enum'; -export { Admin2Enum } from './models/Admin2Enum'; -export { Admin3Enum } from './models/Admin3Enum'; -export { Admin4Enum } from './models/Admin4Enum'; -export type { Area } from './models/Area'; -export type { AreaList } from './models/AreaList'; -export type { AreaType } from './models/AreaType'; -export type { BeneficiaryGroup } from './models/BeneficiaryGroup'; -export { BiometricDeduplicationBatchStatusEnum } from './models/BiometricDeduplicationBatchStatusEnum'; -export { BiometricDeduplicationGoldenRecordStatusEnum } from './models/BiometricDeduplicationGoldenRecordStatusEnum'; -export { BlankEnum } from './models/BlankEnum'; -export type { BusinessArea } from './models/BusinessArea'; -export { CollectTypeEnum } from './models/CollectTypeEnum'; -export { CommsDisabilityEnum } from './models/CommsDisabilityEnum'; -export { ConsentSharingEnum } from './models/ConsentSharingEnum'; -export type { Country } from './models/Country'; -export { CountryEnum } from './models/CountryEnum'; -export { CountryOriginEnum } from './models/CountryOriginEnum'; -export { CurrencyEnum } from './models/CurrencyEnum'; -export { DeduplicationGoldenRecordStatusEnum } from './models/DeduplicationGoldenRecordStatusEnum'; -export type { Delegate } from './models/Delegate'; -export type { DelegatePeople } from './models/DelegatePeople'; -export { DisabilityEnum } from './models/DisabilityEnum'; -export type { Document } from './models/Document'; -export { DocumentStatusEnum } from './models/DocumentStatusEnum'; -export { DocumentTypeEnum } from './models/DocumentTypeEnum'; -export type { FollowUpPaymentPlan } from './models/FollowUpPaymentPlan'; -export { FrequencyOfPaymentsEnum } from './models/FrequencyOfPaymentsEnum'; -export { HearingDisabilityEnum } from './models/HearingDisabilityEnum'; -export type { Household } from './models/Household'; -export type { Individual } from './models/Individual'; -export { MemoryDisabilityEnum } from './models/MemoryDisabilityEnum'; -export type { NullEnum } from './models/NullEnum'; -export type { Organization } from './models/Organization'; -export { OrgEnumeratorEnum } from './models/OrgEnumeratorEnum'; -export type { PaginatedAreaList } from './models/PaginatedAreaList'; -export type { PaginatedAreaListList } from './models/PaginatedAreaListList'; -export type { PaginatedAreaTypeList } from './models/PaginatedAreaTypeList'; -export type { PaginatedBeneficiaryGroupList } from './models/PaginatedBeneficiaryGroupList'; -export type { PaginatedBusinessAreaList } from './models/PaginatedBusinessAreaList'; -export type { PaginatedCountryList } from './models/PaginatedCountryList'; -export type { PaginatedOrganizationList } from './models/PaginatedOrganizationList'; -export type { PaginatedPaymentPlanList } from './models/PaginatedPaymentPlanList'; -export type { PaginatedPeriodicDataUpdateTemplateListList } from './models/PaginatedPeriodicDataUpdateTemplateListList'; -export type { PaginatedPeriodicDataUpdateUploadListList } from './models/PaginatedPeriodicDataUpdateUploadListList'; -export type { PaginatedPeriodicFieldList } from './models/PaginatedPeriodicFieldList'; -export type { PaginatedProgramCycleListList } from './models/PaginatedProgramCycleListList'; -export type { PaginatedProgramGlobalList } from './models/PaginatedProgramGlobalList'; -export type { PaginatedProjectList } from './models/PaginatedProjectList'; -export type { PaginatedRegistrationDataImportListList } from './models/PaginatedRegistrationDataImportListList'; -export type { PaginatedRegistrationList } from './models/PaginatedRegistrationList'; -export type { PaginatedTargetPopulationListList } from './models/PaginatedTargetPopulationListList'; -export type { PatchedProgramCycleUpdate } from './models/PatchedProgramCycleUpdate'; -export type { PatchedRDI } from './models/PatchedRDI'; -export type { PaymentPlan } from './models/PaymentPlan'; -export type { PaymentPlanBulkAction } from './models/PaymentPlanBulkAction'; -export type { PaymentPlanSupportingDocument } from './models/PaymentPlanSupportingDocument'; -export type { PeriodicDataUpdateTemplateCreate } from './models/PeriodicDataUpdateTemplateCreate'; -export type { PeriodicDataUpdateTemplateDetail } from './models/PeriodicDataUpdateTemplateDetail'; -export type { PeriodicDataUpdateTemplateList } from './models/PeriodicDataUpdateTemplateList'; -export type { PeriodicDataUpdateUpload } from './models/PeriodicDataUpdateUpload'; -export type { PeriodicDataUpdateUploadDetail } from './models/PeriodicDataUpdateUploadDetail'; -export type { PeriodicDataUpdateUploadList } from './models/PeriodicDataUpdateUploadList'; -export type { PeriodicField } from './models/PeriodicField'; -export type { PeriodicFieldData } from './models/PeriodicFieldData'; -export { PhysicalDisabilityEnum } from './models/PhysicalDisabilityEnum'; -export { PreferredLanguageEnum } from './models/PreferredLanguageEnum'; -export type { Program } from './models/Program'; -export type { ProgramCycleCreate } from './models/ProgramCycleCreate'; -export type { ProgramCycleList } from './models/ProgramCycleList'; -export type { ProgramCycleUpdate } from './models/ProgramCycleUpdate'; -export type { ProgramGlobal } from './models/ProgramGlobal'; -export { ProgramGlobalStatusEnum } from './models/ProgramGlobalStatusEnum'; -export type { Project } from './models/Project'; -export type { PushPeople } from './models/PushPeople'; -export { PushPeopleTypeEnum } from './models/PushPeopleTypeEnum'; -export type { RDI } from './models/RDI'; -export { RdiMergeStatusEnum } from './models/RdiMergeStatusEnum'; -export type { RDINested } from './models/RDINested'; -export type { Registration } from './models/Registration'; -export type { RegistrationDataImportList } from './models/RegistrationDataImportList'; -export { RegistrationMethodEnum } from './models/RegistrationMethodEnum'; -export { RelationshipEnum } from './models/RelationshipEnum'; -export { ResidenceStatusEnum } from './models/ResidenceStatusEnum'; -export { ScopeEnum } from './models/ScopeEnum'; -export { SectorEnum } from './models/SectorEnum'; -export { SeeingDisabilityEnum } from './models/SeeingDisabilityEnum'; -export { SelfcareDisabilityEnum } from './models/SelfcareDisabilityEnum'; -export { SexEnum } from './models/SexEnum'; -export { SubtypeEnum } from './models/SubtypeEnum'; -export type { TargetPopulationList } from './models/TargetPopulationList'; -export { WorkStatusEnum } from './models/WorkStatusEnum'; - -export { FieldsAttributesService } from './services/FieldsAttributesService'; -export { HhStatusService } from './services/HhStatusService'; -export { RestService } from './services/RestService'; diff --git a/src/frontend/generated/models/ActionEnum.ts b/src/frontend/generated/models/ActionEnum.ts deleted file mode 100644 index 1c4daae373..0000000000 --- a/src/frontend/generated/models/ActionEnum.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `TP_LOCK` - Population Lock - * * `TP_UNLOCK` - Population Unlock - * * `TP_REBUILD` - Population Rebuild - * * `DRAFT` - Draft - * * `LOCK` - Lock - * * `LOCK_FSP` - Lock FSP - * * `UNLOCK` - Unlock - * * `UNLOCK_FSP` - Unlock FSP - * * `SEND_FOR_APPROVAL` - Send For Approval - * * `APPROVE` - Approve - * * `AUTHORIZE` - Authorize - * * `REVIEW` - Review - * * `REJECT` - Reject - * * `FINISH` - Finish - * * `SEND_TO_PAYMENT_GATEWAY` - Send to Payment Gateway - * * `SEND_XLSX_PASSWORD` - Send XLSX Password - */ -export enum ActionEnum { - TP_LOCK = 'TP_LOCK', - TP_UNLOCK = 'TP_UNLOCK', - TP_REBUILD = 'TP_REBUILD', - DRAFT = 'DRAFT', - LOCK = 'LOCK', - LOCK_FSP = 'LOCK_FSP', - UNLOCK = 'UNLOCK', - UNLOCK_FSP = 'UNLOCK_FSP', - SEND_FOR_APPROVAL = 'SEND_FOR_APPROVAL', - APPROVE = 'APPROVE', - AUTHORIZE = 'AUTHORIZE', - REVIEW = 'REVIEW', - REJECT = 'REJECT', - FINISH = 'FINISH', - SEND_TO_PAYMENT_GATEWAY = 'SEND_TO_PAYMENT_GATEWAY', - SEND_XLSX_PASSWORD = 'SEND_XLSX_PASSWORD', -} diff --git a/src/frontend/generated/models/Admin1Enum.ts b/src/frontend/generated/models/Admin1Enum.ts deleted file mode 100644 index 64f5a6e773..0000000000 --- a/src/frontend/generated/models/Admin1Enum.ts +++ /dev/null @@ -1,146 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `AF09` - Baghlan - * * `AF29` - Badghis - * * `AF18` - Balkh - * * `AF28` - Faryab - * * `AF21` - Ghor - * * `AF10` - Bamyan - * * `AF22` - Daykundi - * * `AF31` - Farah - * * `AF27` - Jawzjan - * * `AF01` - Kabul - * * `AF33` - Kandahar - * * `AF32` - Hilmand - * * `AF11` - Ghazni - * * `AF02` - Kapisa - * * `AF26` - Khost - * * `AF30` - Hirat - * * `AF15` - Badakhshan - * * `AF25` - Paktika - * * `AF06` - Nangarhar - * * `AF14` - Nuristan - * * `AF34` - Nimroz - * * `AF12` - Paktya - * * `AF13` - Kunar - * * `AF23` - Uruzgan - * * `AF20` - Sar-e-Pul - * * `AF16` - Takhar - * * `AG06` - Saint Philip - AG05 - * * `AF04` - Wardak - * * `AG08` - Redonda - AG08 - * * `AF24` - Zabul - * * `AF05` - Logar - * * `AG05` - Saint Peter - AG05 - * * `AF03` - Parwan - * * `AG03` - Saint Mary - AG03 - * * `AG04` - Saint Paul - AG04 - * * `AG01` - Saint George - AG01 - * * `AF19` - Samangan - * * `AG07` - Barbuda - AG07 - * * `AF17` - Kunduz - * * `AG02` - Saint John - AG02 - * * `AF08` - Panjsher - * * `AF07` - Laghman - * * `UA07` - Volynska - * * `UA68` - Khmelnytska - * * `UA21` - Zakarpatska - * * `UA46` - Lvivska - * * `UA12` - Dnipropetrovska - * * `UA80` - Kyivska - * * `UA53` - Poltavska - * * `UA73` - Chernivetska - * * `UA01` - Avtonomna Respublika Krym - * * `UA18` - Zhytomyrska - * * `UA48` - Mykolaivska - * * `UA71` - Cherkaska - * * `UA65` - Khersonska - * * `UA85` - Sevastopilska - * * `UA63` - Kharkivska - * * `UA32` - Kyivska - * * `UA05` - Vinnytska - * * `UA51` - Odeska - * * `UA23` - Zaporizka - * * `UA14` - Donetska - * * `UA56` - Rivnenska - * * `UA44` - Luhanska - * * `UA59` - Sumska - * * `UA61` - Ternopilska - * * `UA74` - Chernihivska - * * `UA35` - Kirovohradska - * * `UA26` - Ivano-Frankivska - */ -export enum Admin1Enum { - AF09 = 'AF09', - AF29 = 'AF29', - AF18 = 'AF18', - AF28 = 'AF28', - AF21 = 'AF21', - AF10 = 'AF10', - AF22 = 'AF22', - AF31 = 'AF31', - AF27 = 'AF27', - AF01 = 'AF01', - AF33 = 'AF33', - AF32 = 'AF32', - AF11 = 'AF11', - AF02 = 'AF02', - AF26 = 'AF26', - AF30 = 'AF30', - AF15 = 'AF15', - AF25 = 'AF25', - AF06 = 'AF06', - AF14 = 'AF14', - AF34 = 'AF34', - AF12 = 'AF12', - AF13 = 'AF13', - AF23 = 'AF23', - AF20 = 'AF20', - AF16 = 'AF16', - AG06 = 'AG06', - AF04 = 'AF04', - AG08 = 'AG08', - AF24 = 'AF24', - AF05 = 'AF05', - AG05 = 'AG05', - AF03 = 'AF03', - AG03 = 'AG03', - AG04 = 'AG04', - AG01 = 'AG01', - AF19 = 'AF19', - AG07 = 'AG07', - AF17 = 'AF17', - AG02 = 'AG02', - AF08 = 'AF08', - AF07 = 'AF07', - UA07 = 'UA07', - UA68 = 'UA68', - UA21 = 'UA21', - UA46 = 'UA46', - UA12 = 'UA12', - UA80 = 'UA80', - UA53 = 'UA53', - UA73 = 'UA73', - UA01 = 'UA01', - UA18 = 'UA18', - UA48 = 'UA48', - UA71 = 'UA71', - UA65 = 'UA65', - UA85 = 'UA85', - UA63 = 'UA63', - UA32 = 'UA32', - UA05 = 'UA05', - UA51 = 'UA51', - UA23 = 'UA23', - UA14 = 'UA14', - UA56 = 'UA56', - UA44 = 'UA44', - UA59 = 'UA59', - UA61 = 'UA61', - UA74 = 'UA74', - UA35 = 'UA35', - UA26 = 'UA26', -} diff --git a/src/frontend/generated/models/Admin2Enum.ts b/src/frontend/generated/models/Admin2Enum.ts deleted file mode 100644 index 3633db419c..0000000000 --- a/src/frontend/generated/models/Admin2Enum.ts +++ /dev/null @@ -1,1260 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `AF0904` - Doshi - * * `AF0903` - Dahana-e-Ghori - * * `AF0906` - Tala Wa barfak - * * `AF0912` - Dehsalah - * * `AF0908` - Andarab - * * `AF0902` - Baghlan-e-Jadid - * * `AF0910` - Burka - * * `AF0915` - Fereng Wa Gharu - * * `AF0914` - Guzargah-e-Nur - * * `AF0907` - Khenjan - * * `AF0913` - Khost Wa Fereng - * * `AF0909` - Khwajahejran - * * `AF0905` - Nahrin - * * `AF0911` - Pul-e-Hesar - * * `AF0901` - Pul-e-Khumri - * * `AF2905` - Jawand - * * `AF2904` - Qadis - * * `AF2903` - Abkamari - * * `AF2906` - Balamurghab - * * `AF2907` - Ghormach - * * `AF2901` - Qala-e-Naw - * * `AF2902` - Muqur - * * `AF1811` - Sharak-e-Hayratan - * * `AF1805` - Balkh - * * `AF1807` - Charkent - * * `AF1813` - Chemtal - * * `AF1815` - Keshendeh - * * `AF1809` - Khulm - * * `AF1814` - Sholgareh - * * `AF1803` - Shortepa - * * `AF1801` - Mazar-e-Sharif - * * `AF1812` - Charbulak - * * `AF1816` - Zari - * * `AF1806` - Dehdadi - * * `AF1810` - Kaldar - * * `AF1808` - Marmul - * * `AF1802` - Nahr-e-Shahi - * * `AF1804` - Dawlatabad - * * `AF2814` - Qorghan - * * `AF2812` - Qaramqol - * * `AF2809` - Bilcheragh - * * `AF2803` - Pashtunkot - * * `AF2808` - Garziwan - * * `AF2806` - Qaysar - * * `AF2804` - Shirintagab - * * `AF2802` - Khwajasabzposh - * * `AF2801` - Maymana - * * `AF2811` - Andkhoy - * * `AF2805` - Almar - * * `AF2813` - Khan-e-Char Bagh - * * `AF2807` - Kohestan - * * `AF2810` - Dawlatabad - * * `AF2101` - Chaghcharan - * * `AF2102` - Charsadra - * * `AF2104` - Dawlatyar - * * `AF2103` - DoLayna - * * `AF2108` - Lal Wa Sarjangal - * * `AF2107` - Pasaband - * * `AF2110` - Saghar - * * `AF2105` - Shahrak - * * `AF2106` - Taywarah - * * `AF2109` - Tolak - * * `AF1001` - Bamyan - * * `AF1006` - Kahmard - * * `AF1002` - Sayghan - * * `AF1005` - Shibar - * * `AF1007` - Waras - * * `AF1004` - Panjab - * * `AF1003` - Yakawlang - * * `AF2202` - Ashtarlay - * * `AF2205` - Gizab / Patoo - * * `AF2203` - Khadir - * * `AF2208` - Kajran - * * `AF2204` - Kiti - * * `AF2209` - Miramor - * * `AF2207` - Sang-e-Takht - * * `AF2201` - Nili - * * `AF2206` - Shahrestan - * * `AF3109` - Gulestan - * * `AF3104` - Khak-e-Safed - * * `AF3108` - Lash-e-Juwayn - * * `AF3110` - Purchaman - * * `AF3105` - Pushtrod - * * `AF3107` - Shibkoh - * * `AF3102` - Bakwa - * * `AF3101` - Farah - * * `AF3106` - Qala-e-Kah - * * `AF3111` - Anardara - * * `AF3103` - Balabuluk - * * `AF2704` - Qushtepa - * * `AF2708` - Mardyan - * * `AF2710` - Khamyab - * * `AF2707` - Aqcha - * * `AF2711` - Darzab - * * `AF2706` - Khanaqa - * * `AF2703` - Khwajadukoh - * * `AF2709` - Qarqin - * * `AF2701` - Shiberghan - * * `AF2702` - Mingajik - * * `AF2705` - Fayzabad - * * `AF0109` - Kalakan - * * `AF0115` - Farza - * * `AF0114` - Estalef - * * `AF0101` - Kabul - * * `AF0112` - Khak-e-Jabbar - * * `AF0113` - Surobi - * * `AF0105` - Chaharasyab - * * `AF0102` - Dehsabz - * * `AF0107` - Bagrami - * * `AF0111` - Guldara - * * `AF0110` - Mirbachakot - * * `AF0106` - Musayi - * * `AF0104` - Paghman - * * `AF0103` - Shakardara - * * `AF0108` - Qarabagh - * * `AF3310` - Shorabak - * * `AF3307` - Khakrez - * * `AF3316` - Maruf - * * `AF3308` - Maywand - * * `AF3314` - Nesh - * * `AF3304` - Panjwayi - * * `AF3301` - Kandahar / Dand - * * `AF3311` - Spinboldak - * * `AF3303` - Zheray - * * `AF3312` - Arghestan - * * `AF3305` - Daman - * * `AF3315` - Ghorak - * * `AF3313` - Miyanshin - * * `AF3306` - Shahwalikot - * * `AF3309` - Reg - * * `AF3302` - Arghandab - * * `AF3211` - Baghran - * * `AF3210` - Kajaki - * * `AF3213` - Deh-e-Shu - * * `AF3209` - Garmser - * * `AF3201` - Lashkargah - * * `AF3206` - Musaqalah - * * `AF3203` - Nad-e-Ali / Marja - * * `AF3202` - Nahr-e-Saraj - * * `AF3207` - Nawzad - * * `AF3205` - Sangin - * * `AF3204` - Nawa-e-Barakzaiy - * * `AF3208` - Washer - * * `AF3212` - Reg - * * `AF1119` - Nawa - * * `AF1112` - Nawur - * * `AF1117` - Malestan - * * `AF1115` - Abband - * * `AF1116` - Ajrestan - * * `AF1105` - Andar - * * `AF1106` - Dehyak - * * `AF1111` - Giro - * * `AF1108` - Rashidan - * * `AF1104` - Waghaz - * * `AF1103` - Walimuhammad-e-Shahid - * * `AF1107` - Zanakhan - * * `AF1118` - Gelan - * * `AF1113` - Jaghuri - * * `AF1102` - Khwajaumari - * * `AF1101` - Ghazni - * * `AF1114` - Muqur - * * `AF1109` - Jaghatu - * * `AF1110` - Qarabagh - * * `AF0204` - Hisa-e-Duwum-e-Kohestan - * * `AF0202` - Nejrab - * * `AF0206` - Alasay - * * `AF0207` - Hisa-e-Awal-e-Kohestan - * * `AF0203` - Kohband - * * `AF0201` - Mahmud-e-Raqi - * * `AF0205` - Tagab - * * `AF2609` - Qalandar - * * `AF2611` - Spera - * * `AF2605` - Mandozayi - * * `AF2612` - Bak - * * `AF2607` - Gurbuz - * * `AF2613` - Jajimaydan - * * `AF2601` - Khost (Matun) - * * `AF2603` - Musakhel - * * `AF2604` - Nadirshahkot - * * `AF2602` - Sabari - * * `AF2610` - Shamal - * * `AF2606` - Tani - * * `AF2608` - Terezayi - * * `AF3011` - Farsi - * * `AF3009` - Ghoryan - * * `AF3008` - Gulran - * * `AF3002` - Injil - * * `AF3003` - Kushk - * * `AF3015` - Shindand - * * `AF3010` - Adraskan - * * `AF3016` - Chisht-e-Sharif - * * `AF3005` - Guzara - * * `AF3007` - Karukh - * * `AF3014` - Kohsan - * * `AF3013` - Kushk-e-Kohna - * * `AF3012` - Obe - * * `AF3006` - Pashtunzarghun - * * `AF3004` - Zindajan - * * `AF3001` - Hirat - * * `AF1521` - Jorm - * * `AF1518` - Keshem - * * `AF1517` - Khwahan - * * `AF1516` - Kofab - * * `AF1511` - Khash - * * `AF1526` - Koran Wa Monjan - * * `AF1506` - Raghestan - * * `AF1515` - Darwaz-e-Balla - * * `AF1504` - Arghanjkhwa - * * `AF1508` - Shahr-e-Buzorg - * * `AF1503` - Argo - * * `AF1510` - Darayem - * * `AF1525` - Shaki - * * `AF1502` - Yaftal-e-Sufla - * * `AF1507` - Yawan - * * `AF1523` - Eshkashem - * * `AF1514` - Shighnan - * * `AF1513` - Shuhada - * * `AF1524` - Darwaz - * * `AF1509` - Teshkan - * * `AF1528` - Wakhan - * * `AF1522` - Warduj - * * `AF1520` - Yamgan - * * `AF1527` - Zebak - * * `AF1505` - Kohestan - * * `AF1519` - Tagab - * * `AF1512` - Baharak - * * `AF1501` - Fayzabad - * * `AF2503` - Yosufkhel - * * `AF2515` - Bermel - * * `AF2518` - Dila - * * `AF2508` - Gomal - * * `AF2516` - Gyan - * * `AF2502` - Matakhan - * * `AF2511` - Naka - * * `AF2507` - Omna - * * `AF2509` - Sarobi - * * `AF2504` - Sarrawzah - * * `AF2519` - Turwo - * * `AF2510` - Urgun - * * `AF2513` - Wazakhah - * * `AF2514` - Wormamay - * * `AF2506` - Yahyakhel - * * `AF2517` - Ziruk - * * `AF2501` - Sharan - * * `AF2505` - Zarghunshahr - * * `AF2512` - Janikhel - * * `AF0604` - Khogyani - * * `AF0616` - Goshta - * * `AF0610` - Hesarak - * * `AF0614` - Kot - * * `AF0601` - Jalalabad - * * `AF0617` - Achin - * * `AF0615` - Batikot - * * `AF0602` - Behsud - * * `AF0609` - Dara-e-Nur - * * `AF0613` - Dehbala - * * `AF0622` - Durbaba - * * `AF0607` - Kama - * * `AF0608` - Kuzkunar - * * `AF0620` - Lalpur - * * `AF0619` - Muhmand Dara - * * `AF0621` - Nazyan - * * `AF0612` - Pachieragam - * * `AF0606` - Rodat - * * `AF0611` - Sherzad - * * `AF0618` - Shinwar - * * `AF0603` - Surkhrod - * * `AF0605` - Chaparhar - * * `AF1408` - Barg-e-Matal - * * `AF1403` - Duab - * * `AF1407` - Kamdesh - * * `AF1402` - Mandol - * * `AF1404` - Nurgeram - * * `AF1401` - Poruns - * * `AF1405` - Wama - * * `AF1406` - Waygal - * * `AF3403` - Charburjak - * * `AF3402` - Kang - * * `AF3405` - Khashrod / Dularam - * * `AF3404` - Chakhansur - * * `AF3401` - Zaranj - * * `AF1203` - Ahmadaba - * * `AF1208` - Alikhel (Jaji) - * * `AF1210` - Chamkani - * * `AF1211` - Dand Wa Patan - * * `AF1201` - Gardez - * * `AF1205` - Shawak - * * `AF1207` - Lija Ahmad Khel / Laja Mangel - * * `AF1202` - Sayedkaram / Mirzaka - * * `AF1206` - Zadran - * * `AF1204` - Zurmat - * * `AF1209` - Janikhel - * * `AF1306` - Shigal Wa Sheltan - * * `AF1304` - Sarkani - * * `AF1315` - Nari - * * `AF1303` - Narang - * * `AF1301` - Asadabad - * * `AF1311` - Barkunar - * * `AF1313` - Chapadara - * * `AF1307` - Dara-e-Pech - * * `AF1305` - Marawara - * * `AF1314` - Nurgal - * * `AF1302` - Watapur - * * `AF1310` - Dangam - * * `AF1308` - Chawkay - * * `AF1312` - Ghaziabad - * * `AF1309` - Khaskunar - * * `AF2302` - Chora / Chinarto - * * `AF2304` - Dehrawud - * * `AF2305` - Khasuruzgan - * * `AF2303` - Shahid-e-Hassas - * * `AF2301` - Tirinkot - * * `AF2006` - Balkhab - * * `AF2003` - Kohestanat - * * `AF2005` - Gosfandi - * * `AF2007` - Sancharak - * * `AF2001` - Sar-e-Pul - * * `AF2002` - Sayad - * * `AF2004` - Sozmaqala - * * `AF1604` - Bangi - * * `AF1610` - Chahab - * * `AF1605` - Chal - * * `AF1617` - Darqad - * * `AF1613` - Dasht-e-Qala - * * `AF1615` - Eshkmesh - * * `AF1607` - Farkhar - * * `AF1602` - Hazarsumuch - * * `AF1608` - Kalafgan - * * `AF1612` - Khwajabahawuddin - * * `AF1606` - Namakab - * * `AF1609` - Rostaq - * * `AF1601` - Taloqan - * * `AF1616` - Warsaj - * * `AF1614` - Khwajaghar - * * `AF1611` - Yang-e-Qala - * * `AF1603` - Baharak - * * `AG0601` - Collins - AG0601 - * * `AG0602` - Ffryes - AG0602 - * * `AG0603` - Freetown - AG0603 - * * `AG0604` - Glanvilles - AG0604 - * * `AG0605` - Lavingtons - AG0605 - * * `AG0606` - Lyons - AG0606 - * * `AG0607` - Montpelier - AG0607 - * * `AG0608` - Newfield - AG0608 - * * `AG0612` - Saint Philips - AG0612 - * * `AG0609` - Seatons - AG0609 - * * `AG0610` - Sign - AG0610 - * * `AG0611` - Simpson - AG0611 - * * `AG0613` - Willikies - AG0613 - * * `AG0614` - Willoughby - AG0614 - * * `AF0403` - Nerkh - * * `AF0404` - Hesa-e-Awal-e-Behsud - * * `AF0406` - Chak - * * `AF0402` - Jalrez - * * `AF0408` - Markaz-e-Behsud - * * `AF0401` - Maydanshahr - * * `AF0407` - Saydabad - * * `AF0405` - Daymirdad - * * `AF0409` - Jaghatu - * * `AG0801` - Redonda - AG0801 - * * `AF2409` - Atghar - * * `AF2408` - Daychopan - * * `AF2407` - Kakar - * * `AF2403` - Mizan - * * `AF2411` - Nawbahar - * * `AF2401` - Qalat - * * `AF2406` - Shahjoy - * * `AF2405` - Shinkay - * * `AF2410` - Shomulzay - * * `AF2404` - Tarnak Wa Jaldak - * * `AF2402` - Arghandab - * * `AF0503` - Mohammadagha - * * `AF0501` - Pul-e-Alam - * * `AF0507` - Azra - * * `AF0504` - Barakibarak - * * `AF0506` - Kharwar - * * `AF0502` - Khoshi - * * `AF0505` - Charkh - * * `AG0501` - Big Duers - AG0501 - * * `AG0502` - Cocoa Hall - AG0502 - * * `AG0503` - Freemans - AG0503 - * * `AG0504` - Gilberts - AG0504 - * * `AG0505` - Mercers Creek - AG0505 - * * `AG0506` - Parham - AG0506 - * * `AG0507` - Parrys - AG0507 - * * `AG0508` - Vernons - AG0508 - * * `AF0309` - Shekhali - * * `AF0304` - Bagram - * * `AF0301` - Charikar - * * `AF0307` - Ghorband - * * `AF0302` - Jabalussaraj - * * `AF0308` - Koh-e-Safi - * * `AF0306` - Salang - * * `AF0305` - Saydkhel - * * `AF0303` - Shinwari - * * `AF0310` - Surkh-e-Parsa - * * `AG0301` - Bishops - AG0301 - * * `AG0302` - Blubber Valley - AG0302 - * * `AG0303` - Bolans - AG0303 - * * `AG0304` - Cades Bay - AG0304 - * * `AG0305` - Cedar Hall - AG0305 - * * `AG0306` - Claremont - AG0306 - * * `AG0307` - Crabs Hill - AG0307 - * * `AG0308` - Ebenezer - AG0308 - * * `AG0309` - Glebe - AG0309 - * * `AG0310` - Jennings - AG0310 - * * `AG0311` - John Hughes - AG0311 - * * `AG0312` - Johnsons Point - AG0312 - * * `AG0313` - New Division - AG0313 - * * `AG0314` - Old Road - AG0314 - * * `AG0315` - Orange Valley Mill - AG0315 - * * `AG0316` - Sawcolts - AG0316 - * * `AG0317` - Seaforths - AG0317 - * * `AG0318` - Urlings - AG0318 - * * `AG0319` - Yorks - AG0319 - * * `AG0401` - Bethesda - AG0401 - * * `AG0402` - Burkes - AG0402 - * * `AG0403` - Christian Hill - AG0403 - * * `AG0404` - Delaps - AG0404 - * * `AG0405` - English Harbour - AG0405 - * * `AG0406` - Falmouth - AG0406 - * * `AG0407` - Liberta - AG0407 - * * `AG0408` - Mathews - AG0408 - * * `AG0409` - Pattersons - AG0409 - * * `AG0410` - Swetes - AG0410 - * * `AG0101` - Barnes Hill - AG0101 - * * `AG0102` - Carlisle - AG0102 - * * `AG0103` - Coolidge - AG0103 - * * `AG0104` - Crosbies - AG0104 - * * `AG0105` - Fitches Creek - AG0105 - * * `AG0106` - Gunthorpes - AG0106 - * * `AG0107` - Hodges Bay - AG0107 - * * `AG0108` - Marble Hill - AG0108 - * * `AG0109` - New Winthorpes - AG0109 - * * `AG0110` - Osbourn - AG0110 - * * `AG0111` - Paradise View - AG0111 - * * `AG0112` - Paynters - AG0112 - * * `AG0113` - Piggotts - AG0113 - * * `AG0114` - Sea View Farm - AG0114 - * * `AF1901` - Aybak - * * `AF1904` - Dara-e-Suf-e-Payin - * * `AF1905` - Dara-e Suf-e-Bala - * * `AF1903` - Feroznakhchir - * * `AF1902` - Hazrat-e-Sultan - * * `AF1906` - Khuram Wa Sarbagh - * * `AF1907` - Ruy-e-Duab - * * `AG0701` - Codrington - AG0701 - * * `AF1701` - Kunduz - * * `AF1702` - Emamsaheb - * * `AF1704` - Chardarah - * * `AF1706` - Khanabad - * * `AF1705` - Aliabad - * * `AF1707` - Dasht-e-Archi - * * `AF1703` - Qala-e-Zal - * * `AG0201` - Aberdeen - AG0201 - * * `AG0202` - Bendals - AG0202 - * * `AG0203` - Branns Hamlet - AG0203 - * * `AG0204` - Buckleys - AG0204 - * * `AG0205` - Cedar Grove - AG0205 - * * `AG0206` - Cooks Hill - AG0206 - * * `AG0207` - Cooks New Extension - AG0207 - * * `AG0208` - Emanuel - AG0208 - * * `AG0209` - Five Islands - AG0209 - * * `AG0210` - Gamble's Terrace - AG0210 - * * `AG0211` - Golden Grove - AG0211 - * * `AG0212` - Gray Hill - AG0212 - * * `AG0213` - Grays Farm - AG0213 - * * `AG0214` - Green Bay - AG0214 - * * `AG0215` - Nut Grove - AG0215 - * * `AG0216` - Renfrew - AG0216 - * * `AG0217` - Saint John's - AG0217 - * * `AG0218` - Tomlinson - AG0218 - * * `AG0219` - Upper Gamble's - AG0219 - * * `AG0220` - Villa - AG0220 - * * `AG0221` - Weatherhills - AG0221 - * * `AF0801` - Bazarak - * * `AF0804` - Dara / Ab Shar - * * `AF0805` - Khenj (Hes-e-Awal) - * * `AF0806` - Onaba (Anawa) - * * `AF0807` - Paryan - * * `AF0803` - Rukha - * * `AF0802` - Shutul - * * `AF0704` - Alingar - * * `AF0702` - Alishang - * * `AF0705` - Dawlatshah - * * `AF0701` - Mehtarlam / Bad Pash - * * `AF0703` - Qarghayi - * * `UA0708` - Lutskyi - * * `UA0702` - Volodymyr-Volynskyi - * * `UA0706` - Kovelskyi - * * `UA0704` - Kamin-Kashyrskyi - * * `UA6804` - Khmelnytskyi - * * `UA6806` - Shepetivskyi - * * `UA6802` - Kamianets-Podilskyi - * * `UA2102` - Berehivskyi - * * `UA2108` - Tiachivskyi - * * `UA2112` - Khustskyi - * * `UA2110` - Uzhhorodskyi - * * `UA2106` - Rakhivskyi - * * `UA2104` - Mukachivskyi - * * `UA4604` - Zolochivskyi - * * `UA4606` - Lvivskyi - * * `UA4614` - Yavorivskyi - * * `UA4612` - Chervonohradskyi - * * `UA4610` - Stryiskyi - * * `UA4602` - Drohobytskyi - * * `UA4608` - Sambirskyi - * * `UA1206` - Kryvorizkyi - * * `UA1202` - Dniprovskyi - * * `UA1204` - Kamianskyi - * * `UA1212` - Pavlohradskyi - * * `UA1210` - Novomoskovskyi - * * `UA1208` - Nikopolskyi - * * `UA1214` - Synelnykivskyi - * * `UA8000` - Kyivska - * * `UA5304` - Lubenskyi - * * `UA5302` - Kremenchutskyi - * * `UA5308` - Poltavskyi - * * `UA5306` - Myrhorodskyi - * * `UA7306` - Cnernivetskyi - * * `UA7304` - Dnistrovskyi - * * `UA7302` - Vyzhnytskyi - * * `UA0112` - Kurmanskyi - * * `UA0108` - Yevpatoriiskyi - * * `UA0104` - Bilohirskyi - * * `UA0106` - Dzhankoiskyi - * * `UA0102` - Bakhchysaraiskyi - * * `UA0116` - Simferopolskyi - * * `UA0114` - Perekopskyi - * * `UA0118` - Feodosiiskyi - * * `UA0110` - Kerchynskyi - * * `UA0120` - Yaltynskyi - * * `UA1804` - Zhytomyrskyi - * * `UA1808` - Novohrad-Volynskyi - * * `UA1802` - Berdychivskyi - * * `UA1806` - Korostenskyi - * * `UA4804` - Voznesenskyi - * * `UA4808` - Pervomaiskyi - * * `UA4802` - Bashtanskyi - * * `UA4806` - Mykolaivskyi - * * `UA7102` - Zvenyhorodskyi - * * `UA7108` - Cherkaskyi - * * `UA7104` - Zolotoniskyi - * * `UA7106` - Umanskyi - * * `UA6504` - Henicheskyi - * * `UA6508` - Skadovskyi - * * `UA6502` - Beryslavskyi - * * `UA6510` - Khersonskyi - * * `UA6506` - Kakhovskyi - * * `UA8500` - Sevastopilska - * * `UA6306` - Krasnohradskyi - * * `UA6314` - Chuhuivskyi - * * `UA6310` - Lozivskyi - * * `UA6302` - Bohodukhivskyi - * * `UA6304` - Iziumskyi - * * `UA6308` - Kupianskyi - * * `UA6312` - Kharkivskyi - * * `UA3208` - Buchanskyi - * * `UA3202` - Bilotserkivskyi - * * `UA3210` - Vyshhorodskyi - * * `UA3200` - Chornobylska zona vidchuzhennia - * * `UA3214` - Fastivskyi - * * `UA3212` - Obukhivskyi - * * `UA3204` - Boryspilskyi - * * `UA3206` - Brovarskyi - * * `UA0510` - Tulchynskyi - * * `UA0504` - Haisynskyi - * * `UA0506` - Zhmerynskyi - * * `UA0508` - Mohyliv-Podilskyi - * * `UA0502` - Vinnytskyi - * * `UA0512` - Khmilnytskyi - * * `UA5106` - Bolhradskyi - * * `UA5108` - Izmailskyi - * * `UA5110` - Odeskyi - * * `UA5114` - Rozdilnianskyi - * * `UA5102` - Berezivskyi - * * `UA5112` - Podilskyi - * * `UA5104` - Bilhorod-Dnistrovskyi - * * `UA2302` - Berdianskyi - * * `UA2308` - Melitopolskyi - * * `UA2306` - Zaporizkyi - * * `UA2304` - Vasylivskyi - * * `UA2310` - Polohivskyi - * * `UA1410` - Kalmiuskyi - * * `UA1412` - Kramatorskyi - * * `UA1408` - Donetskyi - * * `UA1404` - Volnovaskyi - * * `UA1414` - Mariupolskyi - * * `UA1402` - Bakhmutskyi - * * `UA1406` - Horlivskyi - * * `UA1416` - Pokrovskyi - * * `UA5604` - Dubenskyi - * * `UA5606` - Rivnenskyi - * * `UA5608` - Sarnenskyi - * * `UA5602` - Varaskyi - * * `UA4402` - Alchevskyi - * * `UA4410` - Svativskyi - * * `UA4412` - Sievierodonetskyi - * * `UA4408` - Rovenkivskyi - * * `UA4404` - Dovzhanskyi - * * `UA4414` - Starobilskyi - * * `UA4406` - Luhanskyi - * * `UA4416` - Shchastynskyi - * * `UA5902` - Konotopskyi - * * `UA5904` - Okhtyrskyi - * * `UA5910` - Shostkynskyi - * * `UA5908` - Sumskyi - * * `UA5906` - Romenskyi - * * `UA6102` - Kremenetskyi - * * `UA6104` - Ternopilskyi - * * `UA6106` - Chortkivskyi - * * `UA7402` - Koriukivskyi - * * `UA7410` - Chernihivskyi - * * `UA7408` - Prylutskyi - * * `UA7406` - Novhorod-Siverskyi - * * `UA7404` - Nizhynskyi - * * `UA3502` - Holovanivskyi - * * `UA3506` - Novoukrainskyi - * * `UA3508` - Oleksandriiskyi - * * `UA3504` - Kropyvnytskyi - * * `UA2610` - Kosivskyi - * * `UA2608` - Kolomyiskyi - * * `UA2612` - Nadvirnianskyi - * * `UA2604` - Ivano-Frankivskyi - * * `UA2602` - Verkhovynskyi - * * `UA2606` - Kaluskyi - */ -export enum Admin2Enum { - AF0904 = 'AF0904', - AF0903 = 'AF0903', - AF0906 = 'AF0906', - AF0912 = 'AF0912', - AF0908 = 'AF0908', - AF0902 = 'AF0902', - AF0910 = 'AF0910', - AF0915 = 'AF0915', - AF0914 = 'AF0914', - AF0907 = 'AF0907', - AF0913 = 'AF0913', - AF0909 = 'AF0909', - AF0905 = 'AF0905', - AF0911 = 'AF0911', - AF0901 = 'AF0901', - AF2905 = 'AF2905', - AF2904 = 'AF2904', - AF2903 = 'AF2903', - AF2906 = 'AF2906', - AF2907 = 'AF2907', - AF2901 = 'AF2901', - AF2902 = 'AF2902', - AF1811 = 'AF1811', - AF1805 = 'AF1805', - AF1807 = 'AF1807', - AF1813 = 'AF1813', - AF1815 = 'AF1815', - AF1809 = 'AF1809', - AF1814 = 'AF1814', - AF1803 = 'AF1803', - AF1801 = 'AF1801', - AF1812 = 'AF1812', - AF1816 = 'AF1816', - AF1806 = 'AF1806', - AF1810 = 'AF1810', - AF1808 = 'AF1808', - AF1802 = 'AF1802', - AF1804 = 'AF1804', - AF2814 = 'AF2814', - AF2812 = 'AF2812', - AF2809 = 'AF2809', - AF2803 = 'AF2803', - AF2808 = 'AF2808', - AF2806 = 'AF2806', - AF2804 = 'AF2804', - AF2802 = 'AF2802', - AF2801 = 'AF2801', - AF2811 = 'AF2811', - AF2805 = 'AF2805', - AF2813 = 'AF2813', - AF2807 = 'AF2807', - AF2810 = 'AF2810', - AF2101 = 'AF2101', - AF2102 = 'AF2102', - AF2104 = 'AF2104', - AF2103 = 'AF2103', - AF2108 = 'AF2108', - AF2107 = 'AF2107', - AF2110 = 'AF2110', - AF2105 = 'AF2105', - AF2106 = 'AF2106', - AF2109 = 'AF2109', - AF1001 = 'AF1001', - AF1006 = 'AF1006', - AF1002 = 'AF1002', - AF1005 = 'AF1005', - AF1007 = 'AF1007', - AF1004 = 'AF1004', - AF1003 = 'AF1003', - AF2202 = 'AF2202', - AF2205 = 'AF2205', - AF2203 = 'AF2203', - AF2208 = 'AF2208', - AF2204 = 'AF2204', - AF2209 = 'AF2209', - AF2207 = 'AF2207', - AF2201 = 'AF2201', - AF2206 = 'AF2206', - AF3109 = 'AF3109', - AF3104 = 'AF3104', - AF3108 = 'AF3108', - AF3110 = 'AF3110', - AF3105 = 'AF3105', - AF3107 = 'AF3107', - AF3102 = 'AF3102', - AF3101 = 'AF3101', - AF3106 = 'AF3106', - AF3111 = 'AF3111', - AF3103 = 'AF3103', - AF2704 = 'AF2704', - AF2708 = 'AF2708', - AF2710 = 'AF2710', - AF2707 = 'AF2707', - AF2711 = 'AF2711', - AF2706 = 'AF2706', - AF2703 = 'AF2703', - AF2709 = 'AF2709', - AF2701 = 'AF2701', - AF2702 = 'AF2702', - AF2705 = 'AF2705', - AF0109 = 'AF0109', - AF0115 = 'AF0115', - AF0114 = 'AF0114', - AF0101 = 'AF0101', - AF0112 = 'AF0112', - AF0113 = 'AF0113', - AF0105 = 'AF0105', - AF0102 = 'AF0102', - AF0107 = 'AF0107', - AF0111 = 'AF0111', - AF0110 = 'AF0110', - AF0106 = 'AF0106', - AF0104 = 'AF0104', - AF0103 = 'AF0103', - AF0108 = 'AF0108', - AF3310 = 'AF3310', - AF3307 = 'AF3307', - AF3316 = 'AF3316', - AF3308 = 'AF3308', - AF3314 = 'AF3314', - AF3304 = 'AF3304', - AF3301 = 'AF3301', - AF3311 = 'AF3311', - AF3303 = 'AF3303', - AF3312 = 'AF3312', - AF3305 = 'AF3305', - AF3315 = 'AF3315', - AF3313 = 'AF3313', - AF3306 = 'AF3306', - AF3309 = 'AF3309', - AF3302 = 'AF3302', - AF3211 = 'AF3211', - AF3210 = 'AF3210', - AF3213 = 'AF3213', - AF3209 = 'AF3209', - AF3201 = 'AF3201', - AF3206 = 'AF3206', - AF3203 = 'AF3203', - AF3202 = 'AF3202', - AF3207 = 'AF3207', - AF3205 = 'AF3205', - AF3204 = 'AF3204', - AF3208 = 'AF3208', - AF3212 = 'AF3212', - AF1119 = 'AF1119', - AF1112 = 'AF1112', - AF1117 = 'AF1117', - AF1115 = 'AF1115', - AF1116 = 'AF1116', - AF1105 = 'AF1105', - AF1106 = 'AF1106', - AF1111 = 'AF1111', - AF1108 = 'AF1108', - AF1104 = 'AF1104', - AF1103 = 'AF1103', - AF1107 = 'AF1107', - AF1118 = 'AF1118', - AF1113 = 'AF1113', - AF1102 = 'AF1102', - AF1101 = 'AF1101', - AF1114 = 'AF1114', - AF1109 = 'AF1109', - AF1110 = 'AF1110', - AF0204 = 'AF0204', - AF0202 = 'AF0202', - AF0206 = 'AF0206', - AF0207 = 'AF0207', - AF0203 = 'AF0203', - AF0201 = 'AF0201', - AF0205 = 'AF0205', - AF2609 = 'AF2609', - AF2611 = 'AF2611', - AF2605 = 'AF2605', - AF2612 = 'AF2612', - AF2607 = 'AF2607', - AF2613 = 'AF2613', - AF2601 = 'AF2601', - AF2603 = 'AF2603', - AF2604 = 'AF2604', - AF2602 = 'AF2602', - AF2610 = 'AF2610', - AF2606 = 'AF2606', - AF2608 = 'AF2608', - AF3011 = 'AF3011', - AF3009 = 'AF3009', - AF3008 = 'AF3008', - AF3002 = 'AF3002', - AF3003 = 'AF3003', - AF3015 = 'AF3015', - AF3010 = 'AF3010', - AF3016 = 'AF3016', - AF3005 = 'AF3005', - AF3007 = 'AF3007', - AF3014 = 'AF3014', - AF3013 = 'AF3013', - AF3012 = 'AF3012', - AF3006 = 'AF3006', - AF3004 = 'AF3004', - AF3001 = 'AF3001', - AF1521 = 'AF1521', - AF1518 = 'AF1518', - AF1517 = 'AF1517', - AF1516 = 'AF1516', - AF1511 = 'AF1511', - AF1526 = 'AF1526', - AF1506 = 'AF1506', - AF1515 = 'AF1515', - AF1504 = 'AF1504', - AF1508 = 'AF1508', - AF1503 = 'AF1503', - AF1510 = 'AF1510', - AF1525 = 'AF1525', - AF1502 = 'AF1502', - AF1507 = 'AF1507', - AF1523 = 'AF1523', - AF1514 = 'AF1514', - AF1513 = 'AF1513', - AF1524 = 'AF1524', - AF1509 = 'AF1509', - AF1528 = 'AF1528', - AF1522 = 'AF1522', - AF1520 = 'AF1520', - AF1527 = 'AF1527', - AF1505 = 'AF1505', - AF1519 = 'AF1519', - AF1512 = 'AF1512', - AF1501 = 'AF1501', - AF2503 = 'AF2503', - AF2515 = 'AF2515', - AF2518 = 'AF2518', - AF2508 = 'AF2508', - AF2516 = 'AF2516', - AF2502 = 'AF2502', - AF2511 = 'AF2511', - AF2507 = 'AF2507', - AF2509 = 'AF2509', - AF2504 = 'AF2504', - AF2519 = 'AF2519', - AF2510 = 'AF2510', - AF2513 = 'AF2513', - AF2514 = 'AF2514', - AF2506 = 'AF2506', - AF2517 = 'AF2517', - AF2501 = 'AF2501', - AF2505 = 'AF2505', - AF2512 = 'AF2512', - AF0604 = 'AF0604', - AF0616 = 'AF0616', - AF0610 = 'AF0610', - AF0614 = 'AF0614', - AF0601 = 'AF0601', - AF0617 = 'AF0617', - AF0615 = 'AF0615', - AF0602 = 'AF0602', - AF0609 = 'AF0609', - AF0613 = 'AF0613', - AF0622 = 'AF0622', - AF0607 = 'AF0607', - AF0608 = 'AF0608', - AF0620 = 'AF0620', - AF0619 = 'AF0619', - AF0621 = 'AF0621', - AF0612 = 'AF0612', - AF0606 = 'AF0606', - AF0611 = 'AF0611', - AF0618 = 'AF0618', - AF0603 = 'AF0603', - AF0605 = 'AF0605', - AF1408 = 'AF1408', - AF1403 = 'AF1403', - AF1407 = 'AF1407', - AF1402 = 'AF1402', - AF1404 = 'AF1404', - AF1401 = 'AF1401', - AF1405 = 'AF1405', - AF1406 = 'AF1406', - AF3403 = 'AF3403', - AF3402 = 'AF3402', - AF3405 = 'AF3405', - AF3404 = 'AF3404', - AF3401 = 'AF3401', - AF1203 = 'AF1203', - AF1208 = 'AF1208', - AF1210 = 'AF1210', - AF1211 = 'AF1211', - AF1201 = 'AF1201', - AF1205 = 'AF1205', - AF1207 = 'AF1207', - AF1202 = 'AF1202', - AF1206 = 'AF1206', - AF1204 = 'AF1204', - AF1209 = 'AF1209', - AF1306 = 'AF1306', - AF1304 = 'AF1304', - AF1315 = 'AF1315', - AF1303 = 'AF1303', - AF1301 = 'AF1301', - AF1311 = 'AF1311', - AF1313 = 'AF1313', - AF1307 = 'AF1307', - AF1305 = 'AF1305', - AF1314 = 'AF1314', - AF1302 = 'AF1302', - AF1310 = 'AF1310', - AF1308 = 'AF1308', - AF1312 = 'AF1312', - AF1309 = 'AF1309', - AF2302 = 'AF2302', - AF2304 = 'AF2304', - AF2305 = 'AF2305', - AF2303 = 'AF2303', - AF2301 = 'AF2301', - AF2006 = 'AF2006', - AF2003 = 'AF2003', - AF2005 = 'AF2005', - AF2007 = 'AF2007', - AF2001 = 'AF2001', - AF2002 = 'AF2002', - AF2004 = 'AF2004', - AF1604 = 'AF1604', - AF1610 = 'AF1610', - AF1605 = 'AF1605', - AF1617 = 'AF1617', - AF1613 = 'AF1613', - AF1615 = 'AF1615', - AF1607 = 'AF1607', - AF1602 = 'AF1602', - AF1608 = 'AF1608', - AF1612 = 'AF1612', - AF1606 = 'AF1606', - AF1609 = 'AF1609', - AF1601 = 'AF1601', - AF1616 = 'AF1616', - AF1614 = 'AF1614', - AF1611 = 'AF1611', - AF1603 = 'AF1603', - AG0601 = 'AG0601', - AG0602 = 'AG0602', - AG0603 = 'AG0603', - AG0604 = 'AG0604', - AG0605 = 'AG0605', - AG0606 = 'AG0606', - AG0607 = 'AG0607', - AG0608 = 'AG0608', - AG0612 = 'AG0612', - AG0609 = 'AG0609', - AG0610 = 'AG0610', - AG0611 = 'AG0611', - AG0613 = 'AG0613', - AG0614 = 'AG0614', - AF0403 = 'AF0403', - AF0404 = 'AF0404', - AF0406 = 'AF0406', - AF0402 = 'AF0402', - AF0408 = 'AF0408', - AF0401 = 'AF0401', - AF0407 = 'AF0407', - AF0405 = 'AF0405', - AF0409 = 'AF0409', - AG0801 = 'AG0801', - AF2409 = 'AF2409', - AF2408 = 'AF2408', - AF2407 = 'AF2407', - AF2403 = 'AF2403', - AF2411 = 'AF2411', - AF2401 = 'AF2401', - AF2406 = 'AF2406', - AF2405 = 'AF2405', - AF2410 = 'AF2410', - AF2404 = 'AF2404', - AF2402 = 'AF2402', - AF0503 = 'AF0503', - AF0501 = 'AF0501', - AF0507 = 'AF0507', - AF0504 = 'AF0504', - AF0506 = 'AF0506', - AF0502 = 'AF0502', - AF0505 = 'AF0505', - AG0501 = 'AG0501', - AG0502 = 'AG0502', - AG0503 = 'AG0503', - AG0504 = 'AG0504', - AG0505 = 'AG0505', - AG0506 = 'AG0506', - AG0507 = 'AG0507', - AG0508 = 'AG0508', - AF0309 = 'AF0309', - AF0304 = 'AF0304', - AF0301 = 'AF0301', - AF0307 = 'AF0307', - AF0302 = 'AF0302', - AF0308 = 'AF0308', - AF0306 = 'AF0306', - AF0305 = 'AF0305', - AF0303 = 'AF0303', - AF0310 = 'AF0310', - AG0301 = 'AG0301', - AG0302 = 'AG0302', - AG0303 = 'AG0303', - AG0304 = 'AG0304', - AG0305 = 'AG0305', - AG0306 = 'AG0306', - AG0307 = 'AG0307', - AG0308 = 'AG0308', - AG0309 = 'AG0309', - AG0310 = 'AG0310', - AG0311 = 'AG0311', - AG0312 = 'AG0312', - AG0313 = 'AG0313', - AG0314 = 'AG0314', - AG0315 = 'AG0315', - AG0316 = 'AG0316', - AG0317 = 'AG0317', - AG0318 = 'AG0318', - AG0319 = 'AG0319', - AG0401 = 'AG0401', - AG0402 = 'AG0402', - AG0403 = 'AG0403', - AG0404 = 'AG0404', - AG0405 = 'AG0405', - AG0406 = 'AG0406', - AG0407 = 'AG0407', - AG0408 = 'AG0408', - AG0409 = 'AG0409', - AG0410 = 'AG0410', - AG0101 = 'AG0101', - AG0102 = 'AG0102', - AG0103 = 'AG0103', - AG0104 = 'AG0104', - AG0105 = 'AG0105', - AG0106 = 'AG0106', - AG0107 = 'AG0107', - AG0108 = 'AG0108', - AG0109 = 'AG0109', - AG0110 = 'AG0110', - AG0111 = 'AG0111', - AG0112 = 'AG0112', - AG0113 = 'AG0113', - AG0114 = 'AG0114', - AF1901 = 'AF1901', - AF1904 = 'AF1904', - AF1905 = 'AF1905', - AF1903 = 'AF1903', - AF1902 = 'AF1902', - AF1906 = 'AF1906', - AF1907 = 'AF1907', - AG0701 = 'AG0701', - AF1701 = 'AF1701', - AF1702 = 'AF1702', - AF1704 = 'AF1704', - AF1706 = 'AF1706', - AF1705 = 'AF1705', - AF1707 = 'AF1707', - AF1703 = 'AF1703', - AG0201 = 'AG0201', - AG0202 = 'AG0202', - AG0203 = 'AG0203', - AG0204 = 'AG0204', - AG0205 = 'AG0205', - AG0206 = 'AG0206', - AG0207 = 'AG0207', - AG0208 = 'AG0208', - AG0209 = 'AG0209', - AG0210 = 'AG0210', - AG0211 = 'AG0211', - AG0212 = 'AG0212', - AG0213 = 'AG0213', - AG0214 = 'AG0214', - AG0215 = 'AG0215', - AG0216 = 'AG0216', - AG0217 = 'AG0217', - AG0218 = 'AG0218', - AG0219 = 'AG0219', - AG0220 = 'AG0220', - AG0221 = 'AG0221', - AF0801 = 'AF0801', - AF0804 = 'AF0804', - AF0805 = 'AF0805', - AF0806 = 'AF0806', - AF0807 = 'AF0807', - AF0803 = 'AF0803', - AF0802 = 'AF0802', - AF0704 = 'AF0704', - AF0702 = 'AF0702', - AF0705 = 'AF0705', - AF0701 = 'AF0701', - AF0703 = 'AF0703', - UA0708 = 'UA0708', - UA0702 = 'UA0702', - UA0706 = 'UA0706', - UA0704 = 'UA0704', - UA6804 = 'UA6804', - UA6806 = 'UA6806', - UA6802 = 'UA6802', - UA2102 = 'UA2102', - UA2108 = 'UA2108', - UA2112 = 'UA2112', - UA2110 = 'UA2110', - UA2106 = 'UA2106', - UA2104 = 'UA2104', - UA4604 = 'UA4604', - UA4606 = 'UA4606', - UA4614 = 'UA4614', - UA4612 = 'UA4612', - UA4610 = 'UA4610', - UA4602 = 'UA4602', - UA4608 = 'UA4608', - UA1206 = 'UA1206', - UA1202 = 'UA1202', - UA1204 = 'UA1204', - UA1212 = 'UA1212', - UA1210 = 'UA1210', - UA1208 = 'UA1208', - UA1214 = 'UA1214', - UA8000 = 'UA8000', - UA5304 = 'UA5304', - UA5302 = 'UA5302', - UA5308 = 'UA5308', - UA5306 = 'UA5306', - UA7306 = 'UA7306', - UA7304 = 'UA7304', - UA7302 = 'UA7302', - UA0112 = 'UA0112', - UA0108 = 'UA0108', - UA0104 = 'UA0104', - UA0106 = 'UA0106', - UA0102 = 'UA0102', - UA0116 = 'UA0116', - UA0114 = 'UA0114', - UA0118 = 'UA0118', - UA0110 = 'UA0110', - UA0120 = 'UA0120', - UA1804 = 'UA1804', - UA1808 = 'UA1808', - UA1802 = 'UA1802', - UA1806 = 'UA1806', - UA4804 = 'UA4804', - UA4808 = 'UA4808', - UA4802 = 'UA4802', - UA4806 = 'UA4806', - UA7102 = 'UA7102', - UA7108 = 'UA7108', - UA7104 = 'UA7104', - UA7106 = 'UA7106', - UA6504 = 'UA6504', - UA6508 = 'UA6508', - UA6502 = 'UA6502', - UA6510 = 'UA6510', - UA6506 = 'UA6506', - UA8500 = 'UA8500', - UA6306 = 'UA6306', - UA6314 = 'UA6314', - UA6310 = 'UA6310', - UA6302 = 'UA6302', - UA6304 = 'UA6304', - UA6308 = 'UA6308', - UA6312 = 'UA6312', - UA3208 = 'UA3208', - UA3202 = 'UA3202', - UA3210 = 'UA3210', - UA3200 = 'UA3200', - UA3214 = 'UA3214', - UA3212 = 'UA3212', - UA3204 = 'UA3204', - UA3206 = 'UA3206', - UA0510 = 'UA0510', - UA0504 = 'UA0504', - UA0506 = 'UA0506', - UA0508 = 'UA0508', - UA0502 = 'UA0502', - UA0512 = 'UA0512', - UA5106 = 'UA5106', - UA5108 = 'UA5108', - UA5110 = 'UA5110', - UA5114 = 'UA5114', - UA5102 = 'UA5102', - UA5112 = 'UA5112', - UA5104 = 'UA5104', - UA2302 = 'UA2302', - UA2308 = 'UA2308', - UA2306 = 'UA2306', - UA2304 = 'UA2304', - UA2310 = 'UA2310', - UA1410 = 'UA1410', - UA1412 = 'UA1412', - UA1408 = 'UA1408', - UA1404 = 'UA1404', - UA1414 = 'UA1414', - UA1402 = 'UA1402', - UA1406 = 'UA1406', - UA1416 = 'UA1416', - UA5604 = 'UA5604', - UA5606 = 'UA5606', - UA5608 = 'UA5608', - UA5602 = 'UA5602', - UA4402 = 'UA4402', - UA4410 = 'UA4410', - UA4412 = 'UA4412', - UA4408 = 'UA4408', - UA4404 = 'UA4404', - UA4414 = 'UA4414', - UA4406 = 'UA4406', - UA4416 = 'UA4416', - UA5902 = 'UA5902', - UA5904 = 'UA5904', - UA5910 = 'UA5910', - UA5908 = 'UA5908', - UA5906 = 'UA5906', - UA6102 = 'UA6102', - UA6104 = 'UA6104', - UA6106 = 'UA6106', - UA7402 = 'UA7402', - UA7410 = 'UA7410', - UA7408 = 'UA7408', - UA7406 = 'UA7406', - UA7404 = 'UA7404', - UA3502 = 'UA3502', - UA3506 = 'UA3506', - UA3508 = 'UA3508', - UA3504 = 'UA3504', - UA2610 = 'UA2610', - UA2608 = 'UA2608', - UA2612 = 'UA2612', - UA2604 = 'UA2604', - UA2602 = 'UA2602', - UA2606 = 'UA2606', -} diff --git a/src/frontend/generated/models/Admin3Enum.ts b/src/frontend/generated/models/Admin3Enum.ts deleted file mode 100644 index c52f58a782..0000000000 --- a/src/frontend/generated/models/Admin3Enum.ts +++ /dev/null @@ -1,484 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `UA0112065` - Stakhanovska - * * `UA0112001` - Abrykosivska - * * `UA0112067` - Stepnivska - * * `UA0112015` - Kalininska - * * `UA0112069` - Susaninska - * * `UA0112003` - Amurska - * * `UA0112071` - Chernovska - * * `UA0112005` - Voikovska - * * `UA0112073` - Yantarnenska - * * `UA0112017` - Kalininska - * * `UA0112007` - Voskhodnenska - * * `UA0112025` - Kotelnykivska - * * `UA0112009` - Hvardiiska - * * `UA0112011` - Hryshynska - * * `UA0112013` - Zernivska - * * `UA0112021` - Kolodiazianska - * * `UA0112019` - Klepyninska - * * `UA0112023` - Kormivska - * * `UA0112027` - Krasnohvardiiska - * * `UA0112029` - Krasnoznamianska - * * `UA0112031` - Krestianivska - * * `UA0112033` - Leninska - * * `UA0112035` - Marianivska - * * `UA0112037` - Naidonivska - * * `UA0112039` - Novopokrovska - * * `UA0112041` - Oktiabrska - * * `UA0112043` - Oktiabrska - * * `UA0112045` - Oleksandrivska - * * `UA0112047` - Oleksiivska - * * `UA0112049` - Ostrovska - * * `UA0112051` - Piatykhatska - * * `UA0112053` - Pervomaiska - * * `UA0112055` - Petrivska - * * `UA0112057` - Poltavska - * * `UA0112059` - Pravdivska - * * `UA0112061` - Rivnivska - * * `UA0112063` - Sarybashivska - * * `UA0108079` - Shtormivska - * * `UA0108053` - Novofedorivska - * * `UA0108021` - Ivanivska - * * `UA0108003` - Veselivska - * * `UA0108001` - Veresaievska - * * `UA0108019` - Zernivska - * * `UA0108009` - Heroiska - * * `UA0108005` - Vynohradivska - * * `UA0108007` - Vorobiovska - * * `UA0108017` - Zaozernenska - * * `UA0108013` - Dobrushynska - * * `UA0108015` - Yevpatoriiska - * * `UA0108051` - Novosilska - * * `UA0108033` - Krymska - * * `UA0108025` - Koltsovska - * * `UA0108023` - Kirovska - * * `UA0108031` - Krasnoiarska - * * `UA0108027` - Krainenska - * * `UA0108029` - Krasnopolianska - * * `UA0108049` - Novoozernivska - * * `UA0108039` - Myrnivska - * * `UA0108035` - Lisnivska - * * `UA0108037` - Medvedivska - * * `UA0108047` - Novoivanivska - * * `UA0108041` - Mytiaivska - * * `UA0108045` - Molochnenska - * * `UA0108069` - Stovpivska - * * `UA0108059` - Orikhivska - * * `UA0108055` - Okunivska - * * `UA0108057` - Olenivska - * * `UA0108067` - Syzivska - * * `UA0108061` - Okhotnykivska - * * `UA0108065` - Sakska - * * `UA0108075` - Frunzenska - * * `UA0108071` - Suvorovska - * * `UA0108073` - Uiutnenska - * * `UA0108077` - Chornomorska - * * `UA0108063` - Romashkinska - * * `UA0108043` - Mizhvodnenska - * * `UA0108011` - Dalekivska - * * `UA0104043` - Mytrofanivska - * * `UA0104001` - Aromatnivska - * * `UA0104003` - Bahativska - * * `UA0104007` - Vasylivska - * * `UA0104005` - Bilohirska - * * `UA0104011` - Drofynska - * * `UA0104013` - Zheliabovska - * * `UA0104009` - Vyshenska - * * `UA0104015` - Zhemchuzhynska - * * `UA0104017` - Zelenohirska - * * `UA0104019` - Zemlianychnenska - * * `UA0104021` - Zybynska - * * `UA0104035` - Krynychnenska - * * `UA0104029` - Izobilnenska - * * `UA0104031` - Kistochkivska - * * `UA0104033` - Krymskorozivska - * * `UA0104027` - Ivanivska - * * `UA0104037` - Kurska - * * `UA0104025` - Zuiska - * * `UA0104023` - Zorkinska - * * `UA0104041` - Melnychna - * * `UA0104063` - Rusakivska - * * `UA0104061` - Pshenychnenska - * * `UA0104045` - Mykhailivska - * * `UA0104059` - Okhotska - * * `UA0104051` - Nyzhnohirska - * * `UA0104049` - Muromska - * * `UA0104057` - Omelianivska - * * `UA0104055` - Novozhylivska - * * `UA0104069` - Tsvitochnenska - * * `UA0104067` - Uvarivska - * * `UA0104065` - Sadova - * * `UA0104071` - Chkalovska - * * `UA0104075` - Yakymivska - * * `UA0104039` - Lystvynska - * * `UA0104073` - Chornopilska - * * `UA0104053` - Novohryhorivska - * * `UA0104047` - Michurinska - * * `UA0106049` - Tsilynna - * * `UA0106047` - Tabachnenska - * * `UA0106045` - Stalnenska - * * `UA0106011` - Zarichnenska - * * `UA0106009` - Zavito-Leninska - * * `UA0106001` - Azovska - * * `UA0106007` - Yermakivska - * * `UA0106005` - Dzhankoiska - * * `UA0106043` - Svitlivska - * * `UA0106029` - Myrnivska - * * `UA0106019` - Lobanivska - * * `UA0106015` - Kindrativska - * * `UA0106017` - Krymkivska - * * `UA0106027` - Medvedivska - * * `UA0106021` - Luhanska - * * `UA0106025` - Maslivska - * * `UA0106041` - Roshchynska - * * `UA0106035` - Pobiednenska - * * `UA0106033` - Pakharivska - * * `UA0106039` - Rozkishnenska - * * `UA0106037` - Prostornenska - * * `UA0106013` - Izumrudnivska - * * `UA0106053` - Yarkivska - * * `UA0106051` - Chaikynska - * * `UA0106057` - Yasnopolianska - * * `UA0106055` - Yarkopolenska - * * `UA0106031` - Novokrymska - * * `UA0106023` - Maiska - * * `UA0106003` - Vilnenska - * * `UA0102003` - Aromatnenska - * * `UA0102000` - Sevastopilska - * * `UA0102009` - Verkhorichenska - * * `UA0102005` - Bakhchysaraiska - * * `UA0102011` - Vilinska - * * `UA0102017` - Zaliznychnenska - * * `UA0102013` - Holubynska - * * `UA0102015` - Dolynnenska - * * `UA0102019` - Zelenivska - * * `UA0102033` - Pishchanivska - * * `UA0102025` - Kashtanivska - * * `UA0102029` - Kuibyshevska - * * `UA0102027` - Krasnomatska - * * `UA0102039` - Skalystivska - * * `UA0102035` - Plodivska - * * `UA0102037` - Poshtivska - * * `UA0102041` - Tabachnenska - * * `UA0102045` - Tinystivska - * * `UA0102047` - Uhlivska - * * `UA0116041` - Urozhainivska - * * `UA0116001` - Hvardiiska - * * `UA0116003` - Hresivska - * * `UA0116005` - Dobrivska - * * `UA0116007` - Donska - * * `UA0116009` - Zhuravlivska - * * `UA0116011` - Kolchuhynska - * * `UA0116013` - Mazanska - * * `UA0116015` - Mykolaivska - * * `UA0116017` - Myrnivska - * * `UA0116019` - Molodizhnenska - * * `UA0116021` - Novoandriivska - * * `UA0116023` - Novoselivska - * * `UA0116025` - Pervomaiska - * * `UA0116027` - Perovska - * * `UA0116029` - Pozharska - * * `UA0116031` - Rodnykivska - * * `UA0116035` - Skvortsivska - * * `UA0116037` - Trudivska - * * `UA0116039` - Ukromnivska - * * `UA0114017` - Ishunska - * * `UA0114015` - Illinska - * * `UA0114037` - Rozdolnenska - * * `UA0114001` - Armianska - * * `UA0114021` - Krasnoarmiiska - * * `UA0114033` - Orlivska - * * `UA0114003` - Berezivska - * * `UA0114005` - Botanichna - * * `UA0114007` - Bratska - * * `UA0114011` - Voinska - * * `UA0114031` - Novoselivska - * * `UA0114013` - Zymynska - * * `UA0114029` - Novopavlivska - * * `UA0114035` - Pochetnenska - * * `UA0114019` - Kovylnivska - * * `UA0114023` - Krasnoperekopska - * * `UA0114025` - Kukushkinska - * * `UA0114027` - Mahazynska - * * `UA0114039` - Ruchivska - * * `UA0114041` - Serebrianska - * * `UA0114043` - Slavnivska - * * `UA0114045` - Slovianska - * * `UA0114047` - Sovkhoznenska - * * `UA0114049` - Suvorovska - * * `UA0114051` - Filativska - * * `UA0114053` - Chernyshivska - * * `UA0114009` - Vyshnivska - * * `UA0110027` - Leninska - * * `UA0110003` - Batalnenska - * * `UA0110011` - Hlazivska - * * `UA0110029` - Leninska - * * `UA0110039` - Novomykolaivska - * * `UA0110031` - Luhivska - * * `UA0110013` - Hornostaivska - * * `UA0110033` - Marivska - * * `UA0110035` - Marfivska - * * `UA0110015` - Zavitnenska - * * `UA0110037` - Mysivska - * * `UA0110017` - Illichivska - * * `UA0110041` - Oktiabrska - * * `UA0110005` - Bielinska - * * `UA0110019` - Kalynivska - * * `UA0110043` - Ostaninska - * * `UA0110007` - Vynohradnenska - * * `UA0110045` - Pryozernivska - * * `UA0110047` - Semysotska - * * `UA0110021` - Kerchenska - * * `UA0110049` - Uvarivska - * * `UA0110051` - Cheliadinivska - * * `UA0110001` - Baherivska - * * `UA0110023` - Kirovska - * * `UA0110053` - Chystopilska - * * `UA0110009` - Voikovska - * * `UA0110025` - Krasnohirska - * * `UA0110055` - Shcholkinska - */ -export enum Admin3Enum { - UA0112065 = 'UA0112065', - UA0112001 = 'UA0112001', - UA0112067 = 'UA0112067', - UA0112015 = 'UA0112015', - UA0112069 = 'UA0112069', - UA0112003 = 'UA0112003', - UA0112071 = 'UA0112071', - UA0112005 = 'UA0112005', - UA0112073 = 'UA0112073', - UA0112017 = 'UA0112017', - UA0112007 = 'UA0112007', - UA0112025 = 'UA0112025', - UA0112009 = 'UA0112009', - UA0112011 = 'UA0112011', - UA0112013 = 'UA0112013', - UA0112021 = 'UA0112021', - UA0112019 = 'UA0112019', - UA0112023 = 'UA0112023', - UA0112027 = 'UA0112027', - UA0112029 = 'UA0112029', - UA0112031 = 'UA0112031', - UA0112033 = 'UA0112033', - UA0112035 = 'UA0112035', - UA0112037 = 'UA0112037', - UA0112039 = 'UA0112039', - UA0112041 = 'UA0112041', - UA0112043 = 'UA0112043', - UA0112045 = 'UA0112045', - UA0112047 = 'UA0112047', - UA0112049 = 'UA0112049', - UA0112051 = 'UA0112051', - UA0112053 = 'UA0112053', - UA0112055 = 'UA0112055', - UA0112057 = 'UA0112057', - UA0112059 = 'UA0112059', - UA0112061 = 'UA0112061', - UA0112063 = 'UA0112063', - UA0108079 = 'UA0108079', - UA0108053 = 'UA0108053', - UA0108021 = 'UA0108021', - UA0108003 = 'UA0108003', - UA0108001 = 'UA0108001', - UA0108019 = 'UA0108019', - UA0108009 = 'UA0108009', - UA0108005 = 'UA0108005', - UA0108007 = 'UA0108007', - UA0108017 = 'UA0108017', - UA0108013 = 'UA0108013', - UA0108015 = 'UA0108015', - UA0108051 = 'UA0108051', - UA0108033 = 'UA0108033', - UA0108025 = 'UA0108025', - UA0108023 = 'UA0108023', - UA0108031 = 'UA0108031', - UA0108027 = 'UA0108027', - UA0108029 = 'UA0108029', - UA0108049 = 'UA0108049', - UA0108039 = 'UA0108039', - UA0108035 = 'UA0108035', - UA0108037 = 'UA0108037', - UA0108047 = 'UA0108047', - UA0108041 = 'UA0108041', - UA0108045 = 'UA0108045', - UA0108069 = 'UA0108069', - UA0108059 = 'UA0108059', - UA0108055 = 'UA0108055', - UA0108057 = 'UA0108057', - UA0108067 = 'UA0108067', - UA0108061 = 'UA0108061', - UA0108065 = 'UA0108065', - UA0108075 = 'UA0108075', - UA0108071 = 'UA0108071', - UA0108073 = 'UA0108073', - UA0108077 = 'UA0108077', - UA0108063 = 'UA0108063', - UA0108043 = 'UA0108043', - UA0108011 = 'UA0108011', - UA0104043 = 'UA0104043', - UA0104001 = 'UA0104001', - UA0104003 = 'UA0104003', - UA0104007 = 'UA0104007', - UA0104005 = 'UA0104005', - UA0104011 = 'UA0104011', - UA0104013 = 'UA0104013', - UA0104009 = 'UA0104009', - UA0104015 = 'UA0104015', - UA0104017 = 'UA0104017', - UA0104019 = 'UA0104019', - UA0104021 = 'UA0104021', - UA0104035 = 'UA0104035', - UA0104029 = 'UA0104029', - UA0104031 = 'UA0104031', - UA0104033 = 'UA0104033', - UA0104027 = 'UA0104027', - UA0104037 = 'UA0104037', - UA0104025 = 'UA0104025', - UA0104023 = 'UA0104023', - UA0104041 = 'UA0104041', - UA0104063 = 'UA0104063', - UA0104061 = 'UA0104061', - UA0104045 = 'UA0104045', - UA0104059 = 'UA0104059', - UA0104051 = 'UA0104051', - UA0104049 = 'UA0104049', - UA0104057 = 'UA0104057', - UA0104055 = 'UA0104055', - UA0104069 = 'UA0104069', - UA0104067 = 'UA0104067', - UA0104065 = 'UA0104065', - UA0104071 = 'UA0104071', - UA0104075 = 'UA0104075', - UA0104039 = 'UA0104039', - UA0104073 = 'UA0104073', - UA0104053 = 'UA0104053', - UA0104047 = 'UA0104047', - UA0106049 = 'UA0106049', - UA0106047 = 'UA0106047', - UA0106045 = 'UA0106045', - UA0106011 = 'UA0106011', - UA0106009 = 'UA0106009', - UA0106001 = 'UA0106001', - UA0106007 = 'UA0106007', - UA0106005 = 'UA0106005', - UA0106043 = 'UA0106043', - UA0106029 = 'UA0106029', - UA0106019 = 'UA0106019', - UA0106015 = 'UA0106015', - UA0106017 = 'UA0106017', - UA0106027 = 'UA0106027', - UA0106021 = 'UA0106021', - UA0106025 = 'UA0106025', - UA0106041 = 'UA0106041', - UA0106035 = 'UA0106035', - UA0106033 = 'UA0106033', - UA0106039 = 'UA0106039', - UA0106037 = 'UA0106037', - UA0106013 = 'UA0106013', - UA0106053 = 'UA0106053', - UA0106051 = 'UA0106051', - UA0106057 = 'UA0106057', - UA0106055 = 'UA0106055', - UA0106031 = 'UA0106031', - UA0106023 = 'UA0106023', - UA0106003 = 'UA0106003', - UA0102003 = 'UA0102003', - UA0102000 = 'UA0102000', - UA0102009 = 'UA0102009', - UA0102005 = 'UA0102005', - UA0102011 = 'UA0102011', - UA0102017 = 'UA0102017', - UA0102013 = 'UA0102013', - UA0102015 = 'UA0102015', - UA0102019 = 'UA0102019', - UA0102033 = 'UA0102033', - UA0102025 = 'UA0102025', - UA0102029 = 'UA0102029', - UA0102027 = 'UA0102027', - UA0102039 = 'UA0102039', - UA0102035 = 'UA0102035', - UA0102037 = 'UA0102037', - UA0102041 = 'UA0102041', - UA0102045 = 'UA0102045', - UA0102047 = 'UA0102047', - UA0116041 = 'UA0116041', - UA0116001 = 'UA0116001', - UA0116003 = 'UA0116003', - UA0116005 = 'UA0116005', - UA0116007 = 'UA0116007', - UA0116009 = 'UA0116009', - UA0116011 = 'UA0116011', - UA0116013 = 'UA0116013', - UA0116015 = 'UA0116015', - UA0116017 = 'UA0116017', - UA0116019 = 'UA0116019', - UA0116021 = 'UA0116021', - UA0116023 = 'UA0116023', - UA0116025 = 'UA0116025', - UA0116027 = 'UA0116027', - UA0116029 = 'UA0116029', - UA0116031 = 'UA0116031', - UA0116035 = 'UA0116035', - UA0116037 = 'UA0116037', - UA0116039 = 'UA0116039', - UA0114017 = 'UA0114017', - UA0114015 = 'UA0114015', - UA0114037 = 'UA0114037', - UA0114001 = 'UA0114001', - UA0114021 = 'UA0114021', - UA0114033 = 'UA0114033', - UA0114003 = 'UA0114003', - UA0114005 = 'UA0114005', - UA0114007 = 'UA0114007', - UA0114011 = 'UA0114011', - UA0114031 = 'UA0114031', - UA0114013 = 'UA0114013', - UA0114029 = 'UA0114029', - UA0114035 = 'UA0114035', - UA0114019 = 'UA0114019', - UA0114023 = 'UA0114023', - UA0114025 = 'UA0114025', - UA0114027 = 'UA0114027', - UA0114039 = 'UA0114039', - UA0114041 = 'UA0114041', - UA0114043 = 'UA0114043', - UA0114045 = 'UA0114045', - UA0114047 = 'UA0114047', - UA0114049 = 'UA0114049', - UA0114051 = 'UA0114051', - UA0114053 = 'UA0114053', - UA0114009 = 'UA0114009', - UA0110027 = 'UA0110027', - UA0110003 = 'UA0110003', - UA0110011 = 'UA0110011', - UA0110029 = 'UA0110029', - UA0110039 = 'UA0110039', - UA0110031 = 'UA0110031', - UA0110013 = 'UA0110013', - UA0110033 = 'UA0110033', - UA0110035 = 'UA0110035', - UA0110015 = 'UA0110015', - UA0110037 = 'UA0110037', - UA0110017 = 'UA0110017', - UA0110041 = 'UA0110041', - UA0110005 = 'UA0110005', - UA0110019 = 'UA0110019', - UA0110043 = 'UA0110043', - UA0110007 = 'UA0110007', - UA0110045 = 'UA0110045', - UA0110047 = 'UA0110047', - UA0110021 = 'UA0110021', - UA0110049 = 'UA0110049', - UA0110051 = 'UA0110051', - UA0110001 = 'UA0110001', - UA0110023 = 'UA0110023', - UA0110053 = 'UA0110053', - UA0110009 = 'UA0110009', - UA0110025 = 'UA0110025', - UA0110055 = 'UA0110055', -} diff --git a/src/frontend/generated/models/Admin4Enum.ts b/src/frontend/generated/models/Admin4Enum.ts deleted file mode 100644 index 8399ff5a1d..0000000000 --- a/src/frontend/generated/models/Admin4Enum.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `UA011603311` - TESTlevel4 - */ -export enum Admin4Enum { - UA011603311 = 'UA011603311', -} diff --git a/src/frontend/generated/models/Area.ts b/src/frontend/generated/models/Area.ts deleted file mode 100644 index 134759e183..0000000000 --- a/src/frontend/generated/models/Area.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type Area = { - readonly id: string; - readonly created_at: string; - readonly updated_at: string; - original_id?: string | null; - name: string; - p_code?: string | null; - geom?: string | null; - point?: string | null; - readonly valid_from: string | null; - valid_until?: string | null; - extras?: any; - readonly lft: number; - readonly rght: number; - readonly tree_id: number; - readonly level: number; - parent?: string | null; - area_type: string; -}; - diff --git a/src/frontend/generated/models/AreaList.ts b/src/frontend/generated/models/AreaList.ts deleted file mode 100644 index 04e29322db..0000000000 --- a/src/frontend/generated/models/AreaList.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type AreaList = { - readonly id: string; - name: string; - p_code?: string | null; -}; - diff --git a/src/frontend/generated/models/AreaType.ts b/src/frontend/generated/models/AreaType.ts deleted file mode 100644 index 3e7579f7cc..0000000000 --- a/src/frontend/generated/models/AreaType.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type AreaType = { - readonly id: string; - readonly created_at: string; - readonly updated_at: string; - original_id?: string | null; - name: string; - area_level?: number; - readonly valid_from: string | null; - valid_until?: string | null; - extras?: any; - readonly lft: number; - readonly rght: number; - readonly tree_id: number; - readonly level: number; - country: string; - parent?: string | null; -}; - diff --git a/src/frontend/generated/models/BlankEnum.ts b/src/frontend/generated/models/BlankEnum.ts deleted file mode 100644 index 80941d70af..0000000000 --- a/src/frontend/generated/models/BlankEnum.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export enum BlankEnum { - = '', -} diff --git a/src/frontend/generated/models/BusinessArea.ts b/src/frontend/generated/models/BusinessArea.ts deleted file mode 100644 index 5ac16312d2..0000000000 --- a/src/frontend/generated/models/BusinessArea.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type BusinessArea = { - readonly id: string; - name: string; - code: string; - long_name: string; - slug: string; - parent?: string | null; - is_split?: boolean; - active?: boolean; -}; - diff --git a/src/frontend/generated/models/CollectTypeEnum.ts b/src/frontend/generated/models/CollectTypeEnum.ts deleted file mode 100644 index 46bcbcf5f4..0000000000 --- a/src/frontend/generated/models/CollectTypeEnum.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `STANDARD` - Standard - * * `SINGLE` - Single - */ -export enum CollectTypeEnum { - STANDARD = 'STANDARD', - SINGLE = 'SINGLE', -} diff --git a/src/frontend/generated/models/CommsDisabilityEnum.ts b/src/frontend/generated/models/CommsDisabilityEnum.ts deleted file mode 100644 index 9263cc7947..0000000000 --- a/src/frontend/generated/models/CommsDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum CommsDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/ConsentSharingEnum.ts b/src/frontend/generated/models/ConsentSharingEnum.ts deleted file mode 100644 index 1ee67f80c3..0000000000 --- a/src/frontend/generated/models/ConsentSharingEnum.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `GOVERNMENT_PARTNER` - Government partners - * * `HUMANITARIAN_PARTNER` - Humanitarian partners - * * `PRIVATE_PARTNER` - Private partners - * * `UNICEF` - UNICEF - */ -export enum ConsentSharingEnum { - GOVERNMENT_PARTNER = 'GOVERNMENT_PARTNER', - HUMANITARIAN_PARTNER = 'HUMANITARIAN_PARTNER', - PRIVATE_PARTNER = 'PRIVATE_PARTNER', - UNICEF = 'UNICEF', -} diff --git a/src/frontend/generated/models/CountryEnum.ts b/src/frontend/generated/models/CountryEnum.ts deleted file mode 100644 index acc5d5a11d..0000000000 --- a/src/frontend/generated/models/CountryEnum.ts +++ /dev/null @@ -1,508 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `AF` - Afghanistan - * * `AX` - Åland Islands - * * `AL` - Albania - * * `DZ` - Algeria - * * `AS` - American Samoa - * * `AD` - Andorra - * * `AO` - Angola - * * `AI` - Anguilla - * * `AQ` - Antarctica - * * `AG` - Antigua and Barbuda - * * `AR` - Argentina - * * `AM` - Armenia - * * `AW` - Aruba - * * `AU` - Australia - * * `AT` - Austria - * * `AZ` - Azerbaijan - * * `BS` - Bahamas - * * `BH` - Bahrain - * * `BD` - Bangladesh - * * `BB` - Barbados - * * `BY` - Belarus - * * `BE` - Belgium - * * `BZ` - Belize - * * `BJ` - Benin - * * `BM` - Bermuda - * * `BT` - Bhutan - * * `BO` - Bolivia - * * `BQ` - Bonaire, Sint Eustatius and Saba - * * `BA` - Bosnia and Herzegovina - * * `BW` - Botswana - * * `BV` - Bouvet Island - * * `BR` - Brazil - * * `IO` - British Indian Ocean Territory - * * `BN` - Brunei - * * `BG` - Bulgaria - * * `BF` - Burkina Faso - * * `BI` - Burundi - * * `CV` - Cabo Verde - * * `KH` - Cambodia - * * `CM` - Cameroon - * * `CA` - Canada - * * `KY` - Cayman Islands - * * `CF` - Central African Republic - * * `TD` - Chad - * * `CL` - Chile - * * `CN` - China - * * `CX` - Christmas Island - * * `CC` - Cocos (Keeling) Islands - * * `CO` - Colombia - * * `KM` - Comoros - * * `CG` - Congo - * * `CD` - Congo (the Democratic Republic of the) - * * `CK` - Cook Islands - * * `CR` - Costa Rica - * * `CI` - Côte d'Ivoire - * * `HR` - Croatia - * * `CU` - Cuba - * * `CW` - Curaçao - * * `CY` - Cyprus - * * `CZ` - Czechia - * * `DK` - Denmark - * * `DJ` - Djibouti - * * `DM` - Dominica - * * `DO` - Dominican Republic - * * `EC` - Ecuador - * * `EG` - Egypt - * * `SV` - El Salvador - * * `GQ` - Equatorial Guinea - * * `ER` - Eritrea - * * `EE` - Estonia - * * `SZ` - Eswatini - * * `ET` - Ethiopia - * * `FK` - Falkland Islands (Malvinas) - * * `FO` - Faroe Islands - * * `FJ` - Fiji - * * `FI` - Finland - * * `FR` - France - * * `GF` - French Guiana - * * `PF` - French Polynesia - * * `TF` - French Southern Territories - * * `GA` - Gabon - * * `GM` - Gambia - * * `GE` - Georgia - * * `DE` - Germany - * * `GH` - Ghana - * * `GI` - Gibraltar - * * `GR` - Greece - * * `GL` - Greenland - * * `GD` - Grenada - * * `GP` - Guadeloupe - * * `GU` - Guam - * * `GT` - Guatemala - * * `GG` - Guernsey - * * `GN` - Guinea - * * `GW` - Guinea-Bissau - * * `GY` - Guyana - * * `HT` - Haiti - * * `HM` - Heard Island and McDonald Islands - * * `VA` - Holy See - * * `HN` - Honduras - * * `HK` - Hong Kong - * * `HU` - Hungary - * * `IS` - Iceland - * * `IN` - India - * * `ID` - Indonesia - * * `IR` - Iran - * * `IQ` - Iraq - * * `IE` - Ireland - * * `IM` - Isle of Man - * * `IL` - Israel - * * `IT` - Italy - * * `JM` - Jamaica - * * `JP` - Japan - * * `JE` - Jersey - * * `JO` - Jordan - * * `KZ` - Kazakhstan - * * `KE` - Kenya - * * `KI` - Kiribati - * * `KW` - Kuwait - * * `KG` - Kyrgyzstan - * * `LA` - Laos - * * `LV` - Latvia - * * `LB` - Lebanon - * * `LS` - Lesotho - * * `LR` - Liberia - * * `LY` - Libya - * * `LI` - Liechtenstein - * * `LT` - Lithuania - * * `LU` - Luxembourg - * * `MO` - Macao - * * `MG` - Madagascar - * * `MW` - Malawi - * * `MY` - Malaysia - * * `MV` - Maldives - * * `ML` - Mali - * * `MT` - Malta - * * `MH` - Marshall Islands - * * `MQ` - Martinique - * * `MR` - Mauritania - * * `MU` - Mauritius - * * `YT` - Mayotte - * * `MX` - Mexico - * * `FM` - Micronesia - * * `MD` - Moldova - * * `MC` - Monaco - * * `MN` - Mongolia - * * `ME` - Montenegro - * * `MS` - Montserrat - * * `MA` - Morocco - * * `MZ` - Mozambique - * * `MM` - Myanmar - * * `NA` - Namibia - * * `NR` - Nauru - * * `NP` - Nepal - * * `NL` - Netherlands - * * `NC` - New Caledonia - * * `NZ` - New Zealand - * * `NI` - Nicaragua - * * `NE` - Niger - * * `NG` - Nigeria - * * `NU` - Niue - * * `NF` - Norfolk Island - * * `KP` - North Korea - * * `MK` - North Macedonia - * * `MP` - Northern Mariana Islands - * * `NO` - Norway - * * `OM` - Oman - * * `PK` - Pakistan - * * `PW` - Palau - * * `PS` - Palestine, State of - * * `PA` - Panama - * * `PG` - Papua New Guinea - * * `PY` - Paraguay - * * `PE` - Peru - * * `PH` - Philippines - * * `PN` - Pitcairn - * * `PL` - Poland - * * `PT` - Portugal - * * `PR` - Puerto Rico - * * `QA` - Qatar - * * `RE` - Réunion - * * `RO` - Romania - * * `RU` - Russia - * * `RW` - Rwanda - * * `BL` - Saint Barthélemy - * * `SH` - Saint Helena, Ascension and Tristan da Cunha - * * `KN` - Saint Kitts and Nevis - * * `LC` - Saint Lucia - * * `MF` - Saint Martin (French part) - * * `PM` - Saint Pierre and Miquelon - * * `VC` - Saint Vincent and the Grenadines - * * `WS` - Samoa - * * `SM` - San Marino - * * `ST` - Sao Tome and Principe - * * `SA` - Saudi Arabia - * * `SN` - Senegal - * * `RS` - Serbia - * * `SC` - Seychelles - * * `SL` - Sierra Leone - * * `SG` - Singapore - * * `SX` - Sint Maarten (Dutch part) - * * `SK` - Slovakia - * * `SI` - Slovenia - * * `SB` - Solomon Islands - * * `SO` - Somalia - * * `ZA` - South Africa - * * `GS` - South Georgia and the South Sandwich Islands - * * `KR` - South Korea - * * `SS` - South Sudan - * * `ES` - Spain - * * `LK` - Sri Lanka - * * `SD` - Sudan - * * `SR` - Suriname - * * `SJ` - Svalbard and Jan Mayen - * * `SE` - Sweden - * * `CH` - Switzerland - * * `SY` - Syria - * * `TW` - Taiwan - * * `TJ` - Tajikistan - * * `TZ` - Tanzania - * * `TH` - Thailand - * * `TL` - Timor-Leste - * * `TG` - Togo - * * `TK` - Tokelau - * * `TO` - Tonga - * * `TT` - Trinidad and Tobago - * * `TN` - Tunisia - * * `TR` - Türkiye - * * `TM` - Turkmenistan - * * `TC` - Turks and Caicos Islands - * * `TV` - Tuvalu - * * `UG` - Uganda - * * `UA` - Ukraine - * * `AE` - United Arab Emirates - * * `GB` - United Kingdom - * * `UM` - United States Minor Outlying Islands - * * `US` - United States of America - * * `U` - Unknown or Not Applicable - * * `UY` - Uruguay - * * `UZ` - Uzbekistan - * * `VU` - Vanuatu - * * `VE` - Venezuela - * * `VN` - Vietnam - * * `VG` - Virgin Islands (British) - * * `VI` - Virgin Islands (U.S.) - * * `WF` - Wallis and Futuna - * * `EH` - Western Sahara - * * `YE` - Yemen - * * `ZM` - Zambia - * * `ZW` - Zimbabwe - */ -export enum CountryEnum { - AF = 'AF', - AX = 'AX', - AL = 'AL', - DZ = 'DZ', - AS = 'AS', - AD = 'AD', - AO = 'AO', - AI = 'AI', - AQ = 'AQ', - AG = 'AG', - AR = 'AR', - AM = 'AM', - AW = 'AW', - AU = 'AU', - AT = 'AT', - AZ = 'AZ', - BS = 'BS', - BH = 'BH', - BD = 'BD', - BB = 'BB', - BY = 'BY', - BE = 'BE', - BZ = 'BZ', - BJ = 'BJ', - BM = 'BM', - BT = 'BT', - BO = 'BO', - BQ = 'BQ', - BA = 'BA', - BW = 'BW', - BV = 'BV', - BR = 'BR', - IO = 'IO', - BN = 'BN', - BG = 'BG', - BF = 'BF', - BI = 'BI', - CV = 'CV', - KH = 'KH', - CM = 'CM', - CA = 'CA', - KY = 'KY', - CF = 'CF', - TD = 'TD', - CL = 'CL', - CN = 'CN', - CX = 'CX', - CC = 'CC', - CO = 'CO', - KM = 'KM', - CG = 'CG', - CD = 'CD', - CK = 'CK', - CR = 'CR', - CI = 'CI', - HR = 'HR', - CU = 'CU', - CW = 'CW', - CY = 'CY', - CZ = 'CZ', - DK = 'DK', - DJ = 'DJ', - DM = 'DM', - DO = 'DO', - EC = 'EC', - EG = 'EG', - SV = 'SV', - GQ = 'GQ', - ER = 'ER', - EE = 'EE', - SZ = 'SZ', - ET = 'ET', - FK = 'FK', - FO = 'FO', - FJ = 'FJ', - FI = 'FI', - FR = 'FR', - GF = 'GF', - PF = 'PF', - TF = 'TF', - GA = 'GA', - GM = 'GM', - GE = 'GE', - DE = 'DE', - GH = 'GH', - GI = 'GI', - GR = 'GR', - GL = 'GL', - GD = 'GD', - GP = 'GP', - GU = 'GU', - GT = 'GT', - GG = 'GG', - GN = 'GN', - GW = 'GW', - GY = 'GY', - HT = 'HT', - HM = 'HM', - VA = 'VA', - HN = 'HN', - HK = 'HK', - HU = 'HU', - IS = 'IS', - IN = 'IN', - ID = 'ID', - IR = 'IR', - IQ = 'IQ', - IE = 'IE', - IM = 'IM', - IL = 'IL', - IT = 'IT', - JM = 'JM', - JP = 'JP', - JE = 'JE', - JO = 'JO', - KZ = 'KZ', - KE = 'KE', - KI = 'KI', - KW = 'KW', - KG = 'KG', - LA = 'LA', - LV = 'LV', - LB = 'LB', - LS = 'LS', - LR = 'LR', - LY = 'LY', - LI = 'LI', - LT = 'LT', - LU = 'LU', - MO = 'MO', - MG = 'MG', - MW = 'MW', - MY = 'MY', - MV = 'MV', - ML = 'ML', - MT = 'MT', - MH = 'MH', - MQ = 'MQ', - MR = 'MR', - MU = 'MU', - YT = 'YT', - MX = 'MX', - FM = 'FM', - MD = 'MD', - MC = 'MC', - MN = 'MN', - ME = 'ME', - MS = 'MS', - MA = 'MA', - MZ = 'MZ', - MM = 'MM', - NA = 'NA', - NR = 'NR', - NP = 'NP', - NL = 'NL', - NC = 'NC', - NZ = 'NZ', - NI = 'NI', - NE = 'NE', - NG = 'NG', - NU = 'NU', - NF = 'NF', - KP = 'KP', - MK = 'MK', - MP = 'MP', - NO = 'NO', - OM = 'OM', - PK = 'PK', - PW = 'PW', - PS = 'PS', - PA = 'PA', - PG = 'PG', - PY = 'PY', - PE = 'PE', - PH = 'PH', - PN = 'PN', - PL = 'PL', - PT = 'PT', - PR = 'PR', - QA = 'QA', - RE = 'RE', - RO = 'RO', - RU = 'RU', - RW = 'RW', - BL = 'BL', - SH = 'SH', - KN = 'KN', - LC = 'LC', - MF = 'MF', - PM = 'PM', - VC = 'VC', - WS = 'WS', - SM = 'SM', - ST = 'ST', - SA = 'SA', - SN = 'SN', - RS = 'RS', - SC = 'SC', - SL = 'SL', - SG = 'SG', - SX = 'SX', - SK = 'SK', - SI = 'SI', - SB = 'SB', - SO = 'SO', - ZA = 'ZA', - GS = 'GS', - KR = 'KR', - SS = 'SS', - ES = 'ES', - LK = 'LK', - SD = 'SD', - SR = 'SR', - SJ = 'SJ', - SE = 'SE', - CH = 'CH', - SY = 'SY', - TW = 'TW', - TJ = 'TJ', - TZ = 'TZ', - TH = 'TH', - TL = 'TL', - TG = 'TG', - TK = 'TK', - TO = 'TO', - TT = 'TT', - TN = 'TN', - TR = 'TR', - TM = 'TM', - TC = 'TC', - TV = 'TV', - UG = 'UG', - UA = 'UA', - AE = 'AE', - GB = 'GB', - UM = 'UM', - US = 'US', - U = 'U', - UY = 'UY', - UZ = 'UZ', - VU = 'VU', - VE = 'VE', - VN = 'VN', - VG = 'VG', - VI = 'VI', - WF = 'WF', - EH = 'EH', - YE = 'YE', - ZM = 'ZM', - ZW = 'ZW', -} diff --git a/src/frontend/generated/models/CountryOriginEnum.ts b/src/frontend/generated/models/CountryOriginEnum.ts deleted file mode 100644 index 6c50b2d9e3..0000000000 --- a/src/frontend/generated/models/CountryOriginEnum.ts +++ /dev/null @@ -1,508 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `AF` - Afghanistan - * * `AX` - Åland Islands - * * `AL` - Albania - * * `DZ` - Algeria - * * `AS` - American Samoa - * * `AD` - Andorra - * * `AO` - Angola - * * `AI` - Anguilla - * * `AQ` - Antarctica - * * `AG` - Antigua and Barbuda - * * `AR` - Argentina - * * `AM` - Armenia - * * `AW` - Aruba - * * `AU` - Australia - * * `AT` - Austria - * * `AZ` - Azerbaijan - * * `BS` - Bahamas - * * `BH` - Bahrain - * * `BD` - Bangladesh - * * `BB` - Barbados - * * `BY` - Belarus - * * `BE` - Belgium - * * `BZ` - Belize - * * `BJ` - Benin - * * `BM` - Bermuda - * * `BT` - Bhutan - * * `BO` - Bolivia - * * `BQ` - Bonaire, Sint Eustatius and Saba - * * `BA` - Bosnia and Herzegovina - * * `BW` - Botswana - * * `BV` - Bouvet Island - * * `BR` - Brazil - * * `IO` - British Indian Ocean Territory - * * `BN` - Brunei - * * `BG` - Bulgaria - * * `BF` - Burkina Faso - * * `BI` - Burundi - * * `CV` - Cabo Verde - * * `KH` - Cambodia - * * `CM` - Cameroon - * * `CA` - Canada - * * `KY` - Cayman Islands - * * `CF` - Central African Republic - * * `TD` - Chad - * * `CL` - Chile - * * `CN` - China - * * `CX` - Christmas Island - * * `CC` - Cocos (Keeling) Islands - * * `CO` - Colombia - * * `KM` - Comoros - * * `CG` - Congo - * * `CD` - Congo (the Democratic Republic of the) - * * `CK` - Cook Islands - * * `CR` - Costa Rica - * * `CI` - Côte d'Ivoire - * * `HR` - Croatia - * * `CU` - Cuba - * * `CW` - Curaçao - * * `CY` - Cyprus - * * `CZ` - Czechia - * * `DK` - Denmark - * * `DJ` - Djibouti - * * `DM` - Dominica - * * `DO` - Dominican Republic - * * `EC` - Ecuador - * * `EG` - Egypt - * * `SV` - El Salvador - * * `GQ` - Equatorial Guinea - * * `ER` - Eritrea - * * `EE` - Estonia - * * `SZ` - Eswatini - * * `ET` - Ethiopia - * * `FK` - Falkland Islands (Malvinas) - * * `FO` - Faroe Islands - * * `FJ` - Fiji - * * `FI` - Finland - * * `FR` - France - * * `GF` - French Guiana - * * `PF` - French Polynesia - * * `TF` - French Southern Territories - * * `GA` - Gabon - * * `GM` - Gambia - * * `GE` - Georgia - * * `DE` - Germany - * * `GH` - Ghana - * * `GI` - Gibraltar - * * `GR` - Greece - * * `GL` - Greenland - * * `GD` - Grenada - * * `GP` - Guadeloupe - * * `GU` - Guam - * * `GT` - Guatemala - * * `GG` - Guernsey - * * `GN` - Guinea - * * `GW` - Guinea-Bissau - * * `GY` - Guyana - * * `HT` - Haiti - * * `HM` - Heard Island and McDonald Islands - * * `VA` - Holy See - * * `HN` - Honduras - * * `HK` - Hong Kong - * * `HU` - Hungary - * * `IS` - Iceland - * * `IN` - India - * * `ID` - Indonesia - * * `IR` - Iran - * * `IQ` - Iraq - * * `IE` - Ireland - * * `IM` - Isle of Man - * * `IL` - Israel - * * `IT` - Italy - * * `JM` - Jamaica - * * `JP` - Japan - * * `JE` - Jersey - * * `JO` - Jordan - * * `KZ` - Kazakhstan - * * `KE` - Kenya - * * `KI` - Kiribati - * * `KW` - Kuwait - * * `KG` - Kyrgyzstan - * * `LA` - Laos - * * `LV` - Latvia - * * `LB` - Lebanon - * * `LS` - Lesotho - * * `LR` - Liberia - * * `LY` - Libya - * * `LI` - Liechtenstein - * * `LT` - Lithuania - * * `LU` - Luxembourg - * * `MO` - Macao - * * `MG` - Madagascar - * * `MW` - Malawi - * * `MY` - Malaysia - * * `MV` - Maldives - * * `ML` - Mali - * * `MT` - Malta - * * `MH` - Marshall Islands - * * `MQ` - Martinique - * * `MR` - Mauritania - * * `MU` - Mauritius - * * `YT` - Mayotte - * * `MX` - Mexico - * * `FM` - Micronesia - * * `MD` - Moldova - * * `MC` - Monaco - * * `MN` - Mongolia - * * `ME` - Montenegro - * * `MS` - Montserrat - * * `MA` - Morocco - * * `MZ` - Mozambique - * * `MM` - Myanmar - * * `NA` - Namibia - * * `NR` - Nauru - * * `NP` - Nepal - * * `NL` - Netherlands - * * `NC` - New Caledonia - * * `NZ` - New Zealand - * * `NI` - Nicaragua - * * `NE` - Niger - * * `NG` - Nigeria - * * `NU` - Niue - * * `NF` - Norfolk Island - * * `KP` - North Korea - * * `MK` - North Macedonia - * * `MP` - Northern Mariana Islands - * * `NO` - Norway - * * `OM` - Oman - * * `PK` - Pakistan - * * `PW` - Palau - * * `PS` - Palestine, State of - * * `PA` - Panama - * * `PG` - Papua New Guinea - * * `PY` - Paraguay - * * `PE` - Peru - * * `PH` - Philippines - * * `PN` - Pitcairn - * * `PL` - Poland - * * `PT` - Portugal - * * `PR` - Puerto Rico - * * `QA` - Qatar - * * `RE` - Réunion - * * `RO` - Romania - * * `RU` - Russia - * * `RW` - Rwanda - * * `BL` - Saint Barthélemy - * * `SH` - Saint Helena, Ascension and Tristan da Cunha - * * `KN` - Saint Kitts and Nevis - * * `LC` - Saint Lucia - * * `MF` - Saint Martin (French part) - * * `PM` - Saint Pierre and Miquelon - * * `VC` - Saint Vincent and the Grenadines - * * `WS` - Samoa - * * `SM` - San Marino - * * `ST` - Sao Tome and Principe - * * `SA` - Saudi Arabia - * * `SN` - Senegal - * * `RS` - Serbia - * * `SC` - Seychelles - * * `SL` - Sierra Leone - * * `SG` - Singapore - * * `SX` - Sint Maarten (Dutch part) - * * `SK` - Slovakia - * * `SI` - Slovenia - * * `SB` - Solomon Islands - * * `SO` - Somalia - * * `ZA` - South Africa - * * `GS` - South Georgia and the South Sandwich Islands - * * `KR` - South Korea - * * `SS` - South Sudan - * * `ES` - Spain - * * `LK` - Sri Lanka - * * `SD` - Sudan - * * `SR` - Suriname - * * `SJ` - Svalbard and Jan Mayen - * * `SE` - Sweden - * * `CH` - Switzerland - * * `SY` - Syria - * * `TW` - Taiwan - * * `TJ` - Tajikistan - * * `TZ` - Tanzania - * * `TH` - Thailand - * * `TL` - Timor-Leste - * * `TG` - Togo - * * `TK` - Tokelau - * * `TO` - Tonga - * * `TT` - Trinidad and Tobago - * * `TN` - Tunisia - * * `TR` - Türkiye - * * `TM` - Turkmenistan - * * `TC` - Turks and Caicos Islands - * * `TV` - Tuvalu - * * `UG` - Uganda - * * `UA` - Ukraine - * * `AE` - United Arab Emirates - * * `GB` - United Kingdom - * * `UM` - United States Minor Outlying Islands - * * `US` - United States of America - * * `U` - Unknown or Not Applicable - * * `UY` - Uruguay - * * `UZ` - Uzbekistan - * * `VU` - Vanuatu - * * `VE` - Venezuela - * * `VN` - Vietnam - * * `VG` - Virgin Islands (British) - * * `VI` - Virgin Islands (U.S.) - * * `WF` - Wallis and Futuna - * * `EH` - Western Sahara - * * `YE` - Yemen - * * `ZM` - Zambia - * * `ZW` - Zimbabwe - */ -export enum CountryOriginEnum { - AF = 'AF', - AX = 'AX', - AL = 'AL', - DZ = 'DZ', - AS = 'AS', - AD = 'AD', - AO = 'AO', - AI = 'AI', - AQ = 'AQ', - AG = 'AG', - AR = 'AR', - AM = 'AM', - AW = 'AW', - AU = 'AU', - AT = 'AT', - AZ = 'AZ', - BS = 'BS', - BH = 'BH', - BD = 'BD', - BB = 'BB', - BY = 'BY', - BE = 'BE', - BZ = 'BZ', - BJ = 'BJ', - BM = 'BM', - BT = 'BT', - BO = 'BO', - BQ = 'BQ', - BA = 'BA', - BW = 'BW', - BV = 'BV', - BR = 'BR', - IO = 'IO', - BN = 'BN', - BG = 'BG', - BF = 'BF', - BI = 'BI', - CV = 'CV', - KH = 'KH', - CM = 'CM', - CA = 'CA', - KY = 'KY', - CF = 'CF', - TD = 'TD', - CL = 'CL', - CN = 'CN', - CX = 'CX', - CC = 'CC', - CO = 'CO', - KM = 'KM', - CG = 'CG', - CD = 'CD', - CK = 'CK', - CR = 'CR', - CI = 'CI', - HR = 'HR', - CU = 'CU', - CW = 'CW', - CY = 'CY', - CZ = 'CZ', - DK = 'DK', - DJ = 'DJ', - DM = 'DM', - DO = 'DO', - EC = 'EC', - EG = 'EG', - SV = 'SV', - GQ = 'GQ', - ER = 'ER', - EE = 'EE', - SZ = 'SZ', - ET = 'ET', - FK = 'FK', - FO = 'FO', - FJ = 'FJ', - FI = 'FI', - FR = 'FR', - GF = 'GF', - PF = 'PF', - TF = 'TF', - GA = 'GA', - GM = 'GM', - GE = 'GE', - DE = 'DE', - GH = 'GH', - GI = 'GI', - GR = 'GR', - GL = 'GL', - GD = 'GD', - GP = 'GP', - GU = 'GU', - GT = 'GT', - GG = 'GG', - GN = 'GN', - GW = 'GW', - GY = 'GY', - HT = 'HT', - HM = 'HM', - VA = 'VA', - HN = 'HN', - HK = 'HK', - HU = 'HU', - IS = 'IS', - IN = 'IN', - ID = 'ID', - IR = 'IR', - IQ = 'IQ', - IE = 'IE', - IM = 'IM', - IL = 'IL', - IT = 'IT', - JM = 'JM', - JP = 'JP', - JE = 'JE', - JO = 'JO', - KZ = 'KZ', - KE = 'KE', - KI = 'KI', - KW = 'KW', - KG = 'KG', - LA = 'LA', - LV = 'LV', - LB = 'LB', - LS = 'LS', - LR = 'LR', - LY = 'LY', - LI = 'LI', - LT = 'LT', - LU = 'LU', - MO = 'MO', - MG = 'MG', - MW = 'MW', - MY = 'MY', - MV = 'MV', - ML = 'ML', - MT = 'MT', - MH = 'MH', - MQ = 'MQ', - MR = 'MR', - MU = 'MU', - YT = 'YT', - MX = 'MX', - FM = 'FM', - MD = 'MD', - MC = 'MC', - MN = 'MN', - ME = 'ME', - MS = 'MS', - MA = 'MA', - MZ = 'MZ', - MM = 'MM', - NA = 'NA', - NR = 'NR', - NP = 'NP', - NL = 'NL', - NC = 'NC', - NZ = 'NZ', - NI = 'NI', - NE = 'NE', - NG = 'NG', - NU = 'NU', - NF = 'NF', - KP = 'KP', - MK = 'MK', - MP = 'MP', - NO = 'NO', - OM = 'OM', - PK = 'PK', - PW = 'PW', - PS = 'PS', - PA = 'PA', - PG = 'PG', - PY = 'PY', - PE = 'PE', - PH = 'PH', - PN = 'PN', - PL = 'PL', - PT = 'PT', - PR = 'PR', - QA = 'QA', - RE = 'RE', - RO = 'RO', - RU = 'RU', - RW = 'RW', - BL = 'BL', - SH = 'SH', - KN = 'KN', - LC = 'LC', - MF = 'MF', - PM = 'PM', - VC = 'VC', - WS = 'WS', - SM = 'SM', - ST = 'ST', - SA = 'SA', - SN = 'SN', - RS = 'RS', - SC = 'SC', - SL = 'SL', - SG = 'SG', - SX = 'SX', - SK = 'SK', - SI = 'SI', - SB = 'SB', - SO = 'SO', - ZA = 'ZA', - GS = 'GS', - KR = 'KR', - SS = 'SS', - ES = 'ES', - LK = 'LK', - SD = 'SD', - SR = 'SR', - SJ = 'SJ', - SE = 'SE', - CH = 'CH', - SY = 'SY', - TW = 'TW', - TJ = 'TJ', - TZ = 'TZ', - TH = 'TH', - TL = 'TL', - TG = 'TG', - TK = 'TK', - TO = 'TO', - TT = 'TT', - TN = 'TN', - TR = 'TR', - TM = 'TM', - TC = 'TC', - TV = 'TV', - UG = 'UG', - UA = 'UA', - AE = 'AE', - GB = 'GB', - UM = 'UM', - US = 'US', - U = 'U', - UY = 'UY', - UZ = 'UZ', - VU = 'VU', - VE = 'VE', - VN = 'VN', - VG = 'VG', - VI = 'VI', - WF = 'WF', - EH = 'EH', - YE = 'YE', - ZM = 'ZM', - ZW = 'ZW', -} diff --git a/src/frontend/generated/models/CurrencyEnum.ts b/src/frontend/generated/models/CurrencyEnum.ts deleted file mode 100644 index bce6ce6230..0000000000 --- a/src/frontend/generated/models/CurrencyEnum.ts +++ /dev/null @@ -1,333 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `AED` - United Arab Emirates dirham - * * `AFN` - Afghan afghani - * * `ALL` - Albanian lek - * * `AMD` - Armenian dram - * * `ANG` - Netherlands Antillean guilder - * * `AOA` - Angolan kwanza - * * `ARS` - Argentine peso - * * `AUD` - Australian dollar - * * `AWG` - Aruban florin - * * `AZN` - Azerbaijani manat - * * `BAM` - Bosnia and Herzegovina convertible mark - * * `BBD` - Barbados dollar - * * `BDT` - Bangladeshi taka - * * `BGN` - Bulgarian lev - * * `BHD` - Bahraini dinar - * * `BIF` - Burundian franc - * * `BMD` - Bermudian dollar - * * `BND` - Brunei dollar - * * `BOB` - Boliviano - * * `BOV` - Bolivian Mvdol (funds code) - * * `BRL` - Brazilian real - * * `BSD` - Bahamian dollar - * * `BTN` - Bhutanese ngultrum - * * `BWP` - Botswana pula - * * `BYN` - Belarusian ruble - * * `BZD` - Belize dollar - * * `CAD` - Canadian dollar - * * `CDF` - Congolese franc - * * `CHF` - Swiss franc - * * `CLP` - Chilean peso - * * `CNY` - Chinese yuan - * * `COP` - Colombian peso - * * `CRC` - Costa Rican colon - * * `CUC` - Cuban convertible peso - * * `CUP` - Cuban peso - * * `CVE` - Cape Verdean escudo - * * `CZK` - Czech koruna - * * `DJF` - Djiboutian franc - * * `DKK` - Danish krone - * * `DOP` - Dominican peso - * * `DZD` - Algerian dinar - * * `EGP` - Egyptian pound - * * `ERN` - Eritrean nakfa - * * `ETB` - Ethiopian birr - * * `EUR` - Euro - * * `FJD` - Fiji dollar - * * `FKP` - Falkland Islands pound - * * `GBP` - Pound sterling - * * `GEL` - Georgian lari - * * `GHS` - Ghanaian cedi - * * `GIP` - Gibraltar pound - * * `GMD` - Gambian dalasi - * * `GNF` - Guinean franc - * * `GTQ` - Guatemalan quetzal - * * `GYD` - Guyanese dollar - * * `HKD` - Hong Kong dollar - * * `HNL` - Honduran lempira - * * `HRK` - Croatian kuna - * * `HTG` - Haitian gourde - * * `HUF` - Hungarian forint - * * `IDR` - Indonesian rupiah - * * `ILS` - Israeli new shekel - * * `INR` - Indian rupee - * * `IQD` - Iraqi dinar - * * `IRR` - Iranian rial - * * `ISK` - Icelandic króna - * * `JMD` - Jamaican dollar - * * `JOD` - Jordanian dinar - * * `JPY` - Japanese yen - * * `KES` - Kenyan shilling - * * `KGS` - Kyrgyzstani som - * * `KHR` - Cambodian riel - * * `KMF` - Comoro franc - * * `KPW` - North Korean won - * * `KRW` - South Korean won - * * `KWD` - Kuwaiti dinar - * * `KYD` - Cayman Islands dollar - * * `KZT` - Kazakhstani tenge - * * `LAK` - Lao kip - * * `LBP` - Lebanese pound - * * `LKR` - Sri Lankan rupee - * * `LRD` - Liberian dollar - * * `LSL` - Lesotho loti - * * `LYD` - Libyan dinar - * * `MAD` - Moroccan dirham - * * `MDL` - Moldovan leu - * * `MGA` - Malagasy ariary - * * `MKD` - Macedonian denar - * * `MMK` - Myanmar kyat - * * `MNT` - Mongolian tögrög - * * `MOP` - Macanese pataca - * * `MRU` - Mauritanian ouguiya - * * `MUR` - Mauritian rupee - * * `MVR` - Maldivian rufiyaa - * * `MWK` - Malawian kwacha - * * `MXN` - Mexican peso - * * `MYR` - Malaysian ringgit - * * `MZN` - Mozambican metical - * * `NAD` - Namibian dollar - * * `NGN` - Nigerian naira - * * `NIO` - Nicaraguan córdoba - * * `NOK` - Norwegian krone - * * `NPR` - Nepalese rupee - * * `NZD` - New Zealand dollar - * * `OMR` - Omani rial - * * `PAB` - Panamanian balboa - * * `PEN` - Peruvian sol - * * `PGK` - Papua New Guinean kina - * * `PHP` - Philippine peso - * * `PKR` - Pakistani rupee - * * `PLN` - Polish złoty - * * `PYG` - Paraguayan guaraní - * * `QAR` - Qatari riyal - * * `RON` - Romanian leu - * * `RSD` - Serbian dinar - * * `RUB` - Russian ruble - * * `RWF` - Rwandan franc - * * `SAR` - Saudi riyal - * * `SBD` - Solomon Islands dollar - * * `SCR` - Seychelles rupee - * * `SDG` - Sudanese pound - * * `SEK` - Swedish krona/kronor - * * `SGD` - Singapore dollar - * * `SHP` - Saint Helena pound - * * `SLE` - Sierra Leonean leone - * * `SOS` - Somali shilling - * * `SRD` - Surinamese dollar - * * `SSP` - South Sudanese pound - * * `STN` - São Tomé and Príncipe dobra - * * `SVC` - Salvadoran colón - * * `SYP` - Syrian pound - * * `SZL` - Swazi lilangeni - * * `THB` - Thai baht - * * `TJS` - Tajikistani somoni - * * `TMT` - Turkmenistan manat - * * `TND` - Tunisian dinar - * * `TOP` - Tongan paʻanga - * * `TRY` - Turkish lira - * * `TTD` - Trinidad and Tobago dollar - * * `TWD` - New Taiwan dollar - * * `TZS` - Tanzanian shilling - * * `UAH` - Ukrainian hryvnia - * * `UGX` - Ugandan shilling - * * `USD` - United States dollar - * * `UYU` - Uruguayan peso - * * `UYW` - Unidad previsional[14] - * * `UZS` - Uzbekistan som - * * `VES` - Venezuelan bolívar soberano - * * `VND` - Vietnamese đồng - * * `VUV` - Vanuatu vatu - * * `WST` - Samoan tala - * * `XAF` - CFA franc BEAC - * * `XAG` - Silver (one troy ounce) - * * `XAU` - Gold (one troy ounce) - * * `XCD` - East Caribbean dollar - * * `XOF` - CFA franc BCEAO - * * `XPF` - CFP franc (franc Pacifique) - * * `YER` - Yemeni rial - * * `ZAR` - South African rand - * * `ZMW` - Zambian kwacha - * * `ZWL` - Zimbabwean dollar - * * `USDC` - USD Coin - */ -export enum CurrencyEnum { - AED = 'AED', - AFN = 'AFN', - ALL = 'ALL', - AMD = 'AMD', - ANG = 'ANG', - AOA = 'AOA', - ARS = 'ARS', - AUD = 'AUD', - AWG = 'AWG', - AZN = 'AZN', - BAM = 'BAM', - BBD = 'BBD', - BDT = 'BDT', - BGN = 'BGN', - BHD = 'BHD', - BIF = 'BIF', - BMD = 'BMD', - BND = 'BND', - BOB = 'BOB', - BOV = 'BOV', - BRL = 'BRL', - BSD = 'BSD', - BTN = 'BTN', - BWP = 'BWP', - BYN = 'BYN', - BZD = 'BZD', - CAD = 'CAD', - CDF = 'CDF', - CHF = 'CHF', - CLP = 'CLP', - CNY = 'CNY', - COP = 'COP', - CRC = 'CRC', - CUC = 'CUC', - CUP = 'CUP', - CVE = 'CVE', - CZK = 'CZK', - DJF = 'DJF', - DKK = 'DKK', - DOP = 'DOP', - DZD = 'DZD', - EGP = 'EGP', - ERN = 'ERN', - ETB = 'ETB', - EUR = 'EUR', - FJD = 'FJD', - FKP = 'FKP', - GBP = 'GBP', - GEL = 'GEL', - GHS = 'GHS', - GIP = 'GIP', - GMD = 'GMD', - GNF = 'GNF', - GTQ = 'GTQ', - GYD = 'GYD', - HKD = 'HKD', - HNL = 'HNL', - HRK = 'HRK', - HTG = 'HTG', - HUF = 'HUF', - IDR = 'IDR', - ILS = 'ILS', - INR = 'INR', - IQD = 'IQD', - IRR = 'IRR', - ISK = 'ISK', - JMD = 'JMD', - JOD = 'JOD', - JPY = 'JPY', - KES = 'KES', - KGS = 'KGS', - KHR = 'KHR', - KMF = 'KMF', - KPW = 'KPW', - KRW = 'KRW', - KWD = 'KWD', - KYD = 'KYD', - KZT = 'KZT', - LAK = 'LAK', - LBP = 'LBP', - LKR = 'LKR', - LRD = 'LRD', - LSL = 'LSL', - LYD = 'LYD', - MAD = 'MAD', - MDL = 'MDL', - MGA = 'MGA', - MKD = 'MKD', - MMK = 'MMK', - MNT = 'MNT', - MOP = 'MOP', - MRU = 'MRU', - MUR = 'MUR', - MVR = 'MVR', - MWK = 'MWK', - MXN = 'MXN', - MYR = 'MYR', - MZN = 'MZN', - NAD = 'NAD', - NGN = 'NGN', - NIO = 'NIO', - NOK = 'NOK', - NPR = 'NPR', - NZD = 'NZD', - OMR = 'OMR', - PAB = 'PAB', - PEN = 'PEN', - PGK = 'PGK', - PHP = 'PHP', - PKR = 'PKR', - PLN = 'PLN', - PYG = 'PYG', - QAR = 'QAR', - RON = 'RON', - RSD = 'RSD', - RUB = 'RUB', - RWF = 'RWF', - SAR = 'SAR', - SBD = 'SBD', - SCR = 'SCR', - SDG = 'SDG', - SEK = 'SEK', - SGD = 'SGD', - SHP = 'SHP', - SLE = 'SLE', - SOS = 'SOS', - SRD = 'SRD', - SSP = 'SSP', - STN = 'STN', - SVC = 'SVC', - SYP = 'SYP', - SZL = 'SZL', - THB = 'THB', - TJS = 'TJS', - TMT = 'TMT', - TND = 'TND', - TOP = 'TOP', - TRY = 'TRY', - TTD = 'TTD', - TWD = 'TWD', - TZS = 'TZS', - UAH = 'UAH', - UGX = 'UGX', - USD = 'USD', - UYU = 'UYU', - UYW = 'UYW', - UZS = 'UZS', - VES = 'VES', - VND = 'VND', - VUV = 'VUV', - WST = 'WST', - XAF = 'XAF', - XAG = 'XAG', - XAU = 'XAU', - XCD = 'XCD', - XOF = 'XOF', - XPF = 'XPF', - YER = 'YER', - ZAR = 'ZAR', - ZMW = 'ZMW', - ZWL = 'ZWL', - USDC = 'USDC', -} diff --git a/src/frontend/generated/models/DeduplicationGoldenRecordStatusEnum.ts b/src/frontend/generated/models/DeduplicationGoldenRecordStatusEnum.ts deleted file mode 100644 index ddf5d1a50e..0000000000 --- a/src/frontend/generated/models/DeduplicationGoldenRecordStatusEnum.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `DUPLICATE` - Duplicate - * * `NEEDS_ADJUDICATION` - Needs Adjudication - * * `NOT_PROCESSED` - Not Processed - * * `POSTPONE` - Postpone - * * `UNIQUE` - Unique - */ -export enum DeduplicationGoldenRecordStatusEnum { - DUPLICATE = 'DUPLICATE', - NEEDS_ADJUDICATION = 'NEEDS_ADJUDICATION', - NOT_PROCESSED = 'NOT_PROCESSED', - POSTPONE = 'POSTPONE', - UNIQUE = 'UNIQUE', -} diff --git a/src/frontend/generated/models/Delegate.ts b/src/frontend/generated/models/Delegate.ts deleted file mode 100644 index 8bb79acef9..0000000000 --- a/src/frontend/generated/models/Delegate.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type Delegate = { - delegate_id: string; - delegated_for: Array; -}; - diff --git a/src/frontend/generated/models/DelegatePeople.ts b/src/frontend/generated/models/DelegatePeople.ts deleted file mode 100644 index 9bc541e2f8..0000000000 --- a/src/frontend/generated/models/DelegatePeople.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { Delegate } from './Delegate'; -export type DelegatePeople = { - delegates: Array; -}; - diff --git a/src/frontend/generated/models/DisabilityEnum.ts b/src/frontend/generated/models/DisabilityEnum.ts deleted file mode 100644 index c27e2106d9..0000000000 --- a/src/frontend/generated/models/DisabilityEnum.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `disabled` - disabled - * * `not disabled` - not disabled - */ -export enum DisabilityEnum { - DISABLED = 'disabled', - NOT_DISABLED = 'not disabled', -} diff --git a/src/frontend/generated/models/Document.ts b/src/frontend/generated/models/Document.ts deleted file mode 100644 index 9e30749fd8..0000000000 --- a/src/frontend/generated/models/Document.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { CountryEnum } from './CountryEnum'; -import type { DocumentStatusEnum } from './DocumentStatusEnum'; -import type { DocumentTypeEnum } from './DocumentTypeEnum'; -import type { RdiMergeStatusEnum } from './RdiMergeStatusEnum'; -export type Document = { - readonly id: string; - type: DocumentTypeEnum; - country: CountryEnum; - image?: string; - document_number: string; - rdi_merge_status?: RdiMergeStatusEnum; - is_removed?: boolean; - is_original?: boolean; - readonly created_at: string; - readonly updated_at: string; - last_sync_at?: string | null; - status?: DocumentStatusEnum; - cleared?: boolean; - cleared_date?: string; - issuance_date?: string | null; - expiry_date?: string | null; - is_migration_handled?: boolean; - cleared_by?: string | null; - /** - * If this object was copied from another, this field will contain the object it was copied from. - */ - copied_from?: string | null; -}; - diff --git a/src/frontend/generated/models/DocumentStatusEnum.ts b/src/frontend/generated/models/DocumentStatusEnum.ts deleted file mode 100644 index 27b528b467..0000000000 --- a/src/frontend/generated/models/DocumentStatusEnum.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `PENDING` - Pending - * * `VALID` - Valid - * * `NEED_INVESTIGATION` - Need Investigation - * * `INVALID` - Invalid - */ -export enum DocumentStatusEnum { - PENDING = 'PENDING', - VALID = 'VALID', - NEED_INVESTIGATION = 'NEED_INVESTIGATION', - INVALID = 'INVALID', -} diff --git a/src/frontend/generated/models/DocumentTypeEnum.ts b/src/frontend/generated/models/DocumentTypeEnum.ts deleted file mode 100644 index ba16e84653..0000000000 --- a/src/frontend/generated/models/DocumentTypeEnum.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `birth_certificate` - Birth Certificate - * * `drivers_license` - Driver's License - * * `electoral_card` - Electoral Card - * * `national_id` - National ID - * * `national_passport` - National Passport - * * `tax_id` - Tax Number Identification - * * `residence_permit_no` - Foreigner's Residence Permit - * * `bank_statement` - Bank Statement - * * `disability_certificate` - Disability Certificate - * * `foster_child` - Foster Child - * * `other_id` - Other - */ -export enum DocumentTypeEnum { - BIRTH_CERTIFICATE = 'birth_certificate', - DRIVERS_LICENSE = 'drivers_license', - ELECTORAL_CARD = 'electoral_card', - NATIONAL_ID = 'national_id', - NATIONAL_PASSPORT = 'national_passport', - TAX_ID = 'tax_id', - RESIDENCE_PERMIT_NO = 'residence_permit_no', - BANK_STATEMENT = 'bank_statement', - DISABILITY_CERTIFICATE = 'disability_certificate', - FOSTER_CHILD = 'foster_child', - OTHER_ID = 'other_id', -} diff --git a/src/frontend/generated/models/FollowUpPaymentPlan.ts b/src/frontend/generated/models/FollowUpPaymentPlan.ts deleted file mode 100644 index 862388eb28..0000000000 --- a/src/frontend/generated/models/FollowUpPaymentPlan.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type FollowUpPaymentPlan = { - readonly id: string; - unicef_id?: string | null; -}; - diff --git a/src/frontend/generated/models/FrequencyOfPaymentsEnum.ts b/src/frontend/generated/models/FrequencyOfPaymentsEnum.ts deleted file mode 100644 index ecbfa21717..0000000000 --- a/src/frontend/generated/models/FrequencyOfPaymentsEnum.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `ONE_OFF` - One-off - * * `REGULAR` - Regular - */ -export enum FrequencyOfPaymentsEnum { - ONE_OFF = 'ONE_OFF', - REGULAR = 'REGULAR', -} diff --git a/src/frontend/generated/models/HearingDisabilityEnum.ts b/src/frontend/generated/models/HearingDisabilityEnum.ts deleted file mode 100644 index 44ab2febb4..0000000000 --- a/src/frontend/generated/models/HearingDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum HearingDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/Household.ts b/src/frontend/generated/models/Household.ts deleted file mode 100644 index aeb901505d..0000000000 --- a/src/frontend/generated/models/Household.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { BlankEnum } from './BlankEnum'; -import type { CollectTypeEnum } from './CollectTypeEnum'; -import type { ConsentSharingEnum } from './ConsentSharingEnum'; -import type { CountryEnum } from './CountryEnum'; -import type { CountryOriginEnum } from './CountryOriginEnum'; -import type { CurrencyEnum } from './CurrencyEnum'; -import type { Individual } from './Individual'; -import type { OrgEnumeratorEnum } from './OrgEnumeratorEnum'; -import type { RdiMergeStatusEnum } from './RdiMergeStatusEnum'; -import type { RegistrationMethodEnum } from './RegistrationMethodEnum'; -import type { ResidenceStatusEnum } from './ResidenceStatusEnum'; -export type Household = { - first_registration_date?: string; - last_registration_date?: string; - members: Array; - country: CountryEnum; - country_origin?: CountryOriginEnum; - size?: number | null; - rdi_merge_status?: RdiMergeStatusEnum; - is_original?: boolean; - readonly created_at: string; - readonly updated_at: string; - is_removed?: boolean; - removed_date?: string | null; - last_sync_at?: string | null; - internal_data?: any; - withdrawn?: boolean; - withdrawn_date?: string | null; - consent_sign?: string; - consent?: boolean | null; - consent_sharing?: (ConsentSharingEnum | BlankEnum); - residence_status?: (ResidenceStatusEnum | BlankEnum); - address?: string; - zip_code?: string | null; - female_age_group_0_5_count?: number | null; - female_age_group_6_11_count?: number | null; - female_age_group_12_17_count?: number | null; - female_age_group_18_59_count?: number | null; - female_age_group_60_count?: number | null; - pregnant_count?: number | null; - male_age_group_0_5_count?: number | null; - male_age_group_6_11_count?: number | null; - male_age_group_12_17_count?: number | null; - male_age_group_18_59_count?: number | null; - male_age_group_60_count?: number | null; - female_age_group_0_5_disabled_count?: number | null; - female_age_group_6_11_disabled_count?: number | null; - female_age_group_12_17_disabled_count?: number | null; - female_age_group_18_59_disabled_count?: number | null; - female_age_group_60_disabled_count?: number | null; - male_age_group_0_5_disabled_count?: number | null; - male_age_group_6_11_disabled_count?: number | null; - male_age_group_12_17_disabled_count?: number | null; - male_age_group_18_59_disabled_count?: number | null; - male_age_group_60_disabled_count?: number | null; - children_count?: number | null; - male_children_count?: number | null; - female_children_count?: number | null; - children_disabled_count?: number | null; - male_children_disabled_count?: number | null; - female_children_disabled_count?: number | null; - returnee?: boolean | null; - flex_fields?: any; - fchild_hoh?: boolean | null; - child_hoh?: boolean | null; - start?: string | null; - deviceid?: string; - name_enumerator?: string; - org_enumerator?: (OrgEnumeratorEnum | BlankEnum); - org_name_enumerator?: string; - village?: string; - registration_method?: (RegistrationMethodEnum | BlankEnum); - currency?: (CurrencyEnum | BlankEnum); - unhcr_id?: string; - registration_id?: string | null; - program_registration_id?: string | null; - total_cash_received_usd?: string | null; - total_cash_received?: string | null; - family_id?: string | null; - origin_unicef_id?: string | null; - is_migration_handled?: boolean; - migrated_at?: string | null; - collect_type?: CollectTypeEnum; - enumerator_rec_id?: number | null; - mis_unicef_id?: string | null; - flex_registrations_record_id?: number | null; - household_collection?: number | null; - admin_area?: string | null; - admin1?: string | null; - admin2?: string | null; - admin3?: string | null; - admin4?: string | null; - storage_obj?: number | null; - /** - * If this household was copied from another household, this field will contain the household it was copied from. - */ - copied_from?: string | null; - /** - * This is only used to track collector (primary or secondary) of a household. - * They may still be a HOH of this household or any other household. - * Through model will contain the role (ROLE_CHOICE) they are connected with on. - */ - readonly representatives: Array; - programs?: Array; -}; - diff --git a/src/frontend/generated/models/Individual.ts b/src/frontend/generated/models/Individual.ts deleted file mode 100644 index 70081ca22b..0000000000 --- a/src/frontend/generated/models/Individual.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { BiometricDeduplicationBatchStatusEnum } from './BiometricDeduplicationBatchStatusEnum'; -import type { BiometricDeduplicationGoldenRecordStatusEnum } from './BiometricDeduplicationGoldenRecordStatusEnum'; -import type { BlankEnum } from './BlankEnum'; -import type { CommsDisabilityEnum } from './CommsDisabilityEnum'; -import type { DeduplicationGoldenRecordStatusEnum } from './DeduplicationGoldenRecordStatusEnum'; -import type { DisabilityEnum } from './DisabilityEnum'; -import type { Document } from './Document'; -import type { HearingDisabilityEnum } from './HearingDisabilityEnum'; -import type { MemoryDisabilityEnum } from './MemoryDisabilityEnum'; -import type { NullEnum } from './NullEnum'; -import type { PhysicalDisabilityEnum } from './PhysicalDisabilityEnum'; -import type { PreferredLanguageEnum } from './PreferredLanguageEnum'; -import type { RdiMergeStatusEnum } from './RdiMergeStatusEnum'; -import type { RelationshipEnum } from './RelationshipEnum'; -import type { SeeingDisabilityEnum } from './SeeingDisabilityEnum'; -import type { SelfcareDisabilityEnum } from './SelfcareDisabilityEnum'; -import type { SexEnum } from './SexEnum'; -import type { WorkStatusEnum } from './WorkStatusEnum'; -export type Individual = { - first_registration_date?: string; - last_registration_date?: string; - readonly household: string; - role?: string; - observed_disability?: string; - country_origin?: string; - marital_status?: string; - documents?: Array; - birth_date: string; - rdi_merge_status?: RdiMergeStatusEnum; - is_original?: boolean; - is_removed?: boolean; - removed_date?: string | null; - last_sync_at?: string | null; - internal_data?: any; - duplicate?: boolean; - duplicate_date?: string | null; - withdrawn?: boolean; - withdrawn_date?: string | null; - individual_id?: string; - photo?: string; - full_name: string; - given_name?: string; - middle_name?: string; - family_name?: string; - sex: SexEnum; - estimated_birth_date?: boolean; - phone_no?: string; - phone_no_valid?: boolean | null; - phone_no_alternative?: string; - phone_no_alternative_valid?: boolean | null; - email?: string; - payment_delivery_phone_no?: string | null; - /** - * This represents the MEMBER relationship. can be blank - * as well if household is null! - * - * * `UNKNOWN` - Unknown - * * `AUNT_UNCLE` - Aunt / Uncle - * * `BROTHER_SISTER` - Brother / Sister - * * `COUSIN` - Cousin - * * `DAUGHTERINLAW_SONINLAW` - Daughter-in-law / Son-in-law - * * `GRANDDAUGHER_GRANDSON` - Granddaughter / Grandson - * * `GRANDMOTHER_GRANDFATHER` - Grandmother / Grandfather - * * `HEAD` - Head of household (self) - * * `MOTHER_FATHER` - Mother / Father - * * `MOTHERINLAW_FATHERINLAW` - Mother-in-law / Father-in-law - * * `NEPHEW_NIECE` - Nephew / Niece - * * `NON_BENEFICIARY` - Not a Family Member. Can only act as a recipient. - * * `OTHER` - Other - * * `SISTERINLAW_BROTHERINLAW` - Sister-in-law / Brother-in-law - * * `SON_DAUGHTER` - Son / Daughter - * * `WIFE_HUSBAND` - Wife / Husband - * * `FOSTER_CHILD` - Foster child - * * `FREE_UNION` - Free union - */ - relationship?: (RelationshipEnum | BlankEnum); - work_status?: (WorkStatusEnum | BlankEnum); - flex_fields?: any; - enrolled_in_nutrition_programme?: boolean | null; - administration_of_rutf?: boolean | null; - deduplication_golden_record_status?: DeduplicationGoldenRecordStatusEnum; - biometric_deduplication_golden_record_status?: BiometricDeduplicationGoldenRecordStatusEnum; - biometric_deduplication_batch_status?: BiometricDeduplicationBatchStatusEnum; - biometric_deduplication_golden_record_results?: any; - biometric_deduplication_batch_results?: any; - imported_individual_id?: string | null; - sanction_list_possible_match?: boolean; - sanction_list_confirmed_match?: boolean; - pregnant?: boolean | null; - disability?: DisabilityEnum; - disability_certificate_picture?: string | null; - seeing_disability?: (SeeingDisabilityEnum | BlankEnum); - hearing_disability?: (HearingDisabilityEnum | BlankEnum); - physical_disability?: (PhysicalDisabilityEnum | BlankEnum); - memory_disability?: (MemoryDisabilityEnum | BlankEnum); - selfcare_disability?: (SelfcareDisabilityEnum | BlankEnum); - comms_disability?: (CommsDisabilityEnum | BlankEnum); - who_answers_phone?: string; - who_answers_alt_phone?: string; - fchild_hoh?: boolean; - child_hoh?: boolean; - /** - * Kobo asset ID, Xlsx row ID, Aurora source ID - */ - detail_id?: string | null; - registration_id?: string | null; - program_registration_id?: string | null; - preferred_language?: (PreferredLanguageEnum | BlankEnum | NullEnum) | null; - relationship_confirmed?: boolean; - age_at_registration?: number | null; - wallet_name?: string; - blockchain_name?: string; - wallet_address?: string; - origin_unicef_id?: string | null; - is_migration_handled?: boolean; - migrated_at?: string | null; - mis_unicef_id?: string | null; - individual_collection?: number | null; - program?: string | null; - /** - * If this individual was copied from another individual, this field will contain the individual it was copied from. - */ - copied_from?: string | null; -}; - diff --git a/src/frontend/generated/models/MemoryDisabilityEnum.ts b/src/frontend/generated/models/MemoryDisabilityEnum.ts deleted file mode 100644 index bb7417cc8f..0000000000 --- a/src/frontend/generated/models/MemoryDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum MemoryDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/NullEnum.ts b/src/frontend/generated/models/NullEnum.ts deleted file mode 100644 index 231d6bdd61..0000000000 --- a/src/frontend/generated/models/NullEnum.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type NullEnum = { -}; - diff --git a/src/frontend/generated/models/OrgEnumeratorEnum.ts b/src/frontend/generated/models/OrgEnumeratorEnum.ts deleted file mode 100644 index 6fb2d07e33..0000000000 --- a/src/frontend/generated/models/OrgEnumeratorEnum.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `PARTNER` - Partner - * * `UNICEF` - UNICEF - */ -export enum OrgEnumeratorEnum { - PARTNER = 'PARTNER', - UNICEF = 'UNICEF', -} diff --git a/src/frontend/generated/models/PaginatedAreaList.ts b/src/frontend/generated/models/PaginatedAreaList.ts deleted file mode 100644 index 33f099fb57..0000000000 --- a/src/frontend/generated/models/PaginatedAreaList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { Area } from './Area'; -export type PaginatedAreaList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedAreaListList.ts b/src/frontend/generated/models/PaginatedAreaListList.ts deleted file mode 100644 index a8e4733fba..0000000000 --- a/src/frontend/generated/models/PaginatedAreaListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { AreaList } from './AreaList'; -export type PaginatedAreaListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedAreaTypeList.ts b/src/frontend/generated/models/PaginatedAreaTypeList.ts deleted file mode 100644 index 8d23f1dff3..0000000000 --- a/src/frontend/generated/models/PaginatedAreaTypeList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { AreaType } from './AreaType'; -export type PaginatedAreaTypeList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedBusinessAreaList.ts b/src/frontend/generated/models/PaginatedBusinessAreaList.ts deleted file mode 100644 index 083d867080..0000000000 --- a/src/frontend/generated/models/PaginatedBusinessAreaList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { BusinessArea } from './BusinessArea'; -export type PaginatedBusinessAreaList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedPaymentPlanList.ts b/src/frontend/generated/models/PaginatedPaymentPlanList.ts deleted file mode 100644 index 28b171f165..0000000000 --- a/src/frontend/generated/models/PaginatedPaymentPlanList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { PaymentPlan } from './PaymentPlan'; -export type PaginatedPaymentPlanList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedPeriodicDataUpdateTemplateListList.ts b/src/frontend/generated/models/PaginatedPeriodicDataUpdateTemplateListList.ts deleted file mode 100644 index 3a4ea7705e..0000000000 --- a/src/frontend/generated/models/PaginatedPeriodicDataUpdateTemplateListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { PeriodicDataUpdateTemplateList } from './PeriodicDataUpdateTemplateList'; -export type PaginatedPeriodicDataUpdateTemplateListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedPeriodicDataUpdateUploadListList.ts b/src/frontend/generated/models/PaginatedPeriodicDataUpdateUploadListList.ts deleted file mode 100644 index 647e2b1afd..0000000000 --- a/src/frontend/generated/models/PaginatedPeriodicDataUpdateUploadListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { PeriodicDataUpdateUploadList } from './PeriodicDataUpdateUploadList'; -export type PaginatedPeriodicDataUpdateUploadListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedPeriodicFieldList.ts b/src/frontend/generated/models/PaginatedPeriodicFieldList.ts deleted file mode 100644 index f6d048d7fb..0000000000 --- a/src/frontend/generated/models/PaginatedPeriodicFieldList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { PeriodicField } from './PeriodicField'; -export type PaginatedPeriodicFieldList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedProgramCycleListList.ts b/src/frontend/generated/models/PaginatedProgramCycleListList.ts deleted file mode 100644 index 0a805fa263..0000000000 --- a/src/frontend/generated/models/PaginatedProgramCycleListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { ProgramCycleList } from './ProgramCycleList'; -export type PaginatedProgramCycleListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedProgramGlobalList.ts b/src/frontend/generated/models/PaginatedProgramGlobalList.ts deleted file mode 100644 index 168285da8f..0000000000 --- a/src/frontend/generated/models/PaginatedProgramGlobalList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { ProgramGlobal } from './ProgramGlobal'; -export type PaginatedProgramGlobalList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedRegistrationDataImportListList.ts b/src/frontend/generated/models/PaginatedRegistrationDataImportListList.ts deleted file mode 100644 index e6ebd10a75..0000000000 --- a/src/frontend/generated/models/PaginatedRegistrationDataImportListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { RegistrationDataImportList } from './RegistrationDataImportList'; -export type PaginatedRegistrationDataImportListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PaginatedTargetPopulationListList.ts b/src/frontend/generated/models/PaginatedTargetPopulationListList.ts deleted file mode 100644 index 0f3af7faa3..0000000000 --- a/src/frontend/generated/models/PaginatedTargetPopulationListList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { TargetPopulationList } from './TargetPopulationList'; -export type PaginatedTargetPopulationListList = { - count: number; - next?: string | null; - previous?: string | null; - results: Array; -}; - diff --git a/src/frontend/generated/models/PatchedProgramCycleUpdate.ts b/src/frontend/generated/models/PatchedProgramCycleUpdate.ts deleted file mode 100644 index ed3f8058b9..0000000000 --- a/src/frontend/generated/models/PatchedProgramCycleUpdate.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PatchedProgramCycleUpdate = { - title?: string; - start_date?: string; - end_date?: string; -}; - diff --git a/src/frontend/generated/models/PatchedRDI.ts b/src/frontend/generated/models/PatchedRDI.ts deleted file mode 100644 index 7e12ed225d..0000000000 --- a/src/frontend/generated/models/PatchedRDI.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PatchedRDI = { - name?: string; - program?: string; -}; - diff --git a/src/frontend/generated/models/PaymentPlan.ts b/src/frontend/generated/models/PaymentPlan.ts deleted file mode 100644 index d845fed880..0000000000 --- a/src/frontend/generated/models/PaymentPlan.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { FollowUpPaymentPlan } from './FollowUpPaymentPlan'; -export type PaymentPlan = { - id: string; - unicef_id?: string | null; - name?: string | null; - status: string; - target_population?: string | null; - total_households_count?: number; - currency: string; - total_entitled_quantity?: string | null; - total_delivered_quantity?: string | null; - total_undelivered_quantity?: string | null; - dispersion_start_date?: string | null; - dispersion_end_date?: string | null; - is_follow_up?: boolean; - readonly follow_ups: Array; - program: string; - program_id: string; - readonly last_approval_process_date: string | null; - readonly last_approval_process_by: string | null; -}; - diff --git a/src/frontend/generated/models/PaymentPlanBulkAction.ts b/src/frontend/generated/models/PaymentPlanBulkAction.ts deleted file mode 100644 index d028538669..0000000000 --- a/src/frontend/generated/models/PaymentPlanBulkAction.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { ActionEnum } from './ActionEnum'; -export type PaymentPlanBulkAction = { - ids: Array; - action: ActionEnum; - comment?: string; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateTemplateCreate.ts b/src/frontend/generated/models/PeriodicDataUpdateTemplateCreate.ts deleted file mode 100644 index 6f03e6ecc6..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateTemplateCreate.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateTemplateCreate = { - readonly id: number; - rounds_data: any; - filters?: any; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateTemplateDetail.ts b/src/frontend/generated/models/PeriodicDataUpdateTemplateDetail.ts deleted file mode 100644 index a80bca3307..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateTemplateDetail.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateTemplateDetail = { - readonly id: number; - rounds_data: any; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateTemplateList.ts b/src/frontend/generated/models/PeriodicDataUpdateTemplateList.ts deleted file mode 100644 index 99ba796684..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateTemplateList.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateTemplateList = { - readonly id: number; - number_of_records?: number | null; - readonly created_at: string; - created_by?: string; - status: string; - status_display: string; - can_export: boolean; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateUpload.ts b/src/frontend/generated/models/PeriodicDataUpdateUpload.ts deleted file mode 100644 index 8eb83e4e3f..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateUpload.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateUpload = { - file: string; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateUploadDetail.ts b/src/frontend/generated/models/PeriodicDataUpdateUploadDetail.ts deleted file mode 100644 index 5cbc3269be..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateUploadDetail.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateUploadDetail = { - readonly id: number; - template: number; - readonly created_at: string; - created_by?: string; - status: string; - status_display: string; - errors_info: any; -}; - diff --git a/src/frontend/generated/models/PeriodicDataUpdateUploadList.ts b/src/frontend/generated/models/PeriodicDataUpdateUploadList.ts deleted file mode 100644 index c4dc6819a0..0000000000 --- a/src/frontend/generated/models/PeriodicDataUpdateUploadList.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type PeriodicDataUpdateUploadList = { - readonly id: number; - template: number; - readonly created_at: string; - created_by?: string; - status: string; - status_display: string; -}; - diff --git a/src/frontend/generated/models/PeriodicField.ts b/src/frontend/generated/models/PeriodicField.ts deleted file mode 100644 index f68c196de3..0000000000 --- a/src/frontend/generated/models/PeriodicField.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { PeriodicFieldData } from './PeriodicFieldData'; -export type PeriodicField = { - readonly id: string; - name: string; - readonly label: string; - pdu_data: PeriodicFieldData; -}; - diff --git a/src/frontend/generated/models/PeriodicFieldData.ts b/src/frontend/generated/models/PeriodicFieldData.ts deleted file mode 100644 index e1846a7474..0000000000 --- a/src/frontend/generated/models/PeriodicFieldData.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { SubtypeEnum } from './SubtypeEnum'; -export type PeriodicFieldData = { - subtype: SubtypeEnum; - number_of_rounds: number; - rounds_names?: Array; -}; - diff --git a/src/frontend/generated/models/PhysicalDisabilityEnum.ts b/src/frontend/generated/models/PhysicalDisabilityEnum.ts deleted file mode 100644 index 0635321703..0000000000 --- a/src/frontend/generated/models/PhysicalDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum PhysicalDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/PreferredLanguageEnum.ts b/src/frontend/generated/models/PreferredLanguageEnum.ts deleted file mode 100644 index e4adacf605..0000000000 --- a/src/frontend/generated/models/PreferredLanguageEnum.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `en-us` - English | English - * * `ar-ae` - | عربيArabic - * * `cs-cz` - čeština | Czech - * * `de-de` - Deutsch - * * `es-es` - Español | Spanish - * * `fr-fr` - Français | French - * * `hu-hu` - Magyar | Hungarian - * * `it-it` - Italiano - * * `pl-pl` - Polskie | Polish - * * `pt-pt` - Português - * * `ro-ro` - Română - * * `ru-ru` - Русский | Russian - * * `si-si` - සිංහල | Sinhala - * * `ta-ta` - தமிழ் | Tamil - * * `uk-ua` - український | Ukrainian - * * `hi-hi` - हिंदी - */ -export enum PreferredLanguageEnum { - EN_US = 'en-us', - AR_AE = 'ar-ae', - CS_CZ = 'cs-cz', - DE_DE = 'de-de', - ES_ES = 'es-es', - FR_FR = 'fr-fr', - HU_HU = 'hu-hu', - IT_IT = 'it-it', - PL_PL = 'pl-pl', - PT_PT = 'pt-pt', - RO_RO = 'ro-ro', - RU_RU = 'ru-ru', - SI_SI = 'si-si', - TA_TA = 'ta-ta', - UK_UA = 'uk-ua', - HI_HI = 'hi-hi', -} diff --git a/src/frontend/generated/models/Program.ts b/src/frontend/generated/models/Program.ts deleted file mode 100644 index 0146bd58a1..0000000000 --- a/src/frontend/generated/models/Program.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { FrequencyOfPaymentsEnum } from './FrequencyOfPaymentsEnum'; -import type { SectorEnum } from './SectorEnum'; -export type Program = { - readonly id: string; - name: string; - start_date: string; - end_date?: string | null; - budget: string; - frequency_of_payments: FrequencyOfPaymentsEnum; - sector: SectorEnum; - cash_plus: boolean; - population_goal: number; - data_collecting_type: number; - beneficiary_group: string; -}; - diff --git a/src/frontend/generated/models/ProgramCycleCreate.ts b/src/frontend/generated/models/ProgramCycleCreate.ts deleted file mode 100644 index 9cfc2e8e70..0000000000 --- a/src/frontend/generated/models/ProgramCycleCreate.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type ProgramCycleCreate = { - title: string; - start_date: string; - end_date?: string; -}; - diff --git a/src/frontend/generated/models/ProgramCycleList.ts b/src/frontend/generated/models/ProgramCycleList.ts deleted file mode 100644 index 655216dc88..0000000000 --- a/src/frontend/generated/models/ProgramCycleList.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type ProgramCycleList = { - readonly id: string; - title?: string | null; - status: string; - start_date: string; - end_date: string; - program_start_date: string; - program_end_date: string; - readonly created_at: string; - readonly total_entitled_quantity_usd: number; - readonly total_undelivered_quantity_usd: number; - readonly total_delivered_quantity_usd: number; - readonly frequency_of_payments: string; - readonly created_by: string; - readonly admin_url: string | null; - readonly can_remove_cycle: boolean; -}; - diff --git a/src/frontend/generated/models/ProgramCycleUpdate.ts b/src/frontend/generated/models/ProgramCycleUpdate.ts deleted file mode 100644 index 7194f2af67..0000000000 --- a/src/frontend/generated/models/ProgramCycleUpdate.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type ProgramCycleUpdate = { - title?: string; - start_date?: string; - end_date?: string; -}; - diff --git a/src/frontend/generated/models/ProgramGlobal.ts b/src/frontend/generated/models/ProgramGlobal.ts deleted file mode 100644 index 75ea27cbfc..0000000000 --- a/src/frontend/generated/models/ProgramGlobal.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { BlankEnum } from './BlankEnum'; -import type { FrequencyOfPaymentsEnum } from './FrequencyOfPaymentsEnum'; -import type { NullEnum } from './NullEnum'; -import type { ProgramGlobalStatusEnum } from './ProgramGlobalStatusEnum'; -import type { ScopeEnum } from './ScopeEnum'; -import type { SectorEnum } from './SectorEnum'; -export type ProgramGlobal = { - readonly id: string; - name: string; - programme_code?: string | null; - status: ProgramGlobalStatusEnum; - start_date: string; - end_date?: string | null; - budget: string; - frequency_of_payments: FrequencyOfPaymentsEnum; - sector: SectorEnum; - scope?: (ScopeEnum | BlankEnum | NullEnum) | null; - cash_plus: boolean; - population_goal: number; - readonly business_area_code: string; -}; - diff --git a/src/frontend/generated/models/ProgramGlobalStatusEnum.ts b/src/frontend/generated/models/ProgramGlobalStatusEnum.ts deleted file mode 100644 index ff22365e2a..0000000000 --- a/src/frontend/generated/models/ProgramGlobalStatusEnum.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `ACTIVE` - Active - * * `DRAFT` - Draft - * * `FINISHED` - Finished - */ -export enum ProgramGlobalStatusEnum { - ACTIVE = 'ACTIVE', - DRAFT = 'DRAFT', - FINISHED = 'FINISHED', -} diff --git a/src/frontend/generated/models/PushPeople.ts b/src/frontend/generated/models/PushPeople.ts deleted file mode 100644 index eae2f9ef71..0000000000 --- a/src/frontend/generated/models/PushPeople.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { Admin1Enum } from './Admin1Enum'; -import type { Admin2Enum } from './Admin2Enum'; -import type { Admin3Enum } from './Admin3Enum'; -import type { Admin4Enum } from './Admin4Enum'; -import type { BiometricDeduplicationBatchStatusEnum } from './BiometricDeduplicationBatchStatusEnum'; -import type { BiometricDeduplicationGoldenRecordStatusEnum } from './BiometricDeduplicationGoldenRecordStatusEnum'; -import type { BlankEnum } from './BlankEnum'; -import type { CommsDisabilityEnum } from './CommsDisabilityEnum'; -import type { CountryEnum } from './CountryEnum'; -import type { CountryOriginEnum } from './CountryOriginEnum'; -import type { DeduplicationGoldenRecordStatusEnum } from './DeduplicationGoldenRecordStatusEnum'; -import type { DisabilityEnum } from './DisabilityEnum'; -import type { Document } from './Document'; -import type { HearingDisabilityEnum } from './HearingDisabilityEnum'; -import type { MemoryDisabilityEnum } from './MemoryDisabilityEnum'; -import type { NullEnum } from './NullEnum'; -import type { PhysicalDisabilityEnum } from './PhysicalDisabilityEnum'; -import type { PreferredLanguageEnum } from './PreferredLanguageEnum'; -import type { PushPeopleTypeEnum } from './PushPeopleTypeEnum'; -import type { RdiMergeStatusEnum } from './RdiMergeStatusEnum'; -import type { RelationshipEnum } from './RelationshipEnum'; -import type { ResidenceStatusEnum } from './ResidenceStatusEnum'; -import type { SeeingDisabilityEnum } from './SeeingDisabilityEnum'; -import type { SelfcareDisabilityEnum } from './SelfcareDisabilityEnum'; -import type { SexEnum } from './SexEnum'; -import type { WorkStatusEnum } from './WorkStatusEnum'; -export type PushPeople = { - first_registration_date?: string; - last_registration_date?: string; - observed_disability?: string; - marital_status?: string; - documents?: Array; - birth_date: string; - type: (PushPeopleTypeEnum | BlankEnum); - country_origin?: CountryOriginEnum; - country: CountryEnum; - residence_status: (ResidenceStatusEnum | BlankEnum); - village?: string | null; - phone_no?: string | null; - phone_no_alternative?: string | null; - admin1?: (Admin1Enum | BlankEnum | NullEnum) | null; - admin2?: (Admin2Enum | BlankEnum | NullEnum) | null; - admin3?: (Admin3Enum | BlankEnum | NullEnum) | null; - admin4?: (Admin4Enum | BlankEnum | NullEnum) | null; - rdi_merge_status?: RdiMergeStatusEnum; - is_original?: boolean; - is_removed?: boolean; - removed_date?: string | null; - last_sync_at?: string | null; - /** - * record revision number - */ - version?: number; - internal_data?: any; - duplicate?: boolean; - duplicate_date?: string | null; - withdrawn?: boolean; - withdrawn_date?: string | null; - individual_id?: string; - photo?: string; - full_name: string; - given_name?: string; - middle_name?: string; - family_name?: string; - sex: SexEnum; - estimated_birth_date?: boolean; - phone_no_valid?: boolean | null; - phone_no_alternative_valid?: boolean | null; - email?: string; - payment_delivery_phone_no?: string | null; - /** - * This represents the MEMBER relationship. can be blank - * as well if household is null! - * - * * `UNKNOWN` - Unknown - * * `AUNT_UNCLE` - Aunt / Uncle - * * `BROTHER_SISTER` - Brother / Sister - * * `COUSIN` - Cousin - * * `DAUGHTERINLAW_SONINLAW` - Daughter-in-law / Son-in-law - * * `GRANDDAUGHER_GRANDSON` - Granddaughter / Grandson - * * `GRANDMOTHER_GRANDFATHER` - Grandmother / Grandfather - * * `HEAD` - Head of household (self) - * * `MOTHER_FATHER` - Mother / Father - * * `MOTHERINLAW_FATHERINLAW` - Mother-in-law / Father-in-law - * * `NEPHEW_NIECE` - Nephew / Niece - * * `NON_BENEFICIARY` - Not a Family Member. Can only act as a recipient. - * * `OTHER` - Other - * * `SISTERINLAW_BROTHERINLAW` - Sister-in-law / Brother-in-law - * * `SON_DAUGHTER` - Son / Daughter - * * `WIFE_HUSBAND` - Wife / Husband - * * `FOSTER_CHILD` - Foster child - * * `FREE_UNION` - Free union - */ - relationship?: (RelationshipEnum | BlankEnum); - work_status?: (WorkStatusEnum | BlankEnum); - flex_fields?: any; - enrolled_in_nutrition_programme?: boolean | null; - administration_of_rutf?: boolean | null; - deduplication_golden_record_status?: DeduplicationGoldenRecordStatusEnum; - biometric_deduplication_golden_record_status?: BiometricDeduplicationGoldenRecordStatusEnum; - biometric_deduplication_batch_status?: BiometricDeduplicationBatchStatusEnum; - biometric_deduplication_golden_record_results?: any; - biometric_deduplication_batch_results?: any; - imported_individual_id?: string | null; - sanction_list_possible_match?: boolean; - sanction_list_confirmed_match?: boolean; - pregnant?: boolean | null; - disability?: DisabilityEnum; - disability_certificate_picture?: string | null; - seeing_disability?: (SeeingDisabilityEnum | BlankEnum); - hearing_disability?: (HearingDisabilityEnum | BlankEnum); - physical_disability?: (PhysicalDisabilityEnum | BlankEnum); - memory_disability?: (MemoryDisabilityEnum | BlankEnum); - selfcare_disability?: (SelfcareDisabilityEnum | BlankEnum); - comms_disability?: (CommsDisabilityEnum | BlankEnum); - who_answers_phone?: string; - who_answers_alt_phone?: string; - fchild_hoh?: boolean; - child_hoh?: boolean; - registration_id?: string | null; - program_registration_id?: string | null; - preferred_language?: (PreferredLanguageEnum | BlankEnum | NullEnum) | null; - relationship_confirmed?: boolean; - age_at_registration?: number | null; - wallet_name?: string; - blockchain_name?: string; - wallet_address?: string; - origin_unicef_id?: string | null; - is_migration_handled?: boolean; - migrated_at?: string | null; - mis_unicef_id?: string | null; - vector_column?: string | null; - individual_collection?: number | null; - program?: string | null; - /** - * If this individual was copied from another individual, this field will contain the individual it was copied from. - */ - copied_from?: string | null; -}; - diff --git a/src/frontend/generated/models/PushPeopleTypeEnum.ts b/src/frontend/generated/models/PushPeopleTypeEnum.ts deleted file mode 100644 index d09e54fef2..0000000000 --- a/src/frontend/generated/models/PushPeopleTypeEnum.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `NON_BENEFICIARY` - Non Beneficiary - */ -export enum PushPeopleTypeEnum { - NON_BENEFICIARY = 'NON_BENEFICIARY', -} diff --git a/src/frontend/generated/models/RDI.ts b/src/frontend/generated/models/RDI.ts deleted file mode 100644 index 062643700c..0000000000 --- a/src/frontend/generated/models/RDI.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type RDI = { - name: string; - program: string; -}; - diff --git a/src/frontend/generated/models/RDINested.ts b/src/frontend/generated/models/RDINested.ts deleted file mode 100644 index c3c4f4117f..0000000000 --- a/src/frontend/generated/models/RDINested.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { Household } from './Household'; -export type RDINested = { - name: string; - households: Array; - program: string; -}; - diff --git a/src/frontend/generated/models/RdiMergeStatusEnum.ts b/src/frontend/generated/models/RdiMergeStatusEnum.ts deleted file mode 100644 index ec5feb792d..0000000000 --- a/src/frontend/generated/models/RdiMergeStatusEnum.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `PENDING` - Pending - * * `MERGED` - Merged - */ -export enum RdiMergeStatusEnum { - PENDING = 'PENDING', - MERGED = 'MERGED', -} diff --git a/src/frontend/generated/models/RegistrationDataImportList.ts b/src/frontend/generated/models/RegistrationDataImportList.ts deleted file mode 100644 index 255af0d15e..0000000000 --- a/src/frontend/generated/models/RegistrationDataImportList.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type RegistrationDataImportList = { - readonly id: string; - name: string; - status: string; - data_source: string; - imported_by?: string; - readonly created_at: string; -}; - diff --git a/src/frontend/generated/models/RegistrationMethodEnum.ts b/src/frontend/generated/models/RegistrationMethodEnum.ts deleted file mode 100644 index 2fa9eb3197..0000000000 --- a/src/frontend/generated/models/RegistrationMethodEnum.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `COMMUNITY` - Community-level Registration - * * `HH_REGISTRATION` - Household Registration - */ -export enum RegistrationMethodEnum { - COMMUNITY = 'COMMUNITY', - HH_REGISTRATION = 'HH_REGISTRATION', -} diff --git a/src/frontend/generated/models/RelationshipEnum.ts b/src/frontend/generated/models/RelationshipEnum.ts deleted file mode 100644 index 8863da6c94..0000000000 --- a/src/frontend/generated/models/RelationshipEnum.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `UNKNOWN` - Unknown - * * `AUNT_UNCLE` - Aunt / Uncle - * * `BROTHER_SISTER` - Brother / Sister - * * `COUSIN` - Cousin - * * `DAUGHTERINLAW_SONINLAW` - Daughter-in-law / Son-in-law - * * `GRANDDAUGHER_GRANDSON` - Granddaughter / Grandson - * * `GRANDMOTHER_GRANDFATHER` - Grandmother / Grandfather - * * `HEAD` - Head of household (self) - * * `MOTHER_FATHER` - Mother / Father - * * `MOTHERINLAW_FATHERINLAW` - Mother-in-law / Father-in-law - * * `NEPHEW_NIECE` - Nephew / Niece - * * `NON_BENEFICIARY` - Not a Family Member. Can only act as a recipient. - * * `OTHER` - Other - * * `SISTERINLAW_BROTHERINLAW` - Sister-in-law / Brother-in-law - * * `SON_DAUGHTER` - Son / Daughter - * * `WIFE_HUSBAND` - Wife / Husband - * * `FOSTER_CHILD` - Foster child - * * `FREE_UNION` - Free union - */ -export enum RelationshipEnum { - UNKNOWN = 'UNKNOWN', - AUNT_UNCLE = 'AUNT_UNCLE', - BROTHER_SISTER = 'BROTHER_SISTER', - COUSIN = 'COUSIN', - DAUGHTERINLAW_SONINLAW = 'DAUGHTERINLAW_SONINLAW', - GRANDDAUGHER_GRANDSON = 'GRANDDAUGHER_GRANDSON', - GRANDMOTHER_GRANDFATHER = 'GRANDMOTHER_GRANDFATHER', - HEAD = 'HEAD', - MOTHER_FATHER = 'MOTHER_FATHER', - MOTHERINLAW_FATHERINLAW = 'MOTHERINLAW_FATHERINLAW', - NEPHEW_NIECE = 'NEPHEW_NIECE', - NON_BENEFICIARY = 'NON_BENEFICIARY', - OTHER = 'OTHER', - SISTERINLAW_BROTHERINLAW = 'SISTERINLAW_BROTHERINLAW', - SON_DAUGHTER = 'SON_DAUGHTER', - WIFE_HUSBAND = 'WIFE_HUSBAND', - FOSTER_CHILD = 'FOSTER_CHILD', - FREE_UNION = 'FREE_UNION', -} diff --git a/src/frontend/generated/models/ResidenceStatusEnum.ts b/src/frontend/generated/models/ResidenceStatusEnum.ts deleted file mode 100644 index 9d2c6168d2..0000000000 --- a/src/frontend/generated/models/ResidenceStatusEnum.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `IDP` - Displaced | Internally Displaced People - * * `REFUGEE` - Displaced | Refugee / Asylum Seeker - * * `OTHERS_OF_CONCERN` - Displaced | Others of Concern - * * `HOST` - Non-displaced | Host - * * `NON_HOST` - Non-displaced | Non-host - * * `RETURNEE` - Displaced | Returnee - */ -export enum ResidenceStatusEnum { - IDP = 'IDP', - REFUGEE = 'REFUGEE', - OTHERS_OF_CONCERN = 'OTHERS_OF_CONCERN', - HOST = 'HOST', - NON_HOST = 'NON_HOST', - RETURNEE = 'RETURNEE', -} diff --git a/src/frontend/generated/models/ScopeEnum.ts b/src/frontend/generated/models/ScopeEnum.ts deleted file mode 100644 index 82936aed86..0000000000 --- a/src/frontend/generated/models/ScopeEnum.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `FOR_PARTNERS` - For partners - * * `UNICEF` - Unicef - */ -export enum ScopeEnum { - FOR_PARTNERS = 'FOR_PARTNERS', - UNICEF = 'UNICEF', -} diff --git a/src/frontend/generated/models/SectorEnum.ts b/src/frontend/generated/models/SectorEnum.ts deleted file mode 100644 index d3d3d90ee8..0000000000 --- a/src/frontend/generated/models/SectorEnum.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `CHILD_PROTECTION` - Child Protection - * * `EDUCATION` - Education - * * `HEALTH` - Health - * * `MULTI_PURPOSE` - Multi Purpose - * * `NUTRITION` - Nutrition - * * `SOCIAL_POLICY` - Social Policy - * * `WASH` - WASH - */ -export enum SectorEnum { - CHILD_PROTECTION = 'CHILD_PROTECTION', - EDUCATION = 'EDUCATION', - HEALTH = 'HEALTH', - MULTI_PURPOSE = 'MULTI_PURPOSE', - NUTRITION = 'NUTRITION', - SOCIAL_POLICY = 'SOCIAL_POLICY', - WASH = 'WASH', -} diff --git a/src/frontend/generated/models/SeeingDisabilityEnum.ts b/src/frontend/generated/models/SeeingDisabilityEnum.ts deleted file mode 100644 index f3e84a286f..0000000000 --- a/src/frontend/generated/models/SeeingDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum SeeingDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/SelfcareDisabilityEnum.ts b/src/frontend/generated/models/SelfcareDisabilityEnum.ts deleted file mode 100644 index a50b79643f..0000000000 --- a/src/frontend/generated/models/SelfcareDisabilityEnum.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - None - * * `LOT_DIFFICULTY` - A lot of difficulty - * * `CANNOT_DO` - Cannot do at all - * * `SOME_DIFFICULTY` - Some difficulty - */ -export enum SelfcareDisabilityEnum { - LOT_DIFFICULTY = 'LOT_DIFFICULTY', - CANNOT_DO = 'CANNOT_DO', - SOME_DIFFICULTY = 'SOME_DIFFICULTY', -} diff --git a/src/frontend/generated/models/SexEnum.ts b/src/frontend/generated/models/SexEnum.ts deleted file mode 100644 index 34b58ae704..0000000000 --- a/src/frontend/generated/models/SexEnum.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `MALE` - Male - * * `FEMALE` - Female - * * `OTHER` - Other - * * `NOT_COLLECTED` - Not collected - * * `NOT_ANSWERED` - Not answered - */ -export enum SexEnum { - MALE = 'MALE', - FEMALE = 'FEMALE', - OTHER = 'OTHER', - NOT_COLLECTED = 'NOT_COLLECTED', - NOT_ANSWERED = 'NOT_ANSWERED', -} diff --git a/src/frontend/generated/models/SubtypeEnum.ts b/src/frontend/generated/models/SubtypeEnum.ts deleted file mode 100644 index d4f65d58fa..0000000000 --- a/src/frontend/generated/models/SubtypeEnum.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `DATE` - Date - * * `DECIMAL` - Number - * * `STRING` - Text - * * `BOOL` - Boolean (true/false) - */ -export enum SubtypeEnum { - DATE = 'DATE', - DECIMAL = 'DECIMAL', - STRING = 'STRING', - BOOL = 'BOOL', -} diff --git a/src/frontend/generated/models/TargetPopulationList.ts b/src/frontend/generated/models/TargetPopulationList.ts deleted file mode 100644 index 15adb8d0a6..0000000000 --- a/src/frontend/generated/models/TargetPopulationList.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export type TargetPopulationList = { - readonly id: string; - name: string; - status: string; - created_by?: string; - readonly created_at: string; -}; - diff --git a/src/frontend/generated/models/WorkStatusEnum.ts b/src/frontend/generated/models/WorkStatusEnum.ts deleted file mode 100644 index 8797602a52..0000000000 --- a/src/frontend/generated/models/WorkStatusEnum.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `1` - Yes - * * `0` - No - * * `NOT_PROVIDED` - Not provided - */ -export enum WorkStatusEnum { - _1 = '1', - _0 = '0', - NOT_PROVIDED = 'NOT_PROVIDED', -} diff --git a/src/frontend/generated/services/FieldsAttributesService.ts b/src/frontend/generated/services/FieldsAttributesService.ts deleted file mode 100644 index 6028765090..0000000000 --- a/src/frontend/generated/services/FieldsAttributesService.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { CancelablePromise } from '../core/CancelablePromise'; -import { OpenAPI } from '../core/OpenAPI'; -import { request as __request } from '../core/request'; -export class FieldsAttributesService { - /** - * @returns any No response body - * @throws ApiError - */ - public static fieldsAttributesRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/fields_attributes/', - }); - } -} diff --git a/src/frontend/generated/services/HhStatusService.ts b/src/frontend/generated/services/HhStatusService.ts deleted file mode 100644 index 738fe417cc..0000000000 --- a/src/frontend/generated/services/HhStatusService.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { CancelablePromise } from '../core/CancelablePromise'; -import { OpenAPI } from '../core/OpenAPI'; -import { request as __request } from '../core/request'; -export class HhStatusService { - /** - * @returns any No response body - * @throws ApiError - */ - public static hhStatusRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/hh-status', - }); - } -} diff --git a/src/frontend/generated/services/RestService.ts b/src/frontend/generated/services/RestService.ts deleted file mode 100644 index da33a4be87..0000000000 --- a/src/frontend/generated/services/RestService.ts +++ /dev/null @@ -1,1415 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { DelegatePeople } from '../models/DelegatePeople'; -import type { PaginatedAreaList } from '../models/PaginatedAreaList'; -import type { PaginatedAreaListList } from '../models/PaginatedAreaListList'; -import type { PaginatedAreaTypeList } from '../models/PaginatedAreaTypeList'; -import type { PaginatedBeneficiaryGroupList } from '../models/PaginatedBeneficiaryGroupList'; -import type { PaginatedBusinessAreaList } from '../models/PaginatedBusinessAreaList'; -import type { PaginatedCountryList } from '../models/PaginatedCountryList'; -import type { PaginatedOrganizationList } from '../models/PaginatedOrganizationList'; -import type { PaginatedPaymentPlanList } from '../models/PaginatedPaymentPlanList'; -import type { PaginatedPeriodicDataUpdateTemplateListList } from '../models/PaginatedPeriodicDataUpdateTemplateListList'; -import type { PaginatedPeriodicDataUpdateUploadListList } from '../models/PaginatedPeriodicDataUpdateUploadListList'; -import type { PaginatedPeriodicFieldList } from '../models/PaginatedPeriodicFieldList'; -import type { PaginatedProgramCycleListList } from '../models/PaginatedProgramCycleListList'; -import type { PaginatedProgramGlobalList } from '../models/PaginatedProgramGlobalList'; -import type { PaginatedProjectList } from '../models/PaginatedProjectList'; -import type { PaginatedRegistrationDataImportListList } from '../models/PaginatedRegistrationDataImportListList'; -import type { PaginatedRegistrationList } from '../models/PaginatedRegistrationList'; -import type { PaginatedTargetPopulationListList } from '../models/PaginatedTargetPopulationListList'; -import type { PatchedProgramCycleUpdate } from '../models/PatchedProgramCycleUpdate'; -import type { PatchedRDI } from '../models/PatchedRDI'; -import type { PaymentPlanBulkAction } from '../models/PaymentPlanBulkAction'; -import type { PaymentPlanSupportingDocument } from '../models/PaymentPlanSupportingDocument'; -import type { PeriodicDataUpdateTemplateCreate } from '../models/PeriodicDataUpdateTemplateCreate'; -import type { PeriodicDataUpdateTemplateDetail } from '../models/PeriodicDataUpdateTemplateDetail'; -import type { PeriodicDataUpdateUpload } from '../models/PeriodicDataUpdateUpload'; -import type { PeriodicDataUpdateUploadDetail } from '../models/PeriodicDataUpdateUploadDetail'; -import type { Program } from '../models/Program'; -import type { ProgramCycleCreate } from '../models/ProgramCycleCreate'; -import type { ProgramCycleList } from '../models/ProgramCycleList'; -import type { ProgramCycleUpdate } from '../models/ProgramCycleUpdate'; -import type { PushPeople } from '../models/PushPeople'; -import type { RDI } from '../models/RDI'; -import type { RDINested } from '../models/RDINested'; -import type { RegistrationDataImportList } from '../models/RegistrationDataImportList'; -import type { CancelablePromise } from '../core/CancelablePromise'; -import { OpenAPI } from '../core/OpenAPI'; -import { request as __request } from '../core/request'; -export class RestService { - /** - * OpenApi3 schema for this API. Format can be selected via content negotiation. - * - * - YAML: application/vnd.oai.openapi - * - JSON: application/vnd.oai.openapi+json - * @param format - * @param lang - * @returns any - * @throws ApiError - */ - public static restRetrieve( - format?: 'json' | 'yaml', - lang?: 'af' | 'ar' | 'ar-dz' | 'ast' | 'az' | 'be' | 'bg' | 'bn' | 'br' | 'bs' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'dsb' | 'el' | 'en' | 'en-au' | 'en-gb' | 'eo' | 'es' | 'es-ar' | 'es-co' | 'es-mx' | 'es-ni' | 'es-ve' | 'et' | 'eu' | 'fa' | 'fi' | 'fr' | 'fy' | 'ga' | 'gd' | 'gl' | 'he' | 'hi' | 'hr' | 'hsb' | 'hu' | 'hy' | 'ia' | 'id' | 'ig' | 'io' | 'is' | 'it' | 'ja' | 'ka' | 'kab' | 'kk' | 'km' | 'kn' | 'ko' | 'ky' | 'lb' | 'lt' | 'lv' | 'mk' | 'ml' | 'mn' | 'mr' | 'my' | 'nb' | 'ne' | 'nl' | 'nn' | 'os' | 'pa' | 'pl' | 'pt' | 'pt-br' | 'ro' | 'ru' | 'sk' | 'sl' | 'sq' | 'sr' | 'sr-latn' | 'sv' | 'sw' | 'ta' | 'te' | 'tg' | 'th' | 'tk' | 'tr' | 'tt' | 'udm' | 'uk' | 'ur' | 'uz' | 'vi' | 'zh-hans' | 'zh-hant', - ): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/', - query: { - 'format': format, - 'lang': lang, - }, - }); - } - /** - * @param businessArea - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedAreaListList - * @throws ApiError - */ - public static restGeoAreasList( - businessArea: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/geo/areas/', - path: { - 'business_area': businessArea, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param search A search term. - * @returns PaginatedPaymentPlanList - * @throws ApiError - */ - public static restPaymentsPaymentPlansManagerialList( - businessArea: string, - limit?: number, - offset?: number, - ordering?: string, - search?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/payments/payment-plans-managerial/', - path: { - 'business_area': businessArea, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'search': search, - }, - }); - } - /** - * @param businessArea - * @param requestBody - * @returns PaymentPlanBulkAction - * @throws ApiError - */ - public static restPaymentsPaymentPlansManagerialBulkActionCreate( - businessArea: string, - requestBody: PaymentPlanBulkAction, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/payments/payment-plans-managerial/bulk-action/', - path: { - 'business_area': businessArea, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param ordering Which field to use when ordering the results. - * @param updatedAtAfter - * @param updatedAtBefore - * @returns Program - * @throws ApiError - */ - public static restProgramList( - businessArea: string, - ordering?: string, - updatedAtAfter?: string, - updatedAtBefore?: string, - ): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/program/', - path: { - 'business_area': businessArea, - }, - query: { - 'ordering': ordering, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - }, - }); - } - /** - * @param businessArea - * @param requestBody - * @returns Program - * @throws ApiError - */ - public static restProgramCreateCreate( - businessArea: string, - requestBody: Program, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/program/create/', - path: { - 'business_area': businessArea, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedProgramCycleListList - * @throws ApiError - */ - public static restProgramsCyclesList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param requestBody - * @returns ProgramCycleCreate - * @throws ApiError - */ - public static restProgramsCyclesCreate( - businessArea: string, - programId: string, - requestBody: ProgramCycleCreate, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns ProgramCycleList - * @throws ApiError - */ - public static restProgramsCyclesRetrieve( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @param requestBody - * @returns ProgramCycleUpdate - * @throws ApiError - */ - public static restProgramsCyclesUpdate( - businessArea: string, - id: string, - programId: string, - requestBody?: ProgramCycleUpdate, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'PUT', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @param requestBody - * @returns ProgramCycleUpdate - * @throws ApiError - */ - public static restProgramsCyclesPartialUpdate( - businessArea: string, - id: string, - programId: string, - requestBody?: PatchedProgramCycleUpdate, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'PATCH', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns void - * @throws ApiError - */ - public static restProgramsCyclesDestroy( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'DELETE', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns any No response body - * @throws ApiError - */ - public static restProgramsCyclesFinishCreate( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/finish/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns any No response body - * @throws ApiError - */ - public static restProgramsCyclesReactivateCreate( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/cycles/{id}/reactivate/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param paymentPlanId - * @param programId - * @param requestBody - * @returns PaymentPlanSupportingDocument - * @throws ApiError - */ - public static restProgramsPaymentPlansSupportingDocumentsCreate( - businessArea: string, - paymentPlanId: string, - programId: string, - requestBody: PaymentPlanSupportingDocument, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/', - path: { - 'business_area': businessArea, - 'payment_plan_id': paymentPlanId, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param fileId - * @param paymentPlanId - * @param programId - * @returns void - * @throws ApiError - */ - public static restProgramsPaymentPlansSupportingDocumentsDestroy( - businessArea: string, - fileId: string, - paymentPlanId: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'DELETE', - url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/{file_id}/', - path: { - 'business_area': businessArea, - 'file_id': fileId, - 'payment_plan_id': paymentPlanId, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param fileId - * @param paymentPlanId - * @param programId - * @returns PaymentPlanSupportingDocument - * @throws ApiError - */ - public static restProgramsPaymentPlansSupportingDocumentsDownloadRetrieve( - businessArea: string, - fileId: string, - paymentPlanId: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/{file_id}/download/', - path: { - 'business_area': businessArea, - 'file_id': fileId, - 'payment_plan_id': paymentPlanId, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedPeriodicDataUpdateTemplateListList - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-templates/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param requestBody - * @returns PeriodicDataUpdateTemplateCreate - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesCreate( - businessArea: string, - programId: string, - requestBody: PeriodicDataUpdateTemplateCreate, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-templates/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns PeriodicDataUpdateTemplateDetail - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-templates/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns any No response body - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesDownloadRetrieve( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-templates/{id}/download/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns any No response body - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesExportCreate( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-templates/{id}/export/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedPeriodicDataUpdateUploadListList - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-uploads/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param id - * @param programId - * @returns PeriodicDataUpdateUploadDetail - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsRetrieve( - businessArea: string, - id: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-uploads/{id}/', - path: { - 'business_area': businessArea, - 'id': id, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param requestBody - * @returns PeriodicDataUpdateUpload - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsUploadCreate( - businessArea: string, - programId: string, - requestBody: PeriodicDataUpdateUpload, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-data-update-uploads/upload/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedPeriodicFieldList - * @throws ApiError - */ - public static restProgramsPeriodicDataUpdatePeriodicFieldsList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/periodic-data-update/periodic-fields/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedRegistrationDataImportListList - * @throws ApiError - */ - public static restProgramsRegistrationDataRegistrationDataImportsList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/registration-data/registration-data-imports/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param requestBody - * @returns RegistrationDataImportList - * @throws ApiError - */ - public static restProgramsRegistrationDataRegistrationDataImportsRunDeduplicationCreate( - businessArea: string, - programId: string, - requestBody: RegistrationDataImportList, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/registration-data/registration-data-imports/run-deduplication/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param programId - * @returns any No response body - * @throws ApiError - */ - public static restProgramsRegistrationDataWebhookdeduplicationRetrieve( - businessArea: string, - programId: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/registration-data/webhookdeduplication/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - }); - } - /** - * @param businessArea - * @param programId - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @returns PaginatedTargetPopulationListList - * @throws ApiError - */ - public static restProgramsTargetingTargetPopulationsList( - businessArea: string, - programId: string, - limit?: number, - offset?: number, - ordering?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/{business_area}/programs/{program_id}/targeting/target-populations/', - path: { - 'business_area': businessArea, - 'program_id': programId, - }, - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - }, - }); - } - /** - * Api to Create RDI for selected business area - * @param businessArea - * @param rdi - * @param requestBody - * @returns RDI - * @throws ApiError - */ - public static restRdiCompletedCreate( - businessArea: string, - rdi: string, - requestBody: RDI, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/{rdi}/completed/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * Api to Create RDI for selected business area - * @param businessArea - * @param rdi - * @param requestBody - * @returns RDI - * @throws ApiError - */ - public static restRdiCompletedUpdate( - businessArea: string, - rdi: string, - requestBody: RDI, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'PUT', - url: '/api/rest/{business_area}/rdi/{rdi}/completed/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * Api to Create RDI for selected business area - * @param businessArea - * @param rdi - * @param requestBody - * @returns RDI - * @throws ApiError - */ - public static restRdiCompletedPartialUpdate( - businessArea: string, - rdi: string, - requestBody?: PatchedRDI, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'PATCH', - url: '/api/rest/{business_area}/rdi/{rdi}/completed/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param rdi - * @param requestBody - * @returns any No response body - * @throws ApiError - */ - public static restRdiDelegatePeopleCreate( - businessArea: string, - rdi: string, - requestBody: DelegatePeople, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/{rdi}/delegate/people/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * Api to link Households with selected RDI - * @param businessArea - * @param rdi - * @returns any No response body - * @throws ApiError - */ - public static restRdiPushCreate( - businessArea: string, - rdi: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/{rdi}/push/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - }); - } - /** - * Api to link Households with selected RDI - * @param businessArea - * @param rdi - * @returns any No response body - * @throws ApiError - */ - public static restRdiPushLaxCreate( - businessArea: string, - rdi: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/{rdi}/push/lax/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - }); - } - /** - * @param businessArea - * @param rdi - * @param requestBody - * @returns any No response body - * @throws ApiError - */ - public static restRdiPushPeopleCreate( - businessArea: string, - rdi: string, - requestBody: PushPeople, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/{rdi}/push/people/', - path: { - 'business_area': businessArea, - 'rdi': rdi, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * Api to Create RDI for selected business area - * @param businessArea - * @param requestBody - * @returns RDI - * @throws ApiError - */ - public static restRdiCreateCreate( - businessArea: string, - requestBody: RDI, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/create/', - path: { - 'business_area': businessArea, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param businessArea - * @param requestBody - * @returns any No response body - * @throws ApiError - */ - public static restRdiUploadCreate( - businessArea: string, - requestBody: RDINested, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/{business_area}/rdi/upload/', - path: { - 'business_area': businessArea, - }, - body: requestBody, - mediaType: 'application/json', - }); - } - /** - * @param areaTypeAreaLevel - * @param countryIsoCode2 - * @param countryIsoCode3 - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param parentId - * @param parentPCode - * @param search A search term. - * @param updatedAtAfter - * @param updatedAtBefore - * @param validFromAfter - * @param validFromBefore - * @param validUntilAfter - * @param validUntilBefore - * @returns PaginatedAreaList - * @throws ApiError - */ - public static restAreasList( - areaTypeAreaLevel?: number, - countryIsoCode2?: string, - countryIsoCode3?: string, - limit?: number, - offset?: number, - ordering?: string, - parentId?: string, - parentPCode?: string, - search?: string, - updatedAtAfter?: string, - updatedAtBefore?: string, - validFromAfter?: string, - validFromBefore?: string, - validUntilAfter?: string, - validUntilBefore?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/areas/', - query: { - 'area_type_area_level': areaTypeAreaLevel, - 'country_iso_code2': countryIsoCode2, - 'country_iso_code3': countryIsoCode3, - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'parent_id': parentId, - 'parent_p_code': parentPCode, - 'search': search, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - 'valid_from_after': validFromAfter, - 'valid_from_before': validFromBefore, - 'valid_until_after': validUntilAfter, - 'valid_until_before': validUntilBefore, - }, - }); - } - /** - * @param areaLevel - * @param countryIsoCode2 - * @param countryIsoCode3 - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param parentAreaLevel - * @param search A search term. - * @param updatedAtAfter - * @param updatedAtBefore - * @returns PaginatedAreaTypeList - * @throws ApiError - */ - public static restAreatypesList( - areaLevel?: number, - countryIsoCode2?: string, - countryIsoCode3?: string, - limit?: number, - offset?: number, - ordering?: string, - parentAreaLevel?: number, - search?: string, - updatedAtAfter?: string, - updatedAtBefore?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/areatypes/', - query: { - 'area_level': areaLevel, - 'country_iso_code2': countryIsoCode2, - 'country_iso_code3': countryIsoCode3, - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'parent_area_level': parentAreaLevel, - 'search': search, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - }, - }); - } - /** - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @returns PaginatedBeneficiaryGroupList - * @throws ApiError - */ - public static restBeneficiaryGroupsList( - limit?: number, - offset?: number, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/beneficiary-groups/', - query: { - 'limit': limit, - 'offset': offset, - }, - }); - } - /** - * @param active - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param updatedAtAfter - * @param updatedAtBefore - * @returns PaginatedBusinessAreaList - * @throws ApiError - */ - public static restBusinessAreasList( - active?: boolean, - limit?: number, - offset?: number, - ordering?: string, - updatedAtAfter?: string, - updatedAtBefore?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/business_areas/', - query: { - 'active': active, - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - }, - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restConstanceRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/constance/', - }); - } - /** - * Retrieve dashboard data for a given business area from Redis cache. - * If data is not cached or needs updating, refresh it. - * @param businessAreaSlug - * @returns any No response body - * @throws ApiError - */ - public static restDashboardDataRetrieve( - businessAreaSlug: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/dashboard/{business_area_slug}/data/', - path: { - 'business_area_slug': businessAreaSlug, - }, - }); - } - /** - * API to trigger the creation or update of a DashReport for a given business area. - * Restricted to superusers and users with the required permissions. - * @param businessAreaSlug - * @returns any No response body - * @throws ApiError - */ - public static restDashboardGenerateCreate( - businessAreaSlug: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'POST', - url: '/api/rest/dashboard/generate/{business_area_slug}/', - path: { - 'business_area_slug': businessAreaSlug, - }, - }); - } - /** - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param search A search term. - * @param updatedAtAfter - * @param updatedAtBefore - * @param validFromAfter - * @param validFromBefore - * @param validUntilAfter - * @param validUntilBefore - * @returns PaginatedCountryList - * @throws ApiError - */ - public static restLookupsCountryList( - limit?: number, - offset?: number, - ordering?: string, - search?: string, - updatedAtAfter?: string, - updatedAtBefore?: string, - validFromAfter?: string, - validFromBefore?: string, - validUntilAfter?: string, - validUntilBefore?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/country/', - query: { - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'search': search, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - 'valid_from_after': validFromAfter, - 'valid_from_before': validFromBefore, - 'valid_until_after': validUntilAfter, - 'valid_until_before': validUntilBefore, - }, - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsDocumentRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/document/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsMaritalstatusRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/maritalstatus/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsObserveddisabilityRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/observeddisability/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsProgramStatusesRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/program-statuses/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsRelationshipRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/relationship/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsResidencestatusRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/residencestatus/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsRoleRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/role/', - }); - } - /** - * @returns any No response body - * @throws ApiError - */ - public static restLookupsSexRetrieve(): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/lookups/sex/', - }); - } - /** - * @param active - * @param businessArea - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param ordering Which field to use when ordering the results. - * @param status * `ACTIVE` - Active - * * `DRAFT` - Draft - * * `FINISHED` - Finished - * @param updatedAtAfter - * @param updatedAtBefore - * @returns PaginatedProgramGlobalList - * @throws ApiError - */ - public static restProgramsList( - active?: boolean, - businessArea?: string, - limit?: number, - offset?: number, - ordering?: string, - status?: 'ACTIVE' | 'DRAFT' | 'FINISHED', - updatedAtAfter?: string, - updatedAtBefore?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/programs/', - query: { - 'active': active, - 'business_area': businessArea, - 'limit': limit, - 'offset': offset, - 'ordering': ordering, - 'status': status, - 'updated_at_after': updatedAtAfter, - 'updated_at_before': updatedAtBefore, - }, - }); - } - /** - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @returns PaginatedOrganizationList - * @throws ApiError - */ - public static restSystemsAuroraOfficesList( - limit?: number, - offset?: number, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/systems/aurora/offices/', - query: { - 'limit': limit, - 'offset': offset, - }, - }); - } - /** - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param orgPk - * @param orgSlug - * @returns PaginatedProjectList - * @throws ApiError - */ - public static restSystemsAuroraProjectsList( - limit?: number, - offset?: number, - orgPk?: string, - orgSlug?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/systems/aurora/projects/', - query: { - 'limit': limit, - 'offset': offset, - 'org_pk': orgPk, - 'org_slug': orgSlug, - }, - }); - } - /** - * @param limit Number of results to return per page. - * @param offset The initial index from which to return the results. - * @param orgPk - * @param orgSlug - * @param programmePk - * @returns PaginatedRegistrationList - * @throws ApiError - */ - public static restSystemsAuroraRegistrationsList( - limit?: number, - offset?: number, - orgPk?: string, - orgSlug?: string, - programmePk?: string, - ): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/api/rest/systems/aurora/registrations/', - query: { - 'limit': limit, - 'offset': offset, - 'org_pk': orgPk, - 'org_slug': orgSlug, - 'programme_pk': programmePk, - }, - }); - } -} diff --git a/src/frontend/jest.config.ts b/src/frontend/jest.config.ts deleted file mode 100644 index 6be3e12116..0000000000 --- a/src/frontend/jest.config.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* eslint-disable */ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'jest-environment-jsdom', - collectCoverage: true, - collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}'], - moduleDirectories: ['node_modules', 'src'], - testPathIgnorePatterns: ['/node_modules/', '/.history/'], - setupFilesAfterEnv: ['./jest/setupTests.ts'], - transform: { - '^.+\\.cjs$': 'babel-jest', - '^.+\\.(js|jsx)$': 'esbuild-jest', - '^.+\\.(ts|tsx)$': 'ts-jest', - '^.+\\.css$': '/config/jest/cssTransform.cjs', - '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': - '/config/jest/fileTransform.cjs', - }, - transformIgnorePatterns: [ - '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', - '^.+\\.module\\.(css|sass|scss)$', - ], - coveragePathIgnorePatterns: [ - '/node_modules/.*', - '/script/', - '/src/serviceWorker.ts', - '.*\\.d\\.ts', - '/src/restgenerated/', - ], - moduleNameMapper: { - '^@components/(.*)$': '/src/components/$1', - '^@core/(.*)$': '/src/components/core/$1', - '^@containers/(.*)$': '/src/containers/$1', - '^@shared/(.*)$': '/src/shared/$1', - '^@utils/(.*)$': '/src/utils/$1', - '^@hooks/(.*)$': '/src/hooks/$1', - '^@generated/(.*)$': '/src/__generated__/$1', - '^@restgenerated/(.*)$': '/src/restgenerated/$1', - '^src/(.*)$': '/src/$1', - }, -}; diff --git a/src/frontend/jest/setupTests.ts b/src/frontend/jest/setupTests.ts deleted file mode 100644 index b98e0a4ebb..0000000000 --- a/src/frontend/jest/setupTests.ts +++ /dev/null @@ -1,46 +0,0 @@ -import '@testing-library/jest-dom'; -import 'jest-canvas-mock'; -import setupInternalization from '../src/i18n'; -import { fakeContextProgram, random, seed } from '../src/testUtils/testUtils'; -import * as useBusinessAreaModule from '../src/hooks/useBusinessArea'; -import * as useGlobalProgramModule from '../src/hooks/useGlobalProgram'; -import { fakeProgram } from '../fixtures/programs/fakeProgram'; -import * as useProgramContextModule from '../src/programContext'; -import { - ArcElement, - BarElement, - CategoryScale, - Chart as ChartJS, - LinearScale, -} from 'chart.js'; -import * as usePermissionsModule from '@hooks/usePermissions'; - -global.Date.now = () => new Date('1970-01-01T00:00:00.000Z').getTime(); -process.env.TZ = 'UTC'; -setupInternalization(); -global.beforeEach(() => { - seed(0); - jest.spyOn(global.Math, 'random').mockImplementation(random); - jest - .spyOn(useBusinessAreaModule, 'useBusinessArea') - .mockReturnValue('afghanistan'); - jest - .spyOn(useGlobalProgramModule, 'useGlobalProgram') - .mockReturnValue(fakeProgram.id); - jest - .spyOn(useProgramContextModule, 'useProgramContext') - .mockReturnValue(fakeContextProgram); - jest.spyOn(usePermissionsModule, 'usePermissions').mockReturnValue([]); -}); - -globalThis.ResizeObserver = class { - observe() {} - - unobserve() {} - - disconnect() {} -}; - -globalThis.crypto.randomUUID = () => 'd7a794d1-0ead-4424-9ff2-38d14db32b99'; - -ChartJS.register(ArcElement, LinearScale, CategoryScale, BarElement); diff --git a/src/frontend/package.json b/src/frontend/package.json index 62ca21bb04..4fa4e4e650 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -9,13 +9,13 @@ "build-for-backend": "yarn build --outDir '../hct_mis_api/apps/web/static/web' --emptyOutDir", "build-and-watch": "yarn build-for-backend --watch", "lint": "eslint 'src/**/*.{ts,tsx}'", - "test": "TZ=UTC jest --config jest.config.ts", + "test": "vitest", "preview": "vite preview", "download-dev-schema": "wget --no-check-certificate -O data/schema.graphql https://dev-hct.unitst.org/api/graphql/schema.graphql", "download-local-schema": "wget --no-check-certificate -O data/schema.graphql http://localhost:3000/api/graphql/schema.graphql", "generate-types": "yarn download-dev-schema && graphql-codegen --config codegen.yml --debug", "generate-types-local": "yarn download-local-schema && graphql-codegen --config codegen.yml --debug", - "generate-rest-api-types": "npx openapi-typescript-codegen --input http://localhost:8080/api/rest/ --output ./generated" + "generate-rest-api-types": "npx openapi-typescript-codegen --input http://localhost:8080/api/rest/ --output src/restgenerated" }, "engines": { "node": ">=20.0.0" @@ -24,8 +24,8 @@ "@apollo/client": "^3.12.8", "@apollo/link-error": "^2.0.0-beta.3", "@apollo/react-hooks": "^4.0.0", - "@apollo/react-testing": "^4.0.0", - "@babel/core": "^7.26.7", + "@babel/core": "^7.26.9", + "@babel/plugin-transform-typescript": "^7.26.8", "@base-ui-components/react": "^1.0.0-alpha.5", "@date-io/moment": "^3.0.0", "@emotion/react": "^11.11.3", @@ -39,6 +39,7 @@ "@sentry/react": "^8.54.0", "@tanstack/react-query": "^5.28.8", "@tanstack/react-query-devtools": "^5.28.8", + "@testing-library/dom": "^10.4.0", "@types/lodash": "^4.14.202", "@types/node": "^22.13.1", "@vitejs/plugin-react": "^4.2.1", @@ -46,7 +47,7 @@ "apollo-upload-client": "^18.0.1", "apollo3-cache-persist": "^0.15.0", "camelcase": "^8.0.0", - "chart.js": "^4.4.7", + "chart.js": "^4.4.8", "chartjs-plugin-annotation": "^3.0.1", "chartjs-plugin-datalabels": "^2.2.0", "clsx": "^2.1.0", @@ -54,17 +55,15 @@ "date-fns": "^4.1.0", "eslint-import-resolver-alias": "^1.1.2", "formik": "^2.4.5", - "glob": "^11.0.1", + "glob": "^9.0.0", "graphql": "^16.8.1", "graphql-tag": "^2.12.6", "helmet": "^8.0.0", "i18next": "^24.2.2", - "jest-environment-jsdom": "^29.7.0", "jsdom": "^26.0.0", "localforage": "^1.10.0", "lodash": "^4.17.21", "moment": "^2.30.1", - "openapi-typescript-codegen": "^0.29.0", "path": "^0.12.7", "prop-types": "^15.7.0", "react": "^19.0.0", @@ -83,16 +82,18 @@ "ts-node": "^10.9.2", "use-deep-compare-effect": "^1.8.1", "uuid": "^11.0.5", - "vite": "^6.1.0", + "vite": "^6.1.1", "vite-tsconfig-paths": "^4.3.1", "waait": "^1.0.5", "yup": "^1.6.1" }, "devDependencies": { + "@babel/plugin-syntax-jsx": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/preset-env": "^7.23.9", - "@babel/preset-react": "^7.23.3", + "@babel/preset-env": "^7.26.9", + "@babel/preset-react": "^7.26.3", + "@babel/preset-typescript": "^7.26.0", "@emotion/babel-plugin": "^11.11.0", "@graphql-codegen/cli": "^5.0.0", "@graphql-codegen/fragment-matcher": "^5.0.0", @@ -100,38 +101,29 @@ "@graphql-codegen/typescript-react-apollo": "^4.2.0", "@graphql-codegen/typescript-resolvers": "^4.0.1", "@tanstack/eslint-plugin-query": "^5.27.7", - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.4.1", + "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", - "@testing-library/user-event": "^14.5.2", - "@types/jest": "^29.5.12", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", - "@typescript-eslint/eslint-plugin": "6.x", - "@typescript-eslint/parser": "6.x", - "babel-jest": "^29.7.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", "braces": "3.0.3", - "esbuild": "0.24.2", - "esbuild-jest": "^0.5.0", + "esbuild": "^0.25.0", "eslint": "^8.56.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-airbnb": "19.0.4", + "eslint-config-airbnb-typescript": "18.0.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jest": "^28.11.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.37.4", - "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-hooks": "^4.3.0", + "faker": "^6.6.6", "globals": "^15.14.0", - "jest": "^29.7.0", - "jest-canvas-mock": "^2.5.2", - "jest-environment-jsdom": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-watch-typeahead": "^2.2.2", "micromatch": "3.1.4", + "msw": "^2.7.3", + "openapi-typescript-codegen": "^0.29.0", "prettier": "3.4.2", - "react-test-renderer": "^19.0.0", - "ts-jest": "^29.1.2", - "typescript": "~5.3.0" + "typescript": "^5.5.4", + "vitest": "^3.0.7" } } diff --git a/src/frontend/src/__generated__/graphql.tsx b/src/frontend/src/__generated__/graphql.tsx index 478abb8325..9c93c4bea7 100644 --- a/src/frontend/src/__generated__/graphql.tsx +++ b/src/frontend/src/__generated__/graphql.tsx @@ -468,7 +468,6 @@ export type BusinessAreaNode = Node & { __typename?: 'BusinessAreaNode'; active: Scalars['Boolean']['output']; biometricDeduplicationThreshold: Scalars['Float']['output']; - businessAreaPartnerThrough: Array; children: UserBusinessAreaNodeConnection; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; @@ -512,13 +511,13 @@ export type BusinessAreaNode = Node & { regionName: Scalars['String']['output']; registrationdataimportSet: RegistrationDataImportNodeConnection; reports: ReportNodeConnection; + roleAssignments: Array; ruleSet: SteficonRuleNodeConnection; screenBeneficiary: Scalars['Boolean']['output']; slug: Scalars['String']['output']; surveySet: SurveyNodeConnection; tickets: GrievanceTicketNodeConnection; updatedAt: Scalars['DateTime']['output']; - userRoles: Array; }; @@ -860,7 +859,7 @@ export type CopyProgramInput = { id: Scalars['String']['input']; name?: InputMaybe; partnerAccess?: InputMaybe; - partners?: InputMaybe>>; + partners?: InputMaybe>>; pduFields?: InputMaybe>>; populationGoal?: InputMaybe; programmeCode?: InputMaybe; @@ -1009,7 +1008,7 @@ export type CreateProgramInput = { frequencyOfPayments?: InputMaybe; name?: InputMaybe; partnerAccess?: InputMaybe; - partners?: InputMaybe>>; + partners?: InputMaybe>>; pduFields?: InputMaybe>>; populationGoal?: InputMaybe; programmeCode?: InputMaybe; @@ -3780,7 +3779,6 @@ export type PartnerNode = { allowedBusinessAreas: UserBusinessAreaNodeConnection; areaAccess?: Maybe; areas?: Maybe>>; - businessAreaPartnerThrough: Array; businessAreas: UserBusinessAreaNodeConnection; grievanceticketSet: GrievanceTicketNodeConnection; id: Scalars['ID']['output']; @@ -3793,6 +3791,7 @@ export type PartnerNode = { partnerSet: Array; programs: ProgramNodeConnection; rght: Scalars['Int']['output']; + roleAssignments: Array; treeId: Scalars['Int']['output']; userSet: UserNodeConnection; }; @@ -3858,15 +3857,17 @@ export type PartnerRoleNode = { __typename?: 'PartnerRoleNode'; businessArea: UserBusinessAreaNode; createdAt: Scalars['DateTime']['output']; - partner: PartnerNode; - roles: Array; + expiryDate?: Maybe; + partner?: Maybe; + program?: Maybe; + role?: Maybe; updatedAt: Scalars['DateTime']['output']; + user?: Maybe; }; export type PartnerType = { __typename?: 'PartnerType'; allowedBusinessAreas: UserBusinessAreaNodeConnection; - businessAreaPartnerThrough: Array; businessAreas: UserBusinessAreaNodeConnection; grievanceticketSet: GrievanceTicketNodeConnection; id: Scalars['ID']['output']; @@ -3879,6 +3880,7 @@ export type PartnerType = { partnerSet: Array; programs: ProgramNodeConnection; rght: Scalars['Int']['output']; + roleAssignments: Array; treeId: Scalars['Int']['output']; userSet: UserNodeConnection; }; @@ -4659,6 +4661,7 @@ export type ProgramNode = Node & { programmeCode?: Maybe; registrationImports: RegistrationDataImportNodeConnection; reports: ReportNodeConnection; + roleAssignments: Array; scope?: Maybe; sector: ProgramSector; startDate: Scalars['Date']['output']; @@ -4810,7 +4813,7 @@ export enum ProgramPartnerAccess { SelectedPartnersAccess = 'SELECTED_PARTNERS_ACCESS' } -export type ProgramPartnerThroughInput = { +export type ProgramPartnerAccessInput = { areaAccess?: InputMaybe; areas?: InputMaybe>>; partner?: InputMaybe; @@ -6300,13 +6303,14 @@ export type RoleChoiceObject = { export type RoleNode = { __typename?: 'RoleNode'; - businessAreaPartnerThrough: Array; createdAt: Scalars['DateTime']['output']; + isAvailableForPartner: Scalars['Boolean']['output']; + isVisibleOnUi: Scalars['Boolean']['output']; name: Scalars['String']['output']; permissions?: Maybe>; + roleAssignments: Array; subsystem: RoleSubsystem; updatedAt: Scalars['DateTime']['output']; - userRoles: Array; }; export enum RoleSubsystem { @@ -7446,7 +7450,7 @@ export type UpdateProgramPartners = { export type UpdateProgramPartnersInput = { id: Scalars['String']['input']; partnerAccess?: InputMaybe; - partners?: InputMaybe>>; + partners?: InputMaybe>>; }; export type UploadImportDataXlsxFileAsync = { @@ -7459,7 +7463,6 @@ export type UserBusinessAreaNode = Node & { __typename?: 'UserBusinessAreaNode'; active: Scalars['Boolean']['output']; biometricDeduplicationThreshold: Scalars['Float']['output']; - businessAreaPartnerThrough: Array; children: UserBusinessAreaNodeConnection; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; @@ -7504,13 +7507,13 @@ export type UserBusinessAreaNode = Node & { regionName: Scalars['String']['output']; registrationdataimportSet: RegistrationDataImportNodeConnection; reports: ReportNodeConnection; + roleAssignments: Array; ruleSet: SteficonRuleNodeConnection; screenBeneficiary: Scalars['Boolean']['output']; slug: Scalars['String']['output']; surveySet: SurveyNodeConnection; tickets: GrievanceTicketNodeConnection; updatedAt: Scalars['DateTime']['output']; - userRoles: Array; }; @@ -7703,13 +7706,15 @@ export type UserNode = Node & { messages: CommunicationMessageNodeConnection; partner: PartnerNode; partnerRoles?: Maybe>>; + permissionsInScope?: Maybe>>; registrationDataImports: RegistrationDataImportNodeConnection; reports: ReportNodeConnection; + roleAssignments: Array; sentDeliveryMechanisms: DeliveryMechanismPerPaymentPlanNodeConnection; status: UserStatus; surveys: SurveyNodeConnection; ticketNotes: TicketNoteNodeConnection; - userRoles: Array; + userRoles?: Maybe>>; username: Scalars['String']['output']; }; @@ -7886,8 +7891,11 @@ export type UserRoleNode = { businessArea: UserBusinessAreaNode; createdAt: Scalars['DateTime']['output']; expiryDate?: Maybe; - role: RoleNode; + partner?: Maybe; + program?: Maybe; + role?: Maybe; updatedAt: Scalars['DateTime']['output']; + user?: Maybe; }; export enum UserStatus { @@ -8692,7 +8700,7 @@ export type AllUsersQueryVariables = Exact<{ }>; -export type AllUsersQuery = { __typename?: 'Query', allUsers?: { __typename?: 'UserNodeConnection', totalCount?: number | null, edgeCount?: number | null, pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, hasPreviousPage: boolean, endCursor?: string | null, startCursor?: string | null }, edges: Array<{ __typename?: 'UserNodeEdge', cursor: string, node?: { __typename?: 'UserNode', id: string, firstName: string, lastName: string, username: string, email: string, isActive: boolean, lastLogin?: any | null, status: UserStatus, partner: { __typename?: 'PartnerNode', name?: string | null }, userRoles: Array<{ __typename?: 'UserRoleNode', businessArea: { __typename?: 'UserBusinessAreaNode', name: string }, role: { __typename?: 'RoleNode', name: string, permissions?: Array | null } }>, partnerRoles?: Array<{ __typename?: 'PartnerRoleNode', businessArea: { __typename?: 'UserBusinessAreaNode', name: string }, roles: Array<{ __typename?: 'RoleNode', name: string, permissions?: Array | null }> } | null> | null } | null } | null> } | null }; +export type AllUsersQuery = { __typename?: 'Query', allUsers?: { __typename?: 'UserNodeConnection', totalCount?: number | null, edgeCount?: number | null, pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, hasPreviousPage: boolean, endCursor?: string | null, startCursor?: string | null }, edges: Array<{ __typename?: 'UserNodeEdge', cursor: string, node?: { __typename?: 'UserNode', id: string, firstName: string, lastName: string, username: string, email: string, isActive: boolean, lastLogin?: any | null, status: UserStatus, partner: { __typename?: 'PartnerNode', name?: string | null }, userRoles?: Array<{ __typename?: 'UserRoleNode', businessArea: { __typename?: 'UserBusinessAreaNode', name: string }, program?: { __typename?: 'ProgramNode', id: string, name: string } | null, role?: { __typename?: 'RoleNode', name: string, permissions?: Array | null } | null } | null> | null, partnerRoles?: Array<{ __typename?: 'PartnerRoleNode', businessArea: { __typename?: 'UserBusinessAreaNode', name: string }, program?: { __typename?: 'ProgramNode', id: string, name: string } | null, role?: { __typename?: 'RoleNode', name: string, permissions?: Array | null } | null } | null> | null } | null } | null> } | null }; export type AllUsersForFiltersQueryVariables = Exact<{ businessArea: Scalars['String']['input']; @@ -8741,7 +8749,7 @@ export type LoggedCheckerQuery = { __typename?: 'Query', me?: { __typename?: 'Us export type MeQueryVariables = Exact<{ [key: string]: never; }>; -export type MeQuery = { __typename?: 'Query', me?: { __typename?: 'UserNode', id: string, username: string, email: string, firstName: string, lastName: string, isSuperuser: boolean, businessAreas?: { __typename?: 'UserBusinessAreaNodeConnection', edges: Array<{ __typename?: 'UserBusinessAreaNodeEdge', node?: { __typename?: 'UserBusinessAreaNode', id: string, name: string, slug: string, permissions?: Array | null } | null } | null> } | null } | null }; +export type MeQuery = { __typename?: 'Query', me?: { __typename?: 'UserNode', id: string, username: string, email: string, firstName: string, lastName: string, permissionsInScope?: Array | null, isSuperuser: boolean, businessAreas?: { __typename?: 'UserBusinessAreaNodeConnection', edges: Array<{ __typename?: 'UserBusinessAreaNodeEdge', node?: { __typename?: 'UserBusinessAreaNode', id: string, name: string, slug: string, permissions?: Array | null } | null } | null> } | null } | null }; export type UserChoiceDataQueryVariables = Exact<{ [key: string]: never; }>; @@ -14595,6 +14603,10 @@ export const AllUsersDocument = gql` businessArea { name } + program { + id + name + } role { name permissions @@ -14604,7 +14616,11 @@ export const AllUsersDocument = gql` businessArea { name } - roles { + program { + id + name + } + role { name permissions } @@ -14937,6 +14953,7 @@ export const MeDocument = gql` email firstName lastName + permissionsInScope isSuperuser businessAreas { edges { @@ -21582,7 +21599,7 @@ export type ResolversTypes = { ProgramNodeConnection: ResolverTypeWrapper; ProgramNodeEdge: ResolverTypeWrapper; ProgramPartnerAccess: ProgramPartnerAccess; - ProgramPartnerThroughInput: ProgramPartnerThroughInput; + ProgramPartnerAccessInput: ProgramPartnerAccessInput; ProgramScope: ProgramScope; ProgramSector: ProgramSector; ProgramStatus: ProgramStatus; @@ -22029,7 +22046,7 @@ export type ResolversParentTypes = { ProgramNode: ProgramNode; ProgramNodeConnection: ProgramNodeConnection; ProgramNodeEdge: ProgramNodeEdge; - ProgramPartnerThroughInput: ProgramPartnerThroughInput; + ProgramPartnerAccessInput: ProgramPartnerAccessInput; Query: {}; RandomSamplingArguments: RandomSamplingArguments; RapidProArguments: RapidProArguments; @@ -22421,7 +22438,6 @@ export type BulkUpdateGrievanceTicketsUrgencyMutationResolvers = { active?: Resolver; biometricDeduplicationThreshold?: Resolver; - businessAreaPartnerThrough?: Resolver, ParentType, ContextType>; children?: Resolver>; code?: Resolver; createdAt?: Resolver; @@ -22465,13 +22481,13 @@ export type BusinessAreaNodeResolvers; registrationdataimportSet?: Resolver>; reports?: Resolver>; + roleAssignments?: Resolver, ParentType, ContextType>; ruleSet?: Resolver>; screenBeneficiary?: Resolver; slug?: Resolver; surveySet?: Resolver>; tickets?: Resolver>; updatedAt?: Resolver; - userRoles?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; @@ -23977,7 +23993,6 @@ export type PartnerNodeResolvers>; areaAccess?: Resolver, ParentType, ContextType>; areas?: Resolver>>, ParentType, ContextType>; - businessAreaPartnerThrough?: Resolver, ParentType, ContextType>; businessAreas?: Resolver>; grievanceticketSet?: Resolver>; id?: Resolver; @@ -23990,6 +24005,7 @@ export type PartnerNodeResolvers, ParentType, ContextType>; programs?: Resolver>; rght?: Resolver; + roleAssignments?: Resolver, ParentType, ContextType>; treeId?: Resolver; userSet?: Resolver>; __isTypeOf?: IsTypeOfResolverFn; @@ -23998,15 +24014,17 @@ export type PartnerNodeResolvers = { businessArea?: Resolver; createdAt?: Resolver; - partner?: Resolver; - roles?: Resolver, ParentType, ContextType>; + expiryDate?: Resolver, ParentType, ContextType>; + partner?: Resolver, ParentType, ContextType>; + program?: Resolver, ParentType, ContextType>; + role?: Resolver, ParentType, ContextType>; updatedAt?: Resolver; + user?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; export type PartnerTypeResolvers = { allowedBusinessAreas?: Resolver>; - businessAreaPartnerThrough?: Resolver, ParentType, ContextType>; businessAreas?: Resolver>; grievanceticketSet?: Resolver>; id?: Resolver; @@ -24019,6 +24037,7 @@ export type PartnerTypeResolvers, ParentType, ContextType>; programs?: Resolver>; rght?: Resolver; + roleAssignments?: Resolver, ParentType, ContextType>; treeId?: Resolver; userSet?: Resolver>; __isTypeOf?: IsTypeOfResolverFn; @@ -24465,6 +24484,7 @@ export type ProgramNodeResolvers, ParentType, ContextType>; registrationImports?: Resolver>; reports?: Resolver>; + roleAssignments?: Resolver, ParentType, ContextType>; scope?: Resolver, ParentType, ContextType>; sector?: Resolver; startDate?: Resolver; @@ -24884,13 +24904,14 @@ export type RoleChoiceObjectResolvers = { - businessAreaPartnerThrough?: Resolver, ParentType, ContextType>; createdAt?: Resolver; + isAvailableForPartner?: Resolver; + isVisibleOnUi?: Resolver; name?: Resolver; permissions?: Resolver>, ParentType, ContextType>; + roleAssignments?: Resolver, ParentType, ContextType>; subsystem?: Resolver; updatedAt?: Resolver; - userRoles?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; @@ -25708,7 +25729,6 @@ export type UploadImportDataXlsxFileAsyncResolvers = { active?: Resolver; biometricDeduplicationThreshold?: Resolver; - businessAreaPartnerThrough?: Resolver, ParentType, ContextType>; children?: Resolver>; code?: Resolver; createdAt?: Resolver; @@ -25753,13 +25773,13 @@ export type UserBusinessAreaNodeResolvers; registrationdataimportSet?: Resolver>; reports?: Resolver>; + roleAssignments?: Resolver, ParentType, ContextType>; ruleSet?: Resolver>; screenBeneficiary?: Resolver; slug?: Resolver; surveySet?: Resolver>; tickets?: Resolver>; updatedAt?: Resolver; - userRoles?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; @@ -25806,13 +25826,15 @@ export type UserNodeResolvers>; partner?: Resolver; partnerRoles?: Resolver>>, ParentType, ContextType>; + permissionsInScope?: Resolver>>, ParentType, ContextType>; registrationDataImports?: Resolver>; reports?: Resolver>; + roleAssignments?: Resolver, ParentType, ContextType>; sentDeliveryMechanisms?: Resolver>; status?: Resolver; surveys?: Resolver>; ticketNotes?: Resolver>; - userRoles?: Resolver, ParentType, ContextType>; + userRoles?: Resolver>>, ParentType, ContextType>; username?: Resolver; __isTypeOf?: IsTypeOfResolverFn; }; @@ -25835,8 +25857,11 @@ export type UserRoleNodeResolvers; createdAt?: Resolver; expiryDate?: Resolver, ParentType, ContextType>; - role?: Resolver; + partner?: Resolver, ParentType, ContextType>; + program?: Resolver, ParentType, ContextType>; + role?: Resolver, ParentType, ContextType>; updatedAt?: Resolver; + user?: Resolver, ParentType, ContextType>; __isTypeOf?: IsTypeOfResolverFn; }; diff --git a/src/frontend/src/api/api.ts b/src/frontend/src/api/api.ts index 6b5aac9c9b..58273a2f30 100644 --- a/src/frontend/src/api/api.ts +++ b/src/frontend/src/api/api.ts @@ -141,3 +141,34 @@ export const api = { return; }, }; + +export type Params = Record; + +export const handleApiResponse = async (apiCall) => { + try { + const response = await apiCall; + return response; + } catch (error: any) { + console.error('API call failed:', error.message || error); + throw new Error(`API call failed: ${error.message || 'Unknown error'}`); + } +}; + +export const handleMutationError = (error: any, action: string): never => { + const errorMessage = error?.message || 'An unknown error occurred'; + throw new Error(`Failed to ${action}: ${errorMessage}`); +}; + +export const postRequest = async ( + url: string, + body: any, + errorMessage: string, +) => { + try { + const response = await api.post(url, body); + return response.data; + } catch (error) { + handleMutationError(error, errorMessage); + throw error; + } +}; diff --git a/src/frontend/src/api/paymentModuleApi.ts b/src/frontend/src/api/paymentModuleApi.ts index 2beeae38dd..23f0e259ad 100644 --- a/src/frontend/src/api/paymentModuleApi.ts +++ b/src/frontend/src/api/paymentModuleApi.ts @@ -1,27 +1,10 @@ -import { api } from './api'; -import { PaymentPlan } from '@restgenerated/models/PaymentPlan'; - -export const fetchPaymentPlansManagerial = async ( - businessAreaSlug, - params = {}, -): Promise => { - const paramsWithNoLimit = { - ...params, - limit: 10000, - offset: 0, - }; - const response = await api.get( - `${businessAreaSlug}/payments/payment-plans-managerial/`, - paramsWithNoLimit, - ); - return response; -}; +import { api, handleApiResponse, handleMutationError } from './api'; interface BulkActionPaymentPlansManagerialProps { businessAreaSlug: string; ids: string[]; action: string; - comment: string; + comment?: string; } export const bulkActionPaymentPlansManagerial = async ({ @@ -30,21 +13,24 @@ export const bulkActionPaymentPlansManagerial = async ({ action, comment, }: BulkActionPaymentPlansManagerialProps) => { - const payload: { ids: typeof ids; action: typeof action; comment?: string } = - { - ids, - action, - }; + const payload: { ids: string[]; action: string; comment?: string } = { + ids, + action, + }; if (comment) { payload.comment = comment; } - const response = await api.post( - `${businessAreaSlug}/payments/payment-plans-managerial/bulk-action/`, - payload, - ); - return response.data; + try { + const response = await api.post( + `${businessAreaSlug}/payments/payment-plans-managerial/bulk-action/`, + payload, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'perform bulk action on payment plans'); + } }; export const deleteSupportingDocument = async ( @@ -52,15 +38,14 @@ export const deleteSupportingDocument = async ( programId: string, paymentPlanId: string, fileId: string, -) => { +): Promise<{ success: boolean }> => { try { await api.delete( `${businessArea}/programs/${programId}/payment-plans/${paymentPlanId}/supporting-documents/${fileId}/`, ); return { success: true }; - } catch (error: any) { - const errorMessage = error?.message || 'An unknown error occurred'; - throw new Error(`Failed to delete supporting document: ${errorMessage}`); + } catch (error) { + handleMutationError(error, 'delete supporting document'); } }; @@ -70,7 +55,7 @@ export const uploadSupportingDocument = async ( paymentPlanId: string, file: File, title: string, -) => { +): Promise => { const formData = new FormData(); formData.append('file', file); formData.append('title', title); @@ -80,9 +65,9 @@ export const uploadSupportingDocument = async ( `${businessArea}/programs/${programId}/payment-plans/${paymentPlanId}/supporting-documents/`, formData, ); - return response.data; // Return the response data + return response.data; } catch (error) { - throw new Error(`Failed to upload supporting document: ${error.message}`); + handleMutationError(error, 'upload supporting document'); } }; @@ -93,15 +78,11 @@ export const fetchSupportingDocument = async ( fileId: string, fileName: string, ): Promise => { - try { - const response = await api.get( + return handleApiResponse( + api.get( `${businessAreaSlug}/programs/${programId}/payment-plans/${paymentPlanId}/supporting-documents/${fileId}/download/`, {}, fileName, - ); - return response; - } catch (error: any) { - const errorMessage = error?.message || 'An unknown error occurred'; - throw new Error(`Failed to fetch supporting document: ${errorMessage}`); - } + ), + ); }; diff --git a/src/frontend/src/api/periodicDataUpdateApi.ts b/src/frontend/src/api/periodicDataUpdateApi.ts index c64a73c7f8..11a7f7fdfe 100644 --- a/src/frontend/src/api/periodicDataUpdateApi.ts +++ b/src/frontend/src/api/periodicDataUpdateApi.ts @@ -1,55 +1,16 @@ -import { api } from './api'; -import { PaginatedPeriodicDataUpdateTemplateListList } from '@restgenerated/models/PaginatedPeriodicDataUpdateTemplateListList'; -import { PeriodicDataUpdateUploadList } from '@restgenerated/models/PeriodicDataUpdateUploadList'; -import { PeriodicDataUpdateTemplateDetail } from '@restgenerated/models/PeriodicDataUpdateTemplateDetail'; -import { PeriodicDataUpdateUploadDetail } from '@restgenerated/models/PeriodicDataUpdateUploadDetail'; -import { PaginatedPeriodicFieldList } from '@restgenerated/models/PaginatedPeriodicFieldList'; - -export const fetchPeriodicDataUpdateTemplates = async ( - businessAreaSlug: string, - programId: string, - params = {}, -): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/`, - params, - ); - return response; -}; - -export const fetchPeriodicDataUpdateUpdates = async ( - businessAreaSlug, - programId, - params = {}, -): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-uploads/`, - params, - ); - return response; -}; - -export const fetchPeriodicDataUpdateTemplateDetails = async ( - businessAreaSlug, - programId, - templateId, -): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/${templateId}/`, - ); - return response; -}; +import { api, handleApiResponse, Params } from './api'; export const exportPeriodicDataUpdateTemplate = async ( businessAreaSlug: string, programId: string, templateId: string, ): Promise => { - const response = await api.post( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/${templateId}/export/`, - {}, + return handleApiResponse( + api.post( + `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/${templateId}/export/`, + {}, + ), ); - return response; }; export const fetchPeriodicDataUpdateTemplate = async ( @@ -57,20 +18,21 @@ export const fetchPeriodicDataUpdateTemplate = async ( programId: string, templateId: string, ): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/${templateId}/download/`, - {}, - `Periodic_Data_Update_Template_${templateId}`, + return handleApiResponse( + api.get( + `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/${templateId}/download/`, + {}, + `Periodic_Data_Update_Template_${templateId}`, + ), ); - return response; }; export const uploadPeriodicDataUpdateTemplate = async ( businessAreaSlug: string, programId: string, file: File, - additionalParams: Record = {}, -) => { + additionalParams: Params = {}, +): Promise => { const formData = new FormData(); formData.append('file', file); @@ -78,50 +40,29 @@ export const uploadPeriodicDataUpdateTemplate = async ( formData.append(key, additionalParams[key]); }); - const response = await api.post( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-uploads/upload/`, - formData, + return handleApiResponse( + api.post( + `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-uploads/upload/`, + formData, + ), ); - return response; -}; - -export const fetchPeriodicDataUpdateUploadDetails = async ( - businessAreaSlug, - programId, - uploadId, -): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-uploads/${uploadId}/`, - ); - return response; }; export const createPeriodicDataUpdateTemplate = async ( businessAreaSlug: string, programId: string, - roundsData: Record, - filters: Record | null, -) => { + roundsData: Params, + filters: Params | null, +): Promise => { const payload = { rounds_data: roundsData, filters: filters, }; - const response = await api.post( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/`, - payload, - ); - return response; -}; - -export const fetchPeriodicFields = async ( - businessAreaSlug: string, - programId: string, - params = {}, -): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-fields/`, - params, + return handleApiResponse( + api.post( + `${businessAreaSlug}/programs/${programId}/periodic-data-update/periodic-data-update-templates/`, + payload, + ), ); - return response; }; diff --git a/src/frontend/src/api/programCycleApi.ts b/src/frontend/src/api/programCycleApi.ts index 1a88e215a4..79711ab58f 100644 --- a/src/frontend/src/api/programCycleApi.ts +++ b/src/frontend/src/api/programCycleApi.ts @@ -1,9 +1,11 @@ -import { api } from '@api/api'; +import { api, handleApiResponse, handleMutationError } from '@api/api'; export type ProgramCycleStatus = 'Active' | 'Draft' | 'Finished'; type ProgramCycleStatusQuery = 'ACTIVE' | 'DRAFT' | 'FINISHED'; +//TODO: replace with generated types + export interface ProgramCyclesQuery { ordering: string; limit: number; @@ -63,16 +65,8 @@ export const fetchProgramCycles = async ( if (query.status) { params.status = query.status; } - return api.get(`${businessArea}/programs/${programId}/cycles/`, params); -}; - -export const fetchProgramCycle = async ( - businessArea: string, - programId: string, - programCycleId: string, -): Promise => { - return api.get( - `${businessArea}/programs/${programId}/cycles/${programCycleId}/`, + return handleApiResponse( + api.get(`${businessArea}/programs/${programId}/cycles/`, params), ); }; @@ -91,7 +85,15 @@ export const createProgramCycle = async ( programId: string, body: ProgramCycleCreate, ): Promise => { - return api.post(`${businessArea}/programs/${programId}/cycles/`, body); + try { + const response = await api.post( + `${businessArea}/programs/${programId}/cycles/`, + body, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'create program cycle'); + } }; export interface ProgramCycleUpdate { @@ -110,19 +112,29 @@ export const updateProgramCycle = async ( programCycleId: string, body: ProgramCycleUpdate, ): Promise => { - return api.put( - `${businessArea}/programs/${programId}/cycles/${programCycleId}/`, - body, - ); + try { + const response = await api.put( + `${businessArea}/programs/${programId}/cycles/${programCycleId}/`, + body, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'update program cycle'); + } }; + export const deleteProgramCycle = async ( businessArea: string, programId: string, programCycleId: string, ): Promise => { - return api.delete( - `${businessArea}/programs/${programId}/cycles/${programCycleId}/`, - ); + try { + await api.delete( + `${businessArea}/programs/${programId}/cycles/${programCycleId}/`, + ); + } catch (error) { + handleMutationError(error, 'delete program cycle'); + } }; export const finishProgramCycle = async ( @@ -130,10 +142,15 @@ export const finishProgramCycle = async ( programId: string, programCycleId: string, ): Promise => { - return api.post( - `${businessArea}/programs/${programId}/cycles/${programCycleId}/finish/`, - {}, - ); + try { + const response = await api.post( + `${businessArea}/programs/${programId}/cycles/${programCycleId}/finish/`, + {}, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'finish program cycle'); + } }; export const reactivateProgramCycle = async ( @@ -141,8 +158,13 @@ export const reactivateProgramCycle = async ( programId: string, programCycleId: string, ): Promise => { - return api.post( - `${businessArea}/programs/${programId}/cycles/${programCycleId}/reactivate/`, - {}, - ); + try { + const response = await api.post( + `${businessArea}/programs/${programId}/cycles/${programCycleId}/reactivate/`, + {}, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'reactivate program cycle'); + } }; diff --git a/src/frontend/src/api/programsApi.ts b/src/frontend/src/api/programsApi.ts index 9d269d4e4e..c9f9f79746 100644 --- a/src/frontend/src/api/programsApi.ts +++ b/src/frontend/src/api/programsApi.ts @@ -1,24 +1,64 @@ -import { api } from './api'; +import { api, handleApiResponse } from './api'; +// import { ProgramCreate } from '@restgenerated/models/ProgramCreate'; -interface BeneficiaryGroup { +//TODO: Add generated types + +interface Program { id: string; name: string; - group_label: string; - group_label_plural: string; - member_label: string; - member_label_plural: string; - master_detail: boolean; + description: string; + status: string; + business_area: string; + created_at: string; + updated_at: string; +} + +export const fetchProgram = async ( + businessArea: string, + programId: string, +): Promise => { + return handleApiResponse(api.get(`${businessArea}/programs/${programId}/`)); +}; + +//TODO add types + +// export const createProgram = async ( +// businessArea: string, +// body: ProgramCreate, +// ): Promise => { +// return postRequest( +// `${businessArea}/program/create/`, +// body, +// 'create program', +// ); +// }; + +//TODO: Add generated types +interface ProgramsParams { + active?: boolean; + business_area?: string; + limit?: number; + offset?: number; + ordering?: string; + status?: 'ACTIVE' | 'DRAFT' | 'FINISHED'; + updated_at_after?: string; + updated_at_before?: string; +} + +interface Program { + // Define the properties of a Program here } -export interface PaginatedListResponse { +interface PaginatedListResponse { count: number; next?: string; previous?: string; results: T[]; } -export const fetchBeneficiaryGroups = async (): Promise< - PaginatedListResponse -> => { - return api.get('beneficiary-groups/'); +export const fetchPrograms = async ( + params: ProgramsParams, +): Promise> => { + const queryString = new URLSearchParams(params as any).toString(); + return handleApiResponse(api.get(`/api/rest/programs/?${queryString}`)); }; diff --git a/src/frontend/src/api/rdiApi.ts b/src/frontend/src/api/rdiApi.ts index e996d45eaf..221ed6b8f3 100644 --- a/src/frontend/src/api/rdiApi.ts +++ b/src/frontend/src/api/rdiApi.ts @@ -1,4 +1,4 @@ -import { api } from './api'; +import { api, handleApiResponse, handleMutationError } from './api'; import { RegistrationDataImportList } from '@restgenerated/models/RegistrationDataImportList'; export const fetchRegistrationDataImports = async ( @@ -6,19 +6,25 @@ export const fetchRegistrationDataImports = async ( programId: string, params = {}, ): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/registration-data/registration-data-imports/`, - params, + return handleApiResponse( + api.get( + `${businessAreaSlug}/programs/${programId}/registration-data/registration-data-imports/`, + params, + ), ); - return response; }; export const runDeduplicationDataImports = async ( businessAreaSlug: string, programId: string, ): Promise => { - return api.post( - `${businessAreaSlug}/programs/${programId}/registration-data/registration-data-imports/run-deduplication/`, - {}, - ); + try { + const response = await api.post( + `${businessAreaSlug}/programs/${programId}/registration-data/registration-data-imports/run-deduplication/`, + {}, + ); + return response.data; + } catch (error) { + handleMutationError(error, 'run deduplication data imports'); + } }; diff --git a/src/frontend/src/api/sharedApi.ts b/src/frontend/src/api/sharedApi.ts index 0830591ec2..6825a2ae92 100644 --- a/src/frontend/src/api/sharedApi.ts +++ b/src/frontend/src/api/sharedApi.ts @@ -1,10 +1,15 @@ -import { api } from './api'; +import { api, handleApiResponse } from './api'; import { PaginatedAreaList } from '@restgenerated/models/PaginatedAreaList'; export const fetchAreas = async ( businessArea: string, queryParams: string, ): Promise => { - const response = await api.get(`${businessArea}/geo/areas/?${queryParams}`); - return response; + return handleApiResponse( + api.get(`${businessArea}/geo/areas/?${queryParams}`), + ); +}; + +export const fetchMe = async () => { + return handleApiResponse(api.get('profile')); }; diff --git a/src/frontend/src/api/targetPopulationApi.ts b/src/frontend/src/api/targetPopulationApi.ts index 6cde51e809..ceb5652973 100644 --- a/src/frontend/src/api/targetPopulationApi.ts +++ b/src/frontend/src/api/targetPopulationApi.ts @@ -1,4 +1,4 @@ -import { api } from './api'; +import { api, handleApiResponse } from './api'; import { TargetPopulationList } from '@restgenerated/models/TargetPopulationList'; export const fetchTargetPopulations = async ( @@ -6,9 +6,10 @@ export const fetchTargetPopulations = async ( programId: string, params = {}, ): Promise => { - const response = await api.get( - `${businessAreaSlug}/programs/${programId}/targeting/target-populations/`, - params, + return handleApiResponse( + api.get( + `${businessAreaSlug}/programs/${programId}/targeting/target-populations/`, + params, + ), ); - return response; }; diff --git a/src/frontend/src/apollo/queries/core/AllUsers.ts b/src/frontend/src/apollo/queries/core/AllUsers.ts index aefbb626e5..93294409d1 100644 --- a/src/frontend/src/apollo/queries/core/AllUsers.ts +++ b/src/frontend/src/apollo/queries/core/AllUsers.ts @@ -50,6 +50,10 @@ export const ALL_USERS_QUERY = gql` businessArea { name } + program { + id + name + } role { name permissions @@ -57,11 +61,15 @@ export const ALL_USERS_QUERY = gql` } partnerRoles { businessArea { - name - } - roles { - name - permissions + name + } + program { + id + name + } + role { + name + permissions } } } diff --git a/src/frontend/src/apollo/queries/core/Me.ts b/src/frontend/src/apollo/queries/core/Me.ts index 8a0e68f3ce..e37ac05c5a 100644 --- a/src/frontend/src/apollo/queries/core/Me.ts +++ b/src/frontend/src/apollo/queries/core/Me.ts @@ -8,6 +8,7 @@ export const Me = gql` email firstName lastName + permissionsInScope isSuperuser businessAreas { edges { diff --git a/src/frontend/src/components/accountability/Feedback/Messages/Messages.tsx b/src/frontend/src/components/accountability/Feedback/Messages/Messages.tsx index dc42e4af3d..42bd84fdc3 100644 --- a/src/frontend/src/components/accountability/Feedback/Messages/Messages.tsx +++ b/src/frontend/src/components/accountability/Feedback/Messages/Messages.tsx @@ -10,7 +10,6 @@ import { FeedbackDocument, FeedbackQuery, useCreateFeedbackMsgMutation, - useMeQuery, } from '@generated/graphql'; import { LoadingButton } from '@core/LoadingButton'; import { OverviewContainerColumn } from '@core/OverviewContainerColumn'; @@ -18,6 +17,8 @@ import { Title } from '@core/Title'; import { UniversalMoment } from '@core/UniversalMoment'; import { ReactElement } from 'react'; import withErrorBoundary from '@components/core/withErrorBoundary'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; const Name = styled.span` font-size: 16px; @@ -43,8 +44,12 @@ interface MessagesProps { function Messages({ messages, canAddMessage }: MessagesProps): ReactElement { const { t } = useTranslation(); - const { data: meData, loading: meLoading } = useMeQuery({ - fetchPolicy: 'cache-and-network', + + const { data: meData, isLoading: meLoading } = useQuery({ + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, }); const { id } = useParams(); @@ -99,7 +104,7 @@ function Messages({ messages, canAddMessage }: MessagesProps): ReactElement { newNote: Yup.string().required(t('Note cannot be empty')), }); - const myName = `${meData.me.firstName || meData.me.email}`; + const myName = `${meData.firstName || meData.email}`; return ( @@ -134,7 +139,7 @@ function Messages({ messages, canAddMessage }: MessagesProps): ReactElement { - {renderUserName(meData.me)} + {renderUserName(meData)} diff --git a/src/frontend/src/components/core/AppBar.tsx b/src/frontend/src/components/core/AppBar.tsx index 04e9966fe1..a923f57402 100644 --- a/src/frontend/src/components/core/AppBar.tsx +++ b/src/frontend/src/components/core/AppBar.tsx @@ -1,7 +1,6 @@ import { BusinessAreaSelect } from '@containers/BusinessAreaSelect'; import { GlobalProgramSelect } from '@containers/GlobalProgramSelect'; import { UserProfileMenu } from '@containers/UserProfileMenu'; -import { useCachedMe } from '@hooks/useCachedMe'; import MenuIcon from '@mui/icons-material/Menu'; import TextsmsIcon from '@mui/icons-material/Textsms'; import { Box, Button } from '@mui/material'; @@ -10,7 +9,9 @@ import IconButton from '@mui/material/IconButton'; import Toolbar from '@mui/material/Toolbar'; import { styled } from '@mui/system'; import { ReactElement } from 'react'; -import { theme as muiTheme } from 'src/theme'; +import { theme as muiTheme } from 'src/theme'; +import { RestService } from '@restgenerated/services/RestService'; +import { useQuery } from '@tanstack/react-query'; const StyledToolbar = styled(Toolbar)(() => ({ display: 'flex', @@ -26,35 +27,32 @@ interface AppBarProps { open: boolean; } - -const StyledAppBar = styled(MuiAppBar)( - ({ open }) => ({ - position: 'fixed', - top: 0, - zIndex: muiTheme.zIndex.drawer + 1, - backgroundColor: muiTheme.palette.secondary.main, +const StyledAppBar = styled(MuiAppBar)(({ open }) => ({ + position: 'fixed', + top: 0, + zIndex: muiTheme.zIndex.drawer + 1, + backgroundColor: muiTheme.palette.secondary.main, + transition: muiTheme.transitions.create(['width', 'margin'], { + easing: muiTheme.transitions.easing.sharp, + duration: muiTheme.transitions.duration.leavingScreen, + }), + ...(open && { + marginLeft: '270px', + width: 'calc(100% - 270px)', transition: muiTheme.transitions.create(['width', 'margin'], { easing: muiTheme.transitions.easing.sharp, - duration: muiTheme.transitions.duration.leavingScreen, - }), - ...(open && { - marginLeft: '270px', - width: 'calc(100% - 270px)', - transition: muiTheme.transitions.create(['width', 'margin'], { - easing: muiTheme.transitions.easing.sharp, - duration: muiTheme.transitions.duration.enteringScreen, - }), + duration: muiTheme.transitions.duration.enteringScreen, }), - ...(!open && { - marginLeft: '0', - width: '100%', - transition: muiTheme.transitions.create(['width', 'margin'], { - easing: muiTheme.transitions.easing.sharp, - duration: muiTheme.transitions.duration.leavingScreen, - }), + }), + ...(!open && { + marginLeft: '0', + width: '100%', + transition: muiTheme.transitions.create(['width', 'margin'], { + easing: muiTheme.transitions.easing.sharp, + duration: muiTheme.transitions.duration.leavingScreen, }), }), -); +})); const StyledIconButton = styled(IconButton)(({ open }) => ({ marginRight: 36, @@ -64,7 +62,13 @@ const StyledIconButton = styled(IconButton)(({ open }) => ({ })); export const AppBar = ({ open, handleDrawerOpen }): ReactElement => { - const { data: meData, loading: meLoading } = useCachedMe(); + const { data: meData, isLoading: meLoading } = useQuery({ + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, + }); + const servicenow = `https://unicef.service-now.com/cc?id=sc_cat_item&sys_id=762ae3128747d91021cb670a0cbb35a7&HOPE - ${ window.location.pathname.split('/')[2] }&Workspace: ${window.location.pathname.split('/')[1]} \n Url: ${ @@ -75,7 +79,7 @@ export const AppBar = ({ open, handleDrawerOpen }): ReactElement => { return null; } return ( - + diff --git a/src/frontend/src/components/core/DocumentSearchField.test.tsx b/src/frontend/src/components/core/DocumentSearchField.test.tsx deleted file mode 100644 index 0538af173c..0000000000 --- a/src/frontend/src/components/core/DocumentSearchField.test.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { render } from '../../testUtils/testUtils'; -import { DocumentSearchField } from '@core/DocumentSearchField'; - -describe('components/core/DocumentSearchField', () => { - it('should render', () => { - const onChangeHandler = () => {}; - const choices = [ - { value: 'Document 1', name: 'Document 1' }, - { value: 'Document 2', name: 'Document 2' }, - { value: 'Document 3', name: 'Document 3' }, - { value: 'Document 4', name: 'Document 4' }, - ]; - - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.test.tsx b/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.test.tsx new file mode 100644 index 0000000000..c53d5a58f1 --- /dev/null +++ b/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.test.tsx @@ -0,0 +1,17 @@ +import { expect, it } from 'vitest'; +import MockExampleProfile from './MockExampleProfile'; +import { waitFor, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { renderWithProviders } from 'src/testUtils/testUtils'; + +it('MockExampleProfile renders correctly after data is fetched', async () => { + const { asFragment } = renderWithProviders(); + + // Wait for an element that indicates the data has been loaded + await waitFor(() => { + expect(screen.getByText(/Profile Details/i)).toBeInTheDocument(); + }); + + // Take the snapshot after ensuring the data is loaded + expect(asFragment()).toMatchSnapshot(); +}); diff --git a/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.tsx b/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.tsx new file mode 100644 index 0000000000..918a4e2dc9 --- /dev/null +++ b/src/frontend/src/components/core/MockExampleProfile/MockExampleProfile.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; + +const MockExampleProfile = () => { + const { data: meData, isLoading: meLoading } = useQuery({ + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, + }); + + return ( +
+ {meLoading ? ( + 'Loading...' + ) : ( +
+

Profile Details

+ {meData?.first_name} {meData?.last_name} +
+ )} +
+ ); +}; + +export default MockExampleProfile; diff --git a/src/frontend/src/components/core/MockExampleProfile/__snapshots__/MockExampleProfile.test.tsx.snap b/src/frontend/src/components/core/MockExampleProfile/__snapshots__/MockExampleProfile.test.tsx.snap new file mode 100644 index 0000000000..2ee721c8c0 --- /dev/null +++ b/src/frontend/src/components/core/MockExampleProfile/__snapshots__/MockExampleProfile.test.tsx.snap @@ -0,0 +1,16 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`MockExampleProfile renders correctly after data is fetched 1`] = ` + +
+
+

+ Profile Details +

+ Root Rootkowski +
+
+
+`; diff --git a/src/frontend/src/components/core/__snapshots__/DocumentSearchField.test.tsx.snap b/src/frontend/src/components/core/__snapshots__/DocumentSearchField.test.tsx.snap deleted file mode 100644 index e5b1c9f96e..0000000000 --- a/src/frontend/src/components/core/__snapshots__/DocumentSearchField.test.tsx.snap +++ /dev/null @@ -1,149 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/core/DocumentSearchField should render 1`] = ` -
-
-
-
-
-
- -
- - - - -
-
-
-
-
-
-
- -
-
- - -
- - -
-
-
-
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/GrievancesSection/GrievancesSection.test.tsx b/src/frontend/src/components/dashboard/sections/GrievancesSection/GrievancesSection.test.tsx deleted file mode 100644 index cc0c1246f1..0000000000 --- a/src/frontend/src/components/dashboard/sections/GrievancesSection/GrievancesSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { GrievancesSection } from './GrievancesSection'; -import { fakeChartGrievances } from '../../../../../fixtures/dashboard/fakeChartGrievances'; - -describe('components/dashboard/GrievancesSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/GrievancesSection/__snapshots__/GrievancesSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/GrievancesSection/__snapshots__/GrievancesSection.test.tsx.snap deleted file mode 100644 index bfb5428bc8..0000000000 --- a/src/frontend/src/components/dashboard/sections/GrievancesSection/__snapshots__/GrievancesSection.test.tsx.snap +++ /dev/null @@ -1,70 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/GrievancesSection should render 1`] = ` -
-
-
- Grievances and Feedback -
-
-
-
- TOTAL NUMBER OF GRIEVANCES -
- - 3 - -
-
-
- TOTAL NUMBER OF FEEDBACK -
- - 0 - -
-
-
- -
-
- NUMBER OF OPEN SENSITIVE GRIEVANCES -
- - 0 - -
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/PaymentVerificationSection.test.tsx b/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/PaymentVerificationSection.test.tsx deleted file mode 100644 index d051cd7634..0000000000 --- a/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/PaymentVerificationSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { PaymentVerificationSection } from './PaymentVerificationSection'; -import { fakeChartPaymentVerification } from '../../../../../fixtures/dashboard/fakeChartPaymentVerification'; - -describe('components/dashboard/PaymentVerificationSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/__snapshots__/PaymentVerificationSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/__snapshots__/PaymentVerificationSection.test.tsx.snap deleted file mode 100644 index 598bea165a..0000000000 --- a/src/frontend/src/components/dashboard/sections/PaymentVerificationSection/__snapshots__/PaymentVerificationSection.test.tsx.snap +++ /dev/null @@ -1,44 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/PaymentVerificationSection should render 1`] = ` -
-
-
- Payment Verification -
-
-
- 0 - - Households contacted -
- - 0 - % - average sampling - -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/TotalAmountTransferredByCountrySection.test.tsx b/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/TotalAmountTransferredByCountrySection.test.tsx deleted file mode 100644 index a7c4ddf7c4..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/TotalAmountTransferredByCountrySection.test.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalAmountTransferredByCountrySection } from './TotalAmountTransferredByCountrySection'; -import { fakeChartTotalTransferredCashByCountry } from '../../../../../fixtures/dashboard/fakeChartTotalTransferredCashByCountry'; - -describe('components/dashboard/TotalAmountTransferredByCountrySection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/__snapshots__/TotalAmountTransferredByCountrySection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/__snapshots__/TotalAmountTransferredByCountrySection.test.tsx.snap deleted file mode 100644 index 287f71ba16..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredByCountrySection/__snapshots__/TotalAmountTransferredByCountrySection.test.tsx.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/TotalAmountTransferredByCountrySection should render 1`] = `
`; diff --git a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/TotalAmountTransferredSection.test.tsx b/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/TotalAmountTransferredSection.test.tsx deleted file mode 100644 index 8107c6f007..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/TotalAmountTransferredSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalAmountTransferredSection } from './TotalAmountTransferredSection'; -import { fakeSectionTotalTransferred } from '../../../../../fixtures/dashboard/fakeSectionTotalTransferred'; - -describe('components/dashboard/TotalAmountTransferredSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/__snapshots__/TotalAmountTransferredSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/__snapshots__/TotalAmountTransferredSection.test.tsx.snap deleted file mode 100644 index 767156a233..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalAmountTransferredSection/__snapshots__/TotalAmountTransferredSection.test.tsx.snap +++ /dev/null @@ -1,69 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/TotalAmountTransferredSection should render 1`] = ` -
-
-
-
-
- TOTAL AMOUNT TRANSFERRED -
-
- IN USD -
-
-
-
-
-
- USD 1,719.00 -
-
-
-
- -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/TotalNumberOfChildrenReachedSection.test.tsx b/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/TotalNumberOfChildrenReachedSection.test.tsx deleted file mode 100644 index 188eb7a98a..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/TotalNumberOfChildrenReachedSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalNumberOfChildrenReachedSection } from './TotalNumberOfChildrenReachedSection'; -import { fakeSectionChildReached } from '../../../../../fixtures/dashboard/fakeSectionChildReached'; - -describe('components/dashboard/TotalNumberOfChildrenReachedSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/__snapshots__/TotalNumberOfChildrenReachedSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/__snapshots__/TotalNumberOfChildrenReachedSection.test.tsx.snap deleted file mode 100644 index 57ef1cd4bd..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfChildrenReachedSection/__snapshots__/TotalNumberOfChildrenReachedSection.test.tsx.snap +++ /dev/null @@ -1,62 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/TotalNumberOfChildrenReachedSection should render 1`] = ` -
-
-
- TOTAL NUMBER OF CHILDREN REACHED -
-
-
-
- 0 -
-
-
-
- -
-
-
-
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/TotalNumberOfHouseholdsReachedSection.test.tsx b/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/TotalNumberOfHouseholdsReachedSection.test.tsx deleted file mode 100644 index c9c9f4b253..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/TotalNumberOfHouseholdsReachedSection.test.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalNumberOfHouseholdsReachedSection } from './TotalNumberOfHouseholdsReachedSection'; -import { fakeSectionHouseholdsReached } from '../../../../../fixtures/dashboard/fakeSectionHouseholdsReached'; - -describe('components/dashboard/TotalNumberOfHouseholdsReachedSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/__snapshots__/TotalNumberOfHouseholdsReachedSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/__snapshots__/TotalNumberOfHouseholdsReachedSection.test.tsx.snap deleted file mode 100644 index de82b359ef..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfHouseholdsReachedSection/__snapshots__/TotalNumberOfHouseholdsReachedSection.test.tsx.snap +++ /dev/null @@ -1,52 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/TotalNumberOfHouseholdsReachedSection should render 1`] = ` -
-
-
- TOTAL NUMBER OF HOUSEHOLDS REACHED -
-
-
-
- 1 -
-
-
-
- -
-
-
-
-
-`; diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/TotalNumberOfIndividualsReachedSection.test.tsx b/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/TotalNumberOfIndividualsReachedSection.test.tsx deleted file mode 100644 index e8859cc9c2..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/TotalNumberOfIndividualsReachedSection.test.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalNumberOfIndividualsReachedSection } from './TotalNumberOfIndividualsReachedSection'; -import { fakeSectionIndividualsReached } from '../../../../../fixtures/dashboard/fakeSectionIndividualsReached'; -import { fakeChartIndividualsReachedByAgeAndGender } from '../../../../../fixtures/dashboard/fakeChartIndividualsReachedByAgeAndGender'; -import { fakeChartIndividualsWithDisabilityReachedByAge } from '../../../../../fixtures/dashboard/fakeChartIndividualsWithDisabilityReachedByAge'; - -describe('components/dashboard/TotalNumberOfIndividualsReachedSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/__snapshots__/TotalNumberOfIndividualsReachedSection.test.tsx.snap b/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/__snapshots__/TotalNumberOfIndividualsReachedSection.test.tsx.snap deleted file mode 100644 index c01d96af7a..0000000000 --- a/src/frontend/src/components/dashboard/sections/TotalNumberOfIndividualsReachedSection/__snapshots__/TotalNumberOfIndividualsReachedSection.test.tsx.snap +++ /dev/null @@ -1,52 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/dashboard/TotalNumberOfIndividualsReachedSection should render 1`] = ` -
-
-
- TOTAL NUMBER OF INDIVIDUALS REACHED -
-
-
-
- 0 -
-
-
-
- -
-
-
-
-
-`; diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/TicketsByCategorySection.test.tsx b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/TicketsByCategorySection.test.tsx deleted file mode 100644 index f89cbd5d2c..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/TicketsByCategorySection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../../testUtils/testUtils'; -import { fakeChartTicketsByCategory } from '../../../../../../fixtures/grievances/grievancesDashboard/fakeChartTicketsByCategory'; -import { TicketsByCategorySection } from './TicketsByCategorySection'; - -describe('components/grievances/GrievancesDashboard/TicketsByCategorySection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/__snapshots__/TicketsByCategorySection.test.tsx.snap b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/__snapshots__/TicketsByCategorySection.test.tsx.snap deleted file mode 100644 index 37e8f60e50..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByCategorySection/__snapshots__/TicketsByCategorySection.test.tsx.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/GrievancesDashboard/TicketsByCategorySection should render 1`] = ` -
-
-
- Tickets by Category -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/TicketsByLocationAndCategorySection.test.tsx b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/TicketsByLocationAndCategorySection.test.tsx deleted file mode 100644 index 7a9aacc6f0..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/TicketsByLocationAndCategorySection.test.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { render } from '../../../../../testUtils/testUtils'; -import { fakeChartTicketsByLocationAndCategory } from '../../../../../../fixtures/grievances/grievancesDashboard/fakeChartTicketsByLocationAndCategory'; -import { TicketsByLocationAndCategorySection } from './TicketsByLocationAndCategorySection'; - -describe('components/grievances/GrievancesDashboard/TicketsByLocationAndCategorySection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/__snapshots__/TicketsByLocationAndCategorySection.test.tsx.snap b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/__snapshots__/TicketsByLocationAndCategorySection.test.tsx.snap deleted file mode 100644 index d192d810d3..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByLocationAndCategorySection/__snapshots__/TicketsByLocationAndCategorySection.test.tsx.snap +++ /dev/null @@ -1,30 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/GrievancesDashboard/TicketsByLocationAndCategorySection should render 1`] = ` -
-
-
- Tickets by Category and Location -
-
-
- -
-
-
-
-`; diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/TicketsByStatusSection.test.tsx b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/TicketsByStatusSection.test.tsx deleted file mode 100644 index 53a564bbbb..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/TicketsByStatusSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../../testUtils/testUtils'; -import { fakeChartTicketsByStatus } from '../../../../../../fixtures/grievances/grievancesDashboard/fakeChartTicketsByStatus'; -import { TicketsByStatusSection } from './TicketsByStatusSection'; - -describe('components/grievances/GrievancesDashboard/TicketsByStatusSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/__snapshots__/TicketsByStatusSection.test.tsx.snap b/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/__snapshots__/TicketsByStatusSection.test.tsx.snap deleted file mode 100644 index 985611da41..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDashboard/sections/TicketsByStatusSection/__snapshots__/TicketsByStatusSection.test.tsx.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/GrievancesDashboard/TicketsByStatusSection should render 1`] = ` -
-
-
- Tickets by Status -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/grievances/GrievancesDetails/GrievancesDetails.test.tsx b/src/frontend/src/components/grievances/GrievancesDetails/GrievancesDetails.test.tsx deleted file mode 100644 index 1c3c478f66..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDetails/GrievancesDetails.test.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { render } from '../../../testUtils/testUtils'; -import { fakeGrievanceTicket } from '../../../../fixtures/grievances/fakeGrievanceTicket'; -import { fakeGrievancesChoices } from '../../../../fixtures/grievances/fakeGrievancesChoices'; -import { fakeBaseUrl } from '../../../../fixtures/core/fakeBaseUrl'; -import GrievancesDetails from './GrievancesDetails'; - -describe('components/grievances/GrievancesDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/GrievancesDetails/__snapshots__/GrievancesDetails.test.tsx.snap b/src/frontend/src/components/grievances/GrievancesDetails/__snapshots__/GrievancesDetails.test.tsx.snap deleted file mode 100644 index 1d3d179089..0000000000 --- a/src/frontend/src/components/grievances/GrievancesDetails/__snapshots__/GrievancesDetails.test.tsx.snap +++ /dev/null @@ -1,469 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/GrievancesDetails should render 1`] = ` -
-
-
-
-
- Details -
-
-
-
-
-
- - Status - -
- -
-
- In Progress -
-
-
-
-
-
-
-
- - Priority - -
- -
-
- High -
-
-
-
-
-
-
-
- - Urgency - -
- -
-
- Very urgent -
-
-
-
-
-
-
-
- - Assigned to - -
- - Maciej Szewczyk - -
-
-
-
-
- - Category - -
- - - Data Change - - -
-
-
-
-
- - Issue Type - -
- - - Withdraw Individual - - -
-
-
-
-
- - Household ID - - -
-
-
-
- - Individual ID - - -
-
-
-
- - Payment ID - -
- - - - - - -
-
-
-
-
- - Payment Plan - -
- - - - - - -
-
-
-
-
- - Payment Plan Verification - -
- - - - - - -
-
-
-
-
- - Programme - -
- - - - -
-
-
-
-
- - Created By - -
- - Maciej Szewczyk - -
-
-
-
-
- - Date Created - -
- - - -
-
-
-
-
- - Last Modified Date - -
- - - -
-
-
-
-
- - Documentation - -
- -
- - -
-
-
-
-
-
-
- - Description - -
- - dwdw - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/grievances/GrievancesTable/GrievancesTable.tsx b/src/frontend/src/components/grievances/GrievancesTable/GrievancesTable.tsx index 68d08c7f10..f7279bd6ad 100644 --- a/src/frontend/src/components/grievances/GrievancesTable/GrievancesTable.tsx +++ b/src/frontend/src/components/grievances/GrievancesTable/GrievancesTable.tsx @@ -8,7 +8,6 @@ import { useAllGrievanceTicketQuery, useAllUsersForFiltersLazyQuery, useGrievancesChoiceDataQuery, - useMeQuery, } from '@generated/graphql'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { useDebounce } from '@hooks/useDebounce'; @@ -37,6 +36,8 @@ import { BulkAssignModal } from './bulk/BulkAssignModal'; import { BulkSetPriorityModal } from './bulk/BulkSetPriorityModal'; import { BulkSetUrgencyModal } from './bulk/BulkSetUrgencyModal'; import { useProgramContext } from 'src/programContext'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; interface GrievancesTableProps { filter; @@ -135,8 +136,16 @@ export const GrievancesTable = ({ const { data: choicesData, loading: choicesLoading } = useGrievancesChoiceDataQuery(); - const { data: currentUserData, loading: currentUserDataLoading } = - useMeQuery(); + + const { data: currentUserData, isLoading: currentUserDataLoading } = useQuery( + { + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, + }, + ); + const permissions = usePermissions(); if (choicesLoading || currentUserDataLoading) return ; @@ -153,7 +162,7 @@ export const GrievancesTable = ({ const issueTypeChoicesData = choicesData.grievanceTicketIssueTypeChoices; const priorityChoicesData = choicesData.grievanceTicketPriorityChoices; const urgencyChoicesData = choicesData.grievanceTicketUrgencyChoices; - const currentUserId = currentUserData.me.id; + const currentUserId = currentUserData.id; const getCanViewDetailsOfTicket = ( ticket: AllGrievanceTicketQuery['allGrievanceTicket']['edges'][number]['node'], diff --git a/src/frontend/src/components/grievances/Notes/Notes.tsx b/src/frontend/src/components/grievances/Notes/Notes.tsx index 4575fedf9c..12cf5e73cf 100644 --- a/src/frontend/src/components/grievances/Notes/Notes.tsx +++ b/src/frontend/src/components/grievances/Notes/Notes.tsx @@ -10,7 +10,6 @@ import { GrievanceTicketDocument, GrievanceTicketQuery, useCreateGrievanceTicketNoteMutation, - useMeQuery, } from '@generated/graphql'; import { LoadingButton } from '@core/LoadingButton'; import { OverviewContainerColumn } from '@core/OverviewContainerColumn'; @@ -18,6 +17,8 @@ import { Title } from '@core/Title'; import { UniversalMoment } from '@core/UniversalMoment'; import { useProgramContext } from '../../../programContext'; import { ReactElement } from 'react'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; const Name = styled.span` font-size: 16px; @@ -44,8 +45,11 @@ export function Notes({ canAddNote: boolean; }): ReactElement { const { t } = useTranslation(); - const { data: meData, loading: meLoading } = useMeQuery({ - fetchPolicy: 'cache-and-network', + const { data: meData, isLoading: meLoading } = useQuery({ + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, }); const { id } = useParams(); @@ -63,10 +67,10 @@ export function Notes({ noteId: string, ): ReactElement => ( - + - + + - + - + - {renderUserName(meData.me)} + {renderUserName(meData)} diff --git a/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/PaymentGrievanceDetails.test.tsx b/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/PaymentGrievanceDetails.test.tsx deleted file mode 100644 index 50ee3b4848..0000000000 --- a/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/PaymentGrievanceDetails.test.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeApolloApprovePaymentDetailsMutation } from '../../../../../fixtures/grievances/fakeApolloApprovePaymentDetailsMutation'; -import { fakeGrievanceTicketPaymentVerification } from '../../../../../fixtures/grievances/fakeGrievanceTicketPaymentVerification'; -import { PaymentGrievanceDetails } from '.'; - -describe('components/grievances/PaymentGrievanceDetails', () => { - it('should render with data', () => { - const { container } = render( - - - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/__snapshots__/PaymentGrievanceDetails.test.tsx.snap b/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/__snapshots__/PaymentGrievanceDetails.test.tsx.snap deleted file mode 100644 index 4c9c41f7ab..0000000000 --- a/src/frontend/src/components/grievances/PaymentGrievance/PaymentGrievanceDetails/__snapshots__/PaymentGrievanceDetails.test.tsx.snap +++ /dev/null @@ -1,93 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/PaymentGrievanceDetails should render with data 1`] = ` -
-
-
-
-
- Payment Details -
-
-
- - - - - - - - - - - - - - -
- - Entitlement Value - ($) - - Delivered Value - ($) - - Received Value - ($) - - New Verified Value - ($) -
- - - - - 0 -
-
-
-`; diff --git a/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/VerifyPaymentGrievance.test.tsx b/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/VerifyPaymentGrievance.test.tsx deleted file mode 100644 index de61809661..0000000000 --- a/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/VerifyPaymentGrievance.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation } from '../../../../../fixtures/grievances/fakeApolloUpdateGrievanceDetailsPaymentVerificationMutation'; -import { fakeGrievanceTicketPaymentVerification } from '../../../../../fixtures/grievances/fakeGrievanceTicketPaymentVerification'; -import { VerifyPaymentGrievance } from './VerifyPaymentGrievance'; - -describe('components/grievances/VerifyPaymentGrievance', () => { - it('should render with data', () => { - const { container } = render( - - - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/__snapshots__/VerifyPaymentGrievance.test.tsx.snap b/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/__snapshots__/VerifyPaymentGrievance.test.tsx.snap deleted file mode 100644 index 6d5645d682..0000000000 --- a/src/frontend/src/components/grievances/PaymentGrievance/VerifyPaymentGrievance/__snapshots__/VerifyPaymentGrievance.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/grievances/VerifyPaymentGrievance should render with data 1`] = ` -
-
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.tsx b/src/frontend/src/components/paymentmodule/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.tsx index 3844796cc1..eb9f6dba06 100644 --- a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.tsx +++ b/src/frontend/src/components/paymentmodule/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.tsx @@ -7,9 +7,9 @@ import { PageHeader } from '@core/PageHeader'; import { LoadingButton } from '@core/LoadingButton'; import { decodeIdString } from '@utils/utils'; import { useQuery } from '@tanstack/react-query'; -import { fetchProgramCycle } from '@api/programCycleApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { ReactElement } from 'react'; +import { RestService } from '@restgenerated/services/RestService'; interface CreatePaymentPlanHeaderProps { handleSubmit: () => Promise; @@ -33,14 +33,14 @@ export function CreatePaymentPlanHeader({ queryKey: [ 'programCyclesDetails', businessArea, - programId, decodedProgramCycleId, + programId, ], - queryFn: async () => { - return fetchProgramCycle( + queryFn: () => { + return RestService.restProgramsCyclesRetrieve( businessArea, - programId, decodedProgramCycleId, + programId, ); }, }, diff --git a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx b/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx deleted file mode 100644 index 35d20f600f..0000000000 --- a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { fakeAllTargetPopulation } from '../../../../../fixtures/targeting/fakeAllTargetPopulation'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanTargeting } from './PaymentPlanTargeting'; - -describe('components/paymentmodule/PaymentPlanTargeting', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap b/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap deleted file mode 100644 index f778ca0b9d..0000000000 --- a/src/frontend/src/components/paymentmodule/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap +++ /dev/null @@ -1,115 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanTargeting should render 1`] = ` -
-
-
-
- Target Population -
-
-
-
-
-
-
- -
- - - - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx deleted file mode 100644 index 971e8c94b5..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { CreateSetUpFspHeader } from './CreateSetUpFspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap deleted file mode 100644 index 758a5c2df8..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap +++ /dev/null @@ -1,78 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Set up FSP -
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx deleted file mode 100644 index 820f859e1a..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { fakeDeliveryMechanisms } from '../../../../../fixtures/paymentmodule/fakeDeliveryMechanisms'; -import { fakeFspsData } from '../../../../../fixtures/paymentmodule/fakeFspsData'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { DeliveryMechanismRow } from './DeliveryMechanismRow'; - -describe('components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow', () => { - it('should render', () => { - const values = { - deliveryMechanisms: [ - { - deliveryMechanism: '', - fsp: '', - chosenConfiguration: '', - }, - ], - }; - const mapping = fakeFspsData?.availableFspsForDeliveryMechanisms[0]; - const mappedFsps = mapping?.fsps.map((el) => ({ - name: el.name, - value: el.id, - })); - const deliveryMechanismsChoices = - fakeDeliveryMechanisms.allDeliveryMechanisms.map((el) => ({ - name: el.name, - value: el.value, - })); - - const { container } = render( - {}} - />, - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap deleted file mode 100644 index 1bcba8d19b..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap +++ /dev/null @@ -1,91 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow should render 1`] = ` -
-
-
-
-
-
-
- -
- - - - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx deleted file mode 100644 index 67d1452daa..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { act } from 'react'; -import wait from 'waait'; -import { render } from '../../../../testUtils/testUtils'; -import { SetUpFspButtonActions } from './SetUpFspButtonActions'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions', () => { - it('should render', async () => { - const step = 0; - const setStep = jest.fn(); - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const submitForm = (_values): Promise => Promise.resolve(); - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap deleted file mode 100644 index 034b47d1a1..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap +++ /dev/null @@ -1,31 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions should render 1`] = ` -
-
- - -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx deleted file mode 100644 index a683ac106a..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { act } from 'react'; - -import wait from 'waait'; -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeDeliveryMechanisms } from '../../../../../fixtures/paymentmodule/fakeDeliveryMechanisms'; -import { fakeChooseDeliveryMechForPaymentPlanMutation } from '../../../../../fixtures/paymentmodule/fakeChooseDeliveryMechForPaymentPlanMutation'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { SetUpFspCore } from './SetUpFspCore'; - -describe('components/paymentmodule/CreateSetUpFsp/SetUpFspCore', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap b/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap deleted file mode 100644 index fbfec4c224..0000000000 --- a/src/frontend/src/components/paymentmodule/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/SetUpFspCore should render 1`] = `
`; diff --git a/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/EditFspHeader.test.tsx b/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/EditFspHeader.test.tsx deleted file mode 100644 index 75003dcf84..0000000000 --- a/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/EditFspHeader.test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditFspHeader } from './EditFspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/EditFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap deleted file mode 100644 index bbce2038fc..0000000000 --- a/src/frontend/src/components/paymentmodule/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap +++ /dev/null @@ -1,103 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditFspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Edit FSP -
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx b/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx deleted file mode 100644 index 390c7a9b34..0000000000 --- a/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditPaymentPlanHeader } from './EditPaymentPlanHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/EditPaymentPlanHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap deleted file mode 100644 index 04a963eec1..0000000000 --- a/src/frontend/src/components/paymentmodule/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap +++ /dev/null @@ -1,124 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditPaymentPlanHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
-
- Follow-up Payment Plan - ID - - PP-0060-25-00000007 -
-
-
- ACCEPTED -
-
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/EditSetUpFsp/DeliveryMechanismWarning.test.tsx b/src/frontend/src/components/paymentmodule/EditSetUpFsp/DeliveryMechanismWarning.test.tsx deleted file mode 100644 index c3f812da43..0000000000 --- a/src/frontend/src/components/paymentmodule/EditSetUpFsp/DeliveryMechanismWarning.test.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '../../../testUtils/testUtils'; -import { DeliveryMechanismWarning } from './DeliveryMechanismWarning'; - -describe('components/paymentmodule/DeliveryMechanismWarning', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx b/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx deleted file mode 100644 index a6eec2cf23..0000000000 --- a/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditSetUpFspHeader } from './EditSetUpFspHeader'; - -describe('components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap deleted file mode 100644 index 1fdbbf227e..0000000000 --- a/src/frontend/src/components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap +++ /dev/null @@ -1,45 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader should render 1`] = ` -
-
-
-
-
-
-
-
- Edit Set up FSP -
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap b/src/frontend/src/components/paymentmodule/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap deleted file mode 100644 index 4ccff182a5..0000000000 --- a/src/frontend/src/components/paymentmodule/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/DeliveryMechanismWarning should render 1`] = ` -
-
- - Test DM warning comp -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/FspHeader.test.tsx b/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/FspHeader.test.tsx deleted file mode 100644 index 3e5d44d3c0..0000000000 --- a/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/FspHeader.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { FspHeader } from './FspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/FspPlanDetails/FspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap deleted file mode 100644 index e04fb7f165..0000000000 --- a/src/frontend/src/components/paymentmodule/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap +++ /dev/null @@ -1,110 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/FspPlanDetails/FspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Set up FSP -
-
-
-
-
- -
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/TotalAmount.test.tsx b/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/TotalAmount.test.tsx deleted file mode 100644 index 5941030a5a..0000000000 --- a/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/TotalAmount.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalAmount } from './TotalAmount'; - -describe('components/paymentmodule/FspPlanDetails/TotalAmount', () => { - it('should render', () => { - const { container } = render(); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap b/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap deleted file mode 100644 index 5d51a4d870..0000000000 --- a/src/frontend/src/components/paymentmodule/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap +++ /dev/null @@ -1,30 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/FspPlanDetails/TotalAmount should render 1`] = ` -
-
-
-
-
-
- Total Amount - (PLN) - per FSP -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx deleted file mode 100644 index 68d4822fc1..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { AcceptanceProcessRow } from './AcceptanceProcessRow'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx deleted file mode 100644 index 14ccf09876..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../../testUtils/testUtils'; -import { AcceptanceProcessStepper } from './AcceptanceProcessStepper'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper', () => { - it('should render default step Sent for Approval Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Approval Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Authorization Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Finance Release Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap deleted file mode 100644 index 1b48d0f29f..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap +++ /dev/null @@ -1,477 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render default step Sent for Approval Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Approval Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Authorization Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Finance Release Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx deleted file mode 100644 index 0c99715ca5..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { GreyInfoCard } from './GreyInfoCard'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx deleted file mode 100644 index c5dae3abfc..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeApolloMe } from '../../../../../fixtures/core/fakeApolloMe'; -import { render } from '../../../../testUtils/testUtils'; -import { MessageDialog } from './MessageDialog'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap deleted file mode 100644 index 47743d6ba4..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap +++ /dev/null @@ -1,287 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow should render 1`] = ` -
-
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-
-
-
-
- Sent for approval by Root Rootkowski - on - -
-
-
-
- Approved by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-
- Sent for authorization by Root Rootkowski - on - -
-
-
-
- Authorized by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-
- Sent for review by Root Rootkowski - on - -
-
-
-
- Released by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap deleted file mode 100644 index d7ff87ca13..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard should render 1`] = ` -
-
-
-
- Test top message - on - -
-
-
-
- Approved by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap deleted file mode 100644 index 6beb5b6d0a..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap +++ /dev/null @@ -1,28 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog should render 1`] = ` -
- -
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/Entitlement.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/Entitlement.test.tsx deleted file mode 100644 index ee85704691..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/Entitlement.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { act } from 'react'; -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeApolloAllSteficonRules } from '../../../../../fixtures/steficon/fakeApolloAllSteficonRules'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import Entitlement from './Entitlement'; -import { PERMISSIONS } from '../../../../config/permissions'; - -describe('components/paymentmodule/PaymentPlanDetails/Entitlement', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap deleted file mode 100644 index 4fb3dd5ba8..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap +++ /dev/null @@ -1,250 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/Entitlement should render 1`] = ` -
-
-
-
-
-
- Entitlement -
-
-

- Select Entitlement Formula -

-
-
-
-
- -
-
- - - - -
-
-
-
-
- -
-
-
-
-
-
- Or -
-
-
-
-
-
-
- -

- Template contains payment list with all targeted households -

-
-
-
-
-
-
- -
-
-

- Uploaded file should contain entitlement for each household -

-
-
-
-
-
- - Total Entitled Quantity - -
- -
- 424 USD (424 USD) -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/FspSection.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/FspSection.test.tsx deleted file mode 100644 index 88214ac1d5..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/FspSection.test.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { FspSection } from './FspSection'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/PaymentPlanDetails/FspSection', () => { - it('should render Set Up FSP', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); - - it('should render Edit FSP', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx deleted file mode 100644 index 32cbdb11e4..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../../testUtils/testUtils'; -import { VolumeByDeliveryMechanismSection } from './VolumeByDeliveryMechanismSection'; - -describe('components/paymentmodule/PaymentPlanDetails/VolumeByDeliveryMechanismSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap deleted file mode 100644 index d6077fdc26..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap +++ /dev/null @@ -1,73 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/VolumeByDeliveryMechanismSection should render 1`] = ` -
-
-
-
- Volume by Delivery Mechanism -
- -
-
-
-
-
-
- - Cash (Test FSP 1) - -
- - 424 USD (424 USD) - -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap deleted file mode 100644 index 29ff9e8586..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap +++ /dev/null @@ -1,156 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/FspSection should render Edit FSP 1`] = ` -
-
-
-
-
- FSPs -
-
-
-
-
- - Cash - -
- - Test FSP 1 - -
-
-
-
-
-
-
-
-
-
- Volume by Delivery Mechanism -
- -
-
-
-
-
-
- - Cash (Test FSP 1) - -
- - 424 USD (424 USD) - -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/FspSection should render Set Up FSP 1`] = ` -
-
-
-
-
- FSPs -
- - Set up FSP - -
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx deleted file mode 100644 index 2da33346cb..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeImportXlsxPpListMutation } from '../../../../../fixtures/paymentmodule/fakeImportXlsxPpListMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { ImportXlsxPaymentPlanPaymentList } from './ImportXlsxPaymentPlanPaymentList'; -import { PERMISSIONS } from '../../../../config/permissions'; - -describe('components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap deleted file mode 100644 index 3623068108..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx deleted file mode 100644 index b7f1131fe7..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { act } from 'react'; -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeImportXlsxPpListPerFspMutation } from '../../../../../fixtures/paymentmodule/fakeImportXlsxPpListPerFspMutation'; -import { - fakeApolloPaymentPlan, - fakeApolloPaymentPlanWithWrongBackgroundActionStatus, -} from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { ImportXlsxPaymentPlanPaymentListPerFsp } from './ImportXlsxPaymentPlanPaymentListPerFsp'; - -describe('components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should not render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap deleted file mode 100644 index 64d73fcfab..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap +++ /dev/null @@ -1,36 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp should not render 1`] = `
`; - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx deleted file mode 100644 index 944d615a8d..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; -import PaymentPlanDetails from './PaymentPlanDetails'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap deleted file mode 100644 index 2533fbcbf7..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap +++ /dev/null @@ -1,312 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails should render 1`] = ` -
-
-
-
-
- Details -
-
-
-
-
-
-
- - Created By - -
- - Root Rootkowski - -
-
-
-
-
- - Programme - - -
-
-
-
- - Target Population - - -
-
-
-
- - Currency - -
- - USD - -
-
-
-
-
- - Start Date - -
- - - - -
-
-
-
-
- - End Date - -
- - - - -
-
-
-
-
- - Dispersion Start Date - -
- - - -
-
-
-
-
- - Dispersion End Date - -
- - - -
-
-
-
-
-
- - FX Rate Applied - -
- - 1 - -
-
-
- -
-
-
-
-
-
- - Related Follow-Up Payment Plans - -
- -
- - -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx deleted file mode 100644 index afffd74d25..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { ApprovePaymentPlan } from './ApprovePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx deleted file mode 100644 index df074c319a..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { AuthorizePaymentPlan } from './AuthorizePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx deleted file mode 100644 index 5f87136893..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { DeletePaymentPlan } from './DeletePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 2770e04a1d..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { act } from 'react'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeExportXlsxPpListPerFspMutation } from '../../../../../../fixtures/paymentmodule/fakeExportXlsxPpListPerFspMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { AcceptedPaymentPlanHeaderButtons } from './AcceptedPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons', () => { - it('should render disabled buttons', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 71700e4e7f..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InApprovalPaymentPlanHeaderButtons } from './InApprovalPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 55f74adcc7..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InAuthorizationPaymentPlanHeaderButtons } from './InAuthorizationPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index f98002bd79..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InReviewPaymentPlanHeaderButtons } from './InReviewPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 0de9a1820b..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { PERMISSIONS } from '../../../../../config/permissions'; -import { LockedPaymentPlanHeaderButtons } from './LockedPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 817f5db092..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { OpenPaymentPlanHeaderButtons } from './OpenPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 2b97152977..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons should render disabled buttons 1`] = `
`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index ec231ddf34..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,36 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 7f902fa2ff..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,36 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 320267aae0..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,36 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 4a83380cd1..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 45a7a9659c..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,78 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
- -
-
- -
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx deleted file mode 100644 index 054d4d6da5..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { LockPaymentPlan } from './LockPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx deleted file mode 100644 index b67eaa2cd8..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { MarkAsReleasedPaymentPlan } from './MarkAsReleasedPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx deleted file mode 100644 index b67eaa2cd8..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { MarkAsReleasedPaymentPlan } from './MarkAsReleasedPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx deleted file mode 100644 index b0ea8eba82..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { RejectPaymentPlan } from './RejectPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap deleted file mode 100644 index acc525ec3e..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap deleted file mode 100644 index 0d1ced0eab..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap deleted file mode 100644 index 9d66cc6f5f..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,29 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap deleted file mode 100644 index 3ae4db098b..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap deleted file mode 100644 index 2632911291..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap deleted file mode 100644 index 2632911291..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap deleted file mode 100644 index 60b9492ff1..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/PaymentPlanDetailsResults.test.tsx b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/PaymentPlanDetailsResults.test.tsx deleted file mode 100644 index ef5fe514a5..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/PaymentPlanDetailsResults.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanDetailsResults } from './PaymentPlanDetailsResults'; -import { act } from 'react'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsResults', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/__snapshots__/PaymentPlanDetailsResults.test.tsx.snap b/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/__snapshots__/PaymentPlanDetailsResults.test.tsx.snap deleted file mode 100644 index 8c8c2f1d55..0000000000 --- a/src/frontend/src/components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsResults/__snapshots__/PaymentPlanDetailsResults.test.tsx.snap +++ /dev/null @@ -1,235 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsResults should render 1`] = ` -
-
-
-
- Results -
-
-
-
-
-
-
-
-
- - Female Children - -
- - 0 - -
-
-
-
-
-
-
- - Female Adults - -
- - 2 - -
-
-
-
-
-
-
- - Male Children - -
- - 0 - -
-
-
-
-
-
-
- - Male Adults - -
- - 2 - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- - Total Number of Households - -
- -
- 2 -
-
-
-
-
-
-
-
-
- - Targeted Individuals - -
- -
- 10 -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodule/WarningMissingAmount.test.tsx b/src/frontend/src/components/paymentmodule/WarningMissingAmount.test.tsx deleted file mode 100644 index f0569c6c65..0000000000 --- a/src/frontend/src/components/paymentmodule/WarningMissingAmount.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../testUtils/testUtils'; -import { WarningMissingAmount } from './WarningMissingAmount'; - -describe('components/paymentmodule/WarningMissingAmount', () => { - it('should render', () => { - const { container } = render( - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodule/__snapshots__/WarningMissingAmount.test.tsx.snap b/src/frontend/src/components/paymentmodule/__snapshots__/WarningMissingAmount.test.tsx.snap deleted file mode 100644 index e5dd69d651..0000000000 --- a/src/frontend/src/components/paymentmodule/__snapshots__/WarningMissingAmount.test.tsx.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/WarningMissingAmount should render 1`] = ` -
-
- - Missing - - 100000 - - USD -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.test.tsx deleted file mode 100644 index 335a5f1f6c..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/CreatePaymentPlanHeader.test.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { CreatePaymentPlanHeader } from './CreatePaymentPlanHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/CreatePaymentPlanHeader', () => { - it('should render', () => { - const { container } = render( - Promise.resolve()} - baseUrl={fakeBaseUrl} - permissions={[PERMISSIONS.PM_VIEW_LIST]} - loadingCreate={false} - />, - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/__snapshots__/CreatePaymentPlanHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/__snapshots__/CreatePaymentPlanHeader.test.tsx.snap deleted file mode 100644 index 08620e7c8e..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/CreatePaymentPlanHeader/__snapshots__/CreatePaymentPlanHeader.test.tsx.snap +++ /dev/null @@ -1,104 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreatePaymentPlanHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- New Payment Plan -
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx deleted file mode 100644 index 35d20f600f..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/PaymentPlanTargeting.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { fakeAllTargetPopulation } from '../../../../../fixtures/targeting/fakeAllTargetPopulation'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanTargeting } from './PaymentPlanTargeting'; - -describe('components/paymentmodule/PaymentPlanTargeting', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap deleted file mode 100644 index 511410b0f1..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreatePaymentPlan/PaymentPlanTargeting/__snapshots__/PaymentPlanTargeting.test.tsx.snap +++ /dev/null @@ -1,115 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanTargeting should render 1`] = ` -
-
-
-
- Target Population -
-
-
-
-
-
-
- -
- - - - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx deleted file mode 100644 index 971e8c94b5..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/CreateSetUpFspHeader.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { CreateSetUpFspHeader } from './CreateSetUpFspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap deleted file mode 100644 index 758a5c2df8..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/CreateSetUpFspHeader/__snapshots__/CreateSetUpFspHeader.test.tsx.snap +++ /dev/null @@ -1,78 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/CreateSetUpFspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Set up FSP -
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx deleted file mode 100644 index 820f859e1a..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/DeliveryMechanismRow.test.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { fakeDeliveryMechanisms } from '../../../../../fixtures/paymentmodule/fakeDeliveryMechanisms'; -import { fakeFspsData } from '../../../../../fixtures/paymentmodule/fakeFspsData'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { DeliveryMechanismRow } from './DeliveryMechanismRow'; - -describe('components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow', () => { - it('should render', () => { - const values = { - deliveryMechanisms: [ - { - deliveryMechanism: '', - fsp: '', - chosenConfiguration: '', - }, - ], - }; - const mapping = fakeFspsData?.availableFspsForDeliveryMechanisms[0]; - const mappedFsps = mapping?.fsps.map((el) => ({ - name: el.name, - value: el.id, - })); - const deliveryMechanismsChoices = - fakeDeliveryMechanisms.allDeliveryMechanisms.map((el) => ({ - name: el.name, - value: el.value, - })); - - const { container } = render( - {}} - />, - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap deleted file mode 100644 index 1bcba8d19b..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/DeliveryMechanismRow/__snapshots__/DeliveryMechanismRow.test.tsx.snap +++ /dev/null @@ -1,91 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/DeliveryMechanismRow should render 1`] = ` -
-
-
-
-
-
-
- -
- - - - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx deleted file mode 100644 index 91bd020784..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/SetUpFspButtonActions.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { act } from 'react'; - -import wait from 'waait'; -import { render } from '../../../../testUtils/testUtils'; -import { SetUpFspButtonActions } from './SetUpFspButtonActions'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions', () => { - it('should render', async () => { - const step = 0; - const setStep = jest.fn(); - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const submitForm = (_values): Promise => Promise.resolve(); - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap deleted file mode 100644 index 034b47d1a1..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspButtonActions/__snapshots__/SetUpFspButtonActions.test.tsx.snap +++ /dev/null @@ -1,31 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/SetUpFspButtonActions should render 1`] = ` -
-
- - -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx deleted file mode 100644 index a683ac106a..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/SetUpFspCore.test.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { act } from 'react'; - -import wait from 'waait'; -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeDeliveryMechanisms } from '../../../../../fixtures/paymentmodule/fakeDeliveryMechanisms'; -import { fakeChooseDeliveryMechForPaymentPlanMutation } from '../../../../../fixtures/paymentmodule/fakeChooseDeliveryMechForPaymentPlanMutation'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { SetUpFspCore } from './SetUpFspCore'; - -describe('components/paymentmodule/CreateSetUpFsp/SetUpFspCore', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap deleted file mode 100644 index fbfec4c224..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/CreateSetUpFsp/SetUpFspCore/__snapshots__/SetUpFspCore.test.tsx.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/CreateSetUpFsp/SetUpFspCore should render 1`] = `
`; diff --git a/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/EditFspHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/EditFspHeader.test.tsx deleted file mode 100644 index 75003dcf84..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/EditFspHeader.test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditFspHeader } from './EditFspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/EditFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap deleted file mode 100644 index bbce2038fc..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditFsp/EditFspHeader/__snapshots__/EditFspHeader.test.tsx.snap +++ /dev/null @@ -1,103 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditFspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Edit FSP -
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx deleted file mode 100644 index 390c7a9b34..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/EditPaymentPlanHeader.test.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditPaymentPlanHeader } from './EditPaymentPlanHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/EditPaymentPlanHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap deleted file mode 100644 index 04a963eec1..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditPaymentPlan/EditPaymentPlanHeader/__snapshots__/EditPaymentPlanHeader.test.tsx.snap +++ /dev/null @@ -1,124 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditPaymentPlanHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
-
- Follow-up Payment Plan - ID - - PP-0060-25-00000007 -
-
-
- ACCEPTED -
-
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/DeliveryMechanismWarning.test.tsx b/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/DeliveryMechanismWarning.test.tsx deleted file mode 100644 index c3f812da43..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/DeliveryMechanismWarning.test.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '../../../testUtils/testUtils'; -import { DeliveryMechanismWarning } from './DeliveryMechanismWarning'; - -describe('components/paymentmodule/DeliveryMechanismWarning', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx deleted file mode 100644 index a6eec2cf23..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/EditSetUpFspHeader.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { EditSetUpFspHeader } from './EditSetUpFspHeader'; - -describe('components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap deleted file mode 100644 index 1fdbbf227e..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/EditSetUpFspHeader/__snapshots__/EditSetUpFspHeader.test.tsx.snap +++ /dev/null @@ -1,45 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/EditSetUpFsp/EditSetUpFspHeader should render 1`] = ` -
-
-
-
-
-
-
-
- Edit Set up FSP -
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap deleted file mode 100644 index 4ccff182a5..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/EditSetUpFsp/__snapshots__/DeliveryMechanismWarning.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/DeliveryMechanismWarning should render 1`] = ` -
-
- - Test DM warning comp -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/FspHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/FspHeader.test.tsx deleted file mode 100644 index 3e5d44d3c0..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/FspHeader.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { PERMISSIONS } from '../../../../config/permissions'; -import { render } from '../../../../testUtils/testUtils'; -import { FspHeader } from './FspHeader'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/FspPlanDetails/FspHeader', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap deleted file mode 100644 index e04fb7f165..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/FspHeader/__snapshots__/FspHeader.test.tsx.snap +++ /dev/null @@ -1,110 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/FspPlanDetails/FspHeader should render 1`] = ` -
-
-
-
- -
-
-
- -
-
-
- Set up FSP -
-
-
-
-
- -
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/TotalAmount.test.tsx b/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/TotalAmount.test.tsx deleted file mode 100644 index 5941030a5a..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/TotalAmount.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { TotalAmount } from './TotalAmount'; - -describe('components/paymentmodule/FspPlanDetails/TotalAmount', () => { - it('should render', () => { - const { container } = render(); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap deleted file mode 100644 index 5d51a4d870..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/FspPlanDetails/TotalAmount/__snapshots__/TotalAmount.test.tsx.snap +++ /dev/null @@ -1,30 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/FspPlanDetails/TotalAmount should render 1`] = ` -
-
-
-
-
-
- Total Amount - (PLN) - per FSP -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx deleted file mode 100644 index 68d4822fc1..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow.test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { AcceptanceProcessRow } from './AcceptanceProcessRow'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx deleted file mode 100644 index 4b4ccec380..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/AcceptanceProcessStepper.test.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../../testUtils/testUtils'; -import { AcceptanceProcessStepper } from './AcceptanceProcessStepper'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper', () => { - it('should render default step Sent for Approval Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Approval Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Authorization Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); - it('should render step Sent for Finance Release Date', async () => { - const { container } = render( - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap deleted file mode 100644 index 1b48d0f29f..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper/__snapshots__/AcceptanceProcessStepper.test.tsx.snap +++ /dev/null @@ -1,477 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render default step Sent for Approval Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Approval Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Authorization Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessStepper should render step Sent for Finance Release Date 1`] = ` -
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx deleted file mode 100644 index 3bf6461125..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard.test.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { GreyInfoCard } from './GreyInfoCard'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx deleted file mode 100644 index c5dae3abfc..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/MessageDialog.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeApolloMe } from '../../../../../fixtures/core/fakeApolloMe'; -import { render } from '../../../../testUtils/testUtils'; -import { MessageDialog } from './MessageDialog'; - -describe('components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap deleted file mode 100644 index 47743d6ba4..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/AcceptanceProcessRow.test.tsx.snap +++ /dev/null @@ -1,287 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/AcceptanceProcessRow should render 1`] = ` -
-
-
-
- - - - - - - Approval (1/1) - - - -
-
- -
-
- - - - - - - Authorization (1/1) - - - -
-
- -
-
- - - - - - - Finance Release (1/1) - - - -
-
-
-
-
-
-
- Sent for approval by Root Rootkowski - on - -
-
-
-
- Approved by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-
- Sent for authorization by Root Rootkowski - on - -
-
-
-
- Authorized by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-
- Sent for review by Root Rootkowski - on - -
-
-
-
- Released by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap deleted file mode 100644 index d7ff87ca13..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/GreyInfoCard.test.tsx.snap +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/GreyInfoCard should render 1`] = ` -
-
-
-
- Test top message - on - -
-
-
-
- Approved by Root Rootkowski -
-
- on - -
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap deleted file mode 100644 index 6beb5b6d0a..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/AcceptanceProcess/__snapshots__/MessageDialog.test.tsx.snap +++ /dev/null @@ -1,28 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/AcceptanceProcess/MessageDialog should render 1`] = ` -
- -
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/Entitlement.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/Entitlement.test.tsx deleted file mode 100644 index 0571ca4321..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/Entitlement.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { act } from 'react'; -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeApolloAllSteficonRules } from '../../../../../fixtures/steficon/fakeApolloAllSteficonRules'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { Entitlement } from './Entitlement'; -import { PERMISSIONS } from '../../../../config/permissions'; - -describe('components/paymentmodule/PaymentPlanDetails/Entitlement', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap deleted file mode 100644 index 4fb3dd5ba8..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/Entitlement/__snapshots__/Entitlement.test.tsx.snap +++ /dev/null @@ -1,250 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/Entitlement should render 1`] = ` -
-
-
-
-
-
- Entitlement -
-
-

- Select Entitlement Formula -

-
-
-
-
- -
-
- - - - -
-
-
-
-
- -
-
-
-
-
-
- Or -
-
-
-
-
-
-
- -

- Template contains payment list with all targeted households -

-
-
-
-
-
-
- -
-
-

- Uploaded file should contain entitlement for each household -

-
-
-
-
-
- - Total Entitled Quantity - -
- -
- 424 USD (424 USD) -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/FspSection.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/FspSection.test.tsx deleted file mode 100644 index 88214ac1d5..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/FspSection.test.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { FspSection } from './FspSection'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/PaymentPlanDetails/FspSection', () => { - it('should render Set Up FSP', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); - - it('should render Edit FSP', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx deleted file mode 100644 index 32cbdb11e4..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/VolumeByDeliveryMechanismSection.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../../testUtils/testUtils'; -import { VolumeByDeliveryMechanismSection } from './VolumeByDeliveryMechanismSection'; - -describe('components/paymentmodule/PaymentPlanDetails/VolumeByDeliveryMechanismSection', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap deleted file mode 100644 index d6077fdc26..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/VolumeByDeliveryMechanismSection/__snapshots__/VolumeByDeliveryMechanismSection.test.tsx.snap +++ /dev/null @@ -1,73 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/VolumeByDeliveryMechanismSection should render 1`] = ` -
-
-
-
- Volume by Delivery Mechanism -
- -
-
-
-
-
-
- - Cash (Test FSP 1) - -
- - 424 USD (424 USD) - -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap deleted file mode 100644 index 29ff9e8586..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/FspSection/__snapshots__/FspSection.test.tsx.snap +++ /dev/null @@ -1,156 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/FspSection should render Edit FSP 1`] = ` -
-
-
-
-
- FSPs -
-
-
-
-
- - Cash - -
- - Test FSP 1 - -
-
-
-
-
-
-
-
-
-
- Volume by Delivery Mechanism -
- -
-
-
-
-
-
- - Cash (Test FSP 1) - -
- - 424 USD (424 USD) - -
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-`; - -exports[`components/paymentmodule/PaymentPlanDetails/FspSection should render Set Up FSP 1`] = ` -
-
-
-
-
- FSPs -
- - Set up FSP - -
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx deleted file mode 100644 index 2da33346cb..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/ImportXlsxPaymentPlanPaymentList.test.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeImportXlsxPpListMutation } from '../../../../../fixtures/paymentmodule/fakeImportXlsxPpListMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { ImportXlsxPaymentPlanPaymentList } from './ImportXlsxPaymentPlanPaymentList'; -import { PERMISSIONS } from '../../../../config/permissions'; - -describe('components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap deleted file mode 100644 index 3623068108..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList/__snapshots__/ImportXlsxPaymentPlanPaymentList.test.tsx.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentList should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx deleted file mode 100644 index b7f1131fe7..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { act } from 'react'; -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeImportXlsxPpListPerFspMutation } from '../../../../../fixtures/paymentmodule/fakeImportXlsxPpListPerFspMutation'; -import { - fakeApolloPaymentPlan, - fakeApolloPaymentPlanWithWrongBackgroundActionStatus, -} from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { PERMISSIONS } from '../../../../config/permissions'; -import { ImportXlsxPaymentPlanPaymentListPerFsp } from './ImportXlsxPaymentPlanPaymentListPerFsp'; - -describe('components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should not render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap deleted file mode 100644 index e84441b1b4..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp/__snapshots__/ImportXlsxPaymentPlanPaymentListPerFsp.test.tsx.snap +++ /dev/null @@ -1,5 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp should not render 1`] = `
`; - -exports[`components/paymentmodule/PaymentPlanDetails/ImportXlsxPaymentPlanPaymentListPerFsp should render 1`] = `
`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx deleted file mode 100644 index 6eee904c99..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/PaymentPlanDetails.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanDetails } from './PaymentPlanDetails'; -import { fakeBaseUrl } from '../../../../../fixtures/core/fakeBaseUrl'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap deleted file mode 100644 index 2533fbcbf7..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetails/__snapshots__/PaymentPlanDetails.test.tsx.snap +++ /dev/null @@ -1,312 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetails should render 1`] = ` -
-
-
-
-
- Details -
-
-
-
-
-
-
- - Created By - -
- - Root Rootkowski - -
-
-
-
-
- - Programme - - -
-
-
-
- - Target Population - - -
-
-
-
- - Currency - -
- - USD - -
-
-
-
-
- - Start Date - -
- - - - -
-
-
-
-
- - End Date - -
- - - - -
-
-
-
-
- - Dispersion Start Date - -
- - - -
-
-
-
-
- - Dispersion End Date - -
- - - -
-
-
-
-
-
- - FX Rate Applied - -
- - 1 - -
-
-
- -
-
-
-
-
-
- - Related Follow-Up Payment Plans - -
- -
- - -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx deleted file mode 100644 index afffd74d25..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { ApprovePaymentPlan } from './ApprovePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx deleted file mode 100644 index df074c319a..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { AuthorizePaymentPlan } from './AuthorizePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx deleted file mode 100644 index 5f87136893..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { DeletePaymentPlan } from './DeletePaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 2770e04a1d..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { act } from 'react'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeExportXlsxPpListPerFspMutation } from '../../../../../../fixtures/paymentmodule/fakeExportXlsxPpListPerFspMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { AcceptedPaymentPlanHeaderButtons } from './AcceptedPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons', () => { - it('should render disabled buttons', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 71700e4e7f..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InApprovalPaymentPlanHeaderButtons } from './InApprovalPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 55f74adcc7..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InAuthorizationPaymentPlanHeaderButtons } from './InAuthorizationPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index f98002bd79..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { InReviewPaymentPlanHeaderButtons } from './InReviewPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 0de9a1820b..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { PERMISSIONS } from '../../../../../config/permissions'; -import { LockedPaymentPlanHeaderButtons } from './LockedPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx deleted file mode 100644 index 817f5db092..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../../testUtils/testUtils'; -import { OpenPaymentPlanHeaderButtons } from './OpenPaymentPlanHeaderButtons'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons', () => { - it('should render with buttons', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 2b97152977..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/AcceptedPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/AcceptedPaymentPlanHeaderButtons should render disabled buttons 1`] = `
`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index f1ba822bba..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InApprovalPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InApprovalPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index adfa11da82..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InAuthorizationPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InAuthorizationPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index e394e79bd3..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/InReviewPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,35 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/InReviewPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index 4a83380cd1..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/LockedPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/LockedPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap deleted file mode 100644 index c579f0f07f..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/__snapshots__/OpenPaymentPlanHeaderButtons.test.tsx.snap +++ /dev/null @@ -1,77 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/HeaderButtons/OpenPaymentPlanHeaderButtons should render with buttons 1`] = ` -
-
-
- -
- -
-
- -
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx deleted file mode 100644 index 054d4d6da5..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { LockPaymentPlan } from './LockPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx deleted file mode 100644 index b67eaa2cd8..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { MarkAsReleasedPaymentPlan } from './MarkAsReleasedPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx deleted file mode 100644 index b67eaa2cd8..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/PaymentPlanDetailsHeader.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { MarkAsReleasedPaymentPlan } from './MarkAsReleasedPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx deleted file mode 100644 index b0ea8eba82..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { RejectPaymentPlan } from './RejectPaymentPlan'; - -describe('components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap deleted file mode 100644 index acc525ec3e..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/ApprovePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/ApprovePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap deleted file mode 100644 index 0d1ced0eab..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/AuthorizePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/AuthorizePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap deleted file mode 100644 index 92f52512db..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/DeletePaymentPlan.test.tsx.snap +++ /dev/null @@ -1,29 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/DeletePaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap deleted file mode 100644 index 3ae4db098b..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/LockPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/LockPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap deleted file mode 100644 index 2632911291..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/MarkAsReleasedPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap deleted file mode 100644 index 2632911291..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/PaymentPlanDetailsHeader.test.tsx.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/MarkAsReleasedPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap deleted file mode 100644 index 89b25d2f9c..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PaymentPlanDetailsHeader/__snapshots__/RejectPaymentPlan.test.tsx.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PaymentPlanDetailsHeader/RejectPaymentPlan should render 1`] = ` -
-
- -
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/PeoplePaymentPlanDetailsResults.test.tsx b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/PeoplePaymentPlanDetailsResults.test.tsx deleted file mode 100644 index a1b8e822bd..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/PeoplePaymentPlanDetailsResults.test.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import wait from 'waait'; -import { fakeApolloPaymentPlan } from '../../../../../fixtures/paymentmodule/fakeApolloPaymentPlan'; -import { fakeActionPpMutation } from '../../../../../fixtures/paymentmodule/fakeApolloActionPaymentPlanMutation'; -import { render } from '../../../../testUtils/testUtils'; -import { PeoplePaymentPlanDetailsResults } from './PeoplePaymentPlanDetailsResults'; -import { act } from 'react'; - -describe('components/paymentmodule/PaymentPlanDetails/PeoplePaymentPlanDetailsHeader/PaymentPlanDetailsResults', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - - await act(() => wait(0)); // wait for the mutation to complete - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/__snapshots__/PeoplePaymentPlanDetailsResults.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/__snapshots__/PeoplePaymentPlanDetailsResults.test.tsx.snap deleted file mode 100644 index ec4d37e505..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/PaymentPlanDetails/PeoplePaymentPlanDetailsResults/__snapshots__/PeoplePaymentPlanDetailsResults.test.tsx.snap +++ /dev/null @@ -1,205 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/PaymentPlanDetails/PeoplePaymentPlanDetailsHeader/PaymentPlanDetailsResults should render 1`] = ` -
-
-
-
- Results -
-
-
-
-
-
-
-
-
- - Female Children - -
- - 0 - -
-
-
-
-
-
-
- - Female Adults - -
- - 2 - -
-
-
-
-
-
-
- - Male Children - -
- - 0 - -
-
-
-
-
-
-
- - Male Adults - -
- - 2 - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- - Total Number of People - -
- -
- 10 -
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/paymentmodulepeople/WarningMissingAmount.test.tsx b/src/frontend/src/components/paymentmodulepeople/WarningMissingAmount.test.tsx deleted file mode 100644 index f0569c6c65..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/WarningMissingAmount.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../testUtils/testUtils'; -import { WarningMissingAmount } from './WarningMissingAmount'; - -describe('components/paymentmodule/WarningMissingAmount', () => { - it('should render', () => { - const { container } = render( - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/paymentmodulepeople/__snapshots__/WarningMissingAmount.test.tsx.snap b/src/frontend/src/components/paymentmodulepeople/__snapshots__/WarningMissingAmount.test.tsx.snap deleted file mode 100644 index e5dd69d651..0000000000 --- a/src/frontend/src/components/paymentmodulepeople/__snapshots__/WarningMissingAmount.test.tsx.snap +++ /dev/null @@ -1,26 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/paymentmodule/WarningMissingAmount should render 1`] = ` -
-
- - Missing - - 100000 - - USD -
-
-`; diff --git a/src/frontend/src/components/people/PeopleBioData/PeopleBioData.test.tsx b/src/frontend/src/components/people/PeopleBioData/PeopleBioData.test.tsx deleted file mode 100644 index d8135014e6..0000000000 --- a/src/frontend/src/components/people/PeopleBioData/PeopleBioData.test.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { act } from 'react'; -import wait from 'waait'; -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeIndividual } from '../../../../fixtures/population/fakeIndividual'; -import { fakeApolloAllGrievances } from '../../../../fixtures/grievances/fakeApolloAllGrievances'; -import { fakeGrievancesChoices } from '../../../../fixtures/grievances/fakeGrievancesChoices'; -import { PeopleBioData } from './PeopleBioData'; -import { fakeBaseUrl } from '../../../../fixtures/core/fakeBaseUrl'; - -describe('components/population/IndividualBioData', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/people/PeopleBioData/__snapshots__/PeopleBioData.test.tsx.snap b/src/frontend/src/components/people/PeopleBioData/__snapshots__/PeopleBioData.test.tsx.snap deleted file mode 100644 index 203bed0a3e..0000000000 --- a/src/frontend/src/components/people/PeopleBioData/__snapshots__/PeopleBioData.test.tsx.snap +++ /dev/null @@ -1,955 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/IndividualBioData should render 1`] = ` -
-
-
-
- Bio Data -
-
-
-
-
- - Full Name - -
- - Jan Romaniak - -
-
-
-
-
- - Given Name - -
- - Jan - -
-
-
-
-
- - Middle Name - -
- - -
-
-
-
-
- - Family Name - -
- - Romaniak - -
-
-
-
-
- - Gender - -
- - Male - -
-
-
-
-
- - Age - -
- - 121 - -
-
-
-
-
- - Date of Birth - -
- - - -
-
-
-
-
- - Estimated Date of Birth - -
- - No - -
-
-
-
-
- - Marital Status - -
- - Married - -
-
-
-
-
- - Work Status - -
- - Not provided - -
-
-
-
-
- - Pregnant - -
- - No - -
-
-
-
-
- - Role - -
- - None - -
-
-
-
-
- - Preferred language - -
- - -
-
-
-
-
- - Residence Status - -
- - -
-
-
-
-
- - Country - -
- - -
-
-
-
-
- - Country of Origin - -
- - San Marino - -
-
-
-
-
- - Address - -
- - 938 Luna Cliffs Apt. 551 -Jameschester, SC 24934 - -
-
-
-
-
- - Vilage - -
- - -
-
-
-
-
- - Zip Code - -
- - -
-
-
-
-
- - Administrative Level 1 - -
- - Ghazni - -
-
-
-
-
- - Administrative Level 2 - -
- - Abband - -
-
-
-
-
- - Administrative Level 3 - -
- - -
-
-
-
-
- - Administrative Level 4 - -
- - -
-
-
-
-
- - Geolocation - -
- - - - -
-
-
-
-
- - Data Collecting Type - -
- - data collecting type - -
-
-
-
-
-
-
-
- - Observed disabilities - -
- - -
-
-
-
-
- - Seeing disability severity - -
- - None - -
-
-
-
-
- - Hearing disability severity - -
- - None - -
-
-
-
-
- - Physical disability severity - -
- - None - -
-
-
-
-
- - Remembering or concentrating disability severity - -
- - None - -
-
-
-
-
- - Self-care disability severity - -
- - None - -
-
-
-
-
- - Communicating disability severity - -
- - None - -
-
-
-
-
- - Disability - -
- - Not Disabled - -
-
-
-
-
-
-
-
-
-
- - National ID - -
- - WSH221365 - -
-
-
-
- - issued - -
- - Poland - -
-
-
-
-
-
-
-
-
- - Email - -
- - -
-
-
-
-
- - Phone Number - -
- - +48734123423 - -
-
-
-
-
- - Alternative Phone Number - -
- - - - -
-
-
-
-
-
-
-
- - Date of last screening against sanctions list - -
- - - -
-
-
-
-
- - Linked Grievances - -
- - - - - - -
-
-
-
-
-
-
-
- - Wallet Name - -
- - -
-
-
-
-
- - Blockchain Name - -
- - -
-
-
-
-
- - Wallet Address - -
- - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplateDetailsDialog.tsx b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplateDetailsDialog.tsx index cb345c64eb..77bbf50c8b 100644 --- a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplateDetailsDialog.tsx +++ b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplateDetailsDialog.tsx @@ -1,7 +1,3 @@ -import { - fetchPeriodicDataUpdateTemplateDetails, - fetchPeriodicFields, -} from '@api/periodicDataUpdateApi'; import { LabelizedField } from '@components/core/LabelizedField'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { useArrayToDict } from '@hooks/useArrayToDict'; @@ -19,6 +15,7 @@ import { TableRow, } from '@mui/material'; import { PeriodicDataUpdateTemplateList } from '@restgenerated/models/PeriodicDataUpdateTemplateList'; +import { RestService } from '@restgenerated/services/RestService'; import { useQuery } from '@tanstack/react-query'; import { FC } from 'react'; import { useTranslation } from 'react-i18next'; @@ -42,16 +39,20 @@ export const PeriodicDataUpdatesTemplateDetailsDialog: FC< template.id, ], queryFn: () => - fetchPeriodicDataUpdateTemplateDetails( + RestService.restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve( businessArea, + template.id.toString(), programId, - template.id, ), }); const { data: periodicFieldsData, isLoading: periodicFieldsLoading } = useQuery({ queryKey: ['periodicFields', businessArea, programId], - queryFn: () => fetchPeriodicFields(businessArea, programId), + queryFn: () => + RestService.restProgramsPeriodicDataUpdatePeriodicFieldsList( + businessArea, + programId, + ), }); const pduDataDict = useArrayToDict(periodicFieldsData?.results, 'name', '*'); if (isLoading || periodicFieldsLoading || !pduDataDict) diff --git a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplatesList.tsx b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplatesList.tsx index 6c565e16be..a3f1129cf5 100644 --- a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplatesList.tsx +++ b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesTemplatesList.tsx @@ -1,4 +1,3 @@ -import { fetchPeriodicDataUpdateTemplates } from '@api/periodicDataUpdateApi'; import { ClickableTableRow } from '@components/core/Table/ClickableTableRow'; import { HeadCell } from '@components/core/Table/EnhancedTableHead'; import { UniversalMoment } from '@components/core/UniversalMoment'; @@ -23,6 +22,7 @@ import { ButtonTooltip } from '@components/core/ButtonTooltip'; import { usePermissions } from '@hooks/usePermissions'; import { hasPermissions, PERMISSIONS } from 'src/config/permissions'; import { PeriodicDataUpdateTemplateList } from '@restgenerated/models/PeriodicDataUpdateTemplateList'; +import { RestService } from '@restgenerated/services/RestService'; const templatesHeadCells: HeadCell[] = [ { @@ -145,12 +145,16 @@ export const PeriodicDataUpdatesTemplatesList = (): ReactElement => { programId, queryVariables, ], - queryFn: () => - fetchPeriodicDataUpdateTemplates( + queryFn: () => { + const { ordering } = queryVariables; + return RestService.restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList( businessAreaSlug, programId, - queryVariables, - ), + null, + null, + ordering, + ); + }, }); const selectedTemplate = templatesData?.results?.find( diff --git a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUpdatesList.tsx b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUpdatesList.tsx index 54616f7ff0..b833374ba0 100644 --- a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUpdatesList.tsx +++ b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUpdatesList.tsx @@ -7,11 +7,11 @@ import { useQuery } from '@tanstack/react-query'; import { ClickableTableRow } from '@components/core/Table/ClickableTableRow'; import { HeadCell } from '@components/core/Table/EnhancedTableHead'; import { UniversalRestTable } from '@components/rest/UniversalRestTable/UniversalRestTable'; -import { fetchPeriodicDataUpdateUpdates } from '@api/periodicDataUpdateApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import VisibilityIcon from '@mui/icons-material/Visibility'; import { PeriodicDataUpdatesUploadDetailsDialog } from '@components/periodicDataUpdates/PeriodicDataUpdatesUploadDetailsDialog'; import { PeriodicDataUpdateUploadList } from '@restgenerated/models/PeriodicDataUpdateUploadList'; +import { RestService } from '@restgenerated/services/RestService'; const updatesHeadCells: HeadCell[] = [ { @@ -83,13 +83,18 @@ export const PeriodicDataUpdatesUpdatesList = (): ReactElement => { programId, queryVariables, ], - queryFn: () => - fetchPeriodicDataUpdateUpdates( + queryFn: () => { + const { ordering } = queryVariables; + return RestService.restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList( businessAreaSlug, programId, - queryVariables, - ), + null, + null, + ordering, + ); + }, }); + const handleDialogOpen = (uploadId) => { setSelectedUploadId(uploadId); setIsDialogOpen(true); diff --git a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDetailsDialog.tsx b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDetailsDialog.tsx index 8932001572..d5b37c13ba 100644 --- a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDetailsDialog.tsx +++ b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDetailsDialog.tsx @@ -7,10 +7,10 @@ import { DialogActions, Button, } from '@mui/material'; -import { fetchPeriodicDataUpdateUploadDetails } from '@api/periodicDataUpdateApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { useQuery } from '@tanstack/react-query'; import { LoadingComponent } from '@components/core/LoadingComponent'; +import { RestService } from '@restgenerated/services/RestService'; interface PeriodicDataUpdatesUploadDetailsDialogProps { open: boolean; @@ -18,10 +18,6 @@ interface PeriodicDataUpdatesUploadDetailsDialogProps { uploadId: number; } -// const StyledError = styled.p` -// color: red; -// `; - const FormErrorDisplay = ({ formErrors }) => { if (!formErrors || !formErrors.length) { return null; @@ -80,7 +76,11 @@ export const PeriodicDataUpdatesUploadDetailsDialog: FC< uploadId, ], queryFn: () => - fetchPeriodicDataUpdateUploadDetails(businessArea, programId, uploadId), + RestService.restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsRetrieve( + businessArea, + uploadId.toString(), + programId, + ), }); if (isLoading) return ; diff --git a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDialog.tsx b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDialog.tsx index ed351ea125..174ea3adc3 100644 --- a/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDialog.tsx +++ b/src/frontend/src/components/periodicDataUpdates/PeriodicDataUpdatesUploadDialog.tsx @@ -100,7 +100,7 @@ export const PeriodDataUpdatesUploadDialog = (): ReactElement => { {t('Select Files to Upload')} {t( - 'The system accepts the following file extensions: XLSX, PDF, images (jpg, jpeg, png). File size must be \\u2264 10MB.', + 'The system accepts the following file extensions: XLSX, PDF, images (jpg, jpeg, png). File size must be ≤ 10MB.', )} diff --git a/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/HouseholdAdditionalRegistrationInformation.test.tsx b/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/HouseholdAdditionalRegistrationInformation.test.tsx deleted file mode 100644 index 4ed303d373..0000000000 --- a/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/HouseholdAdditionalRegistrationInformation.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeAllHouseholdsFlexFieldsAttributes } from '../../../../fixtures/core/fakeAllHouseholdsFlexFieldsAttributes'; -import { fakeHousehold } from '../../../../fixtures/population/fakeHousehold'; -import { render } from '../../../testUtils/testUtils'; -import { HouseholdAdditionalRegistrationInformation } from './HouseholdAdditionalRegistrationInformation'; - -describe('components/population/HouseholdAdditionalRegistrationInformation', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/__snapshots__/HouseholdAdditionalRegistrationInformation.test.tsx.snap b/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/__snapshots__/HouseholdAdditionalRegistrationInformation.test.tsx.snap deleted file mode 100644 index 222bf8aa5a..0000000000 --- a/src/frontend/src/components/population/HouseholdAdditionalRegistrationInformation/__snapshots__/HouseholdAdditionalRegistrationInformation.test.tsx.snap +++ /dev/null @@ -1,25 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/HouseholdAdditionalRegistrationInformation should render 1`] = ` -
-
-
-
-
- Additional Registration information -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/population/HouseholdDetails/HouseholdDetails.test.tsx b/src/frontend/src/components/population/HouseholdDetails/HouseholdDetails.test.tsx deleted file mode 100644 index fb563f73ab..0000000000 --- a/src/frontend/src/components/population/HouseholdDetails/HouseholdDetails.test.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../testUtils/testUtils'; -import { fakeHousehold } from '../../../../fixtures/population/fakeHousehold'; -import { fakeHouseholdChoices } from '../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllGrievances } from '../../../../fixtures/grievances/fakeApolloAllGrievances'; -import { fakeGrievancesChoices } from '../../../../fixtures/grievances/fakeGrievancesChoices'; -import { HouseholdDetails } from './HouseholdDetails'; -import { fakeBaseUrl } from '../../../../fixtures/core/fakeBaseUrl'; - -describe('components/population/HouseholdDetails', () => { - it('should render', () => { - const { container } = render( - - - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/population/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap b/src/frontend/src/components/population/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap deleted file mode 100644 index 67af47a79b..0000000000 --- a/src/frontend/src/components/population/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap +++ /dev/null @@ -1,565 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/HouseholdDetails should render 1`] = ` -
-
-
-
- Details -
-
-
-
-
-
- - Household Size - -
- - 4 - -
-
-
-
-
- - Residence Status - -
- - None - -
-
-
-
-
- - Head of Household - - -
-
-
-
- - FEMALE CHILD HEADED Household - -
- - No - -
-
-
-
-
- - CHILD HEADED Household - -
- - No - -
-
-
-
-
- - Country - -
- - -
-
-
-
-
- - Country of Origin - -
- - -
-
-
-
-
- - Address - -
- - Ohio - -
-
-
-
-
- - Village - -
- - -
-
-
-
-
- - Zip code - -
- - -
-
-
-
-
- - Administrative Level 1 - -
- - -
-
-
-
-
- - Administrative Level 2 - -
- - -
-
-
-
-
- - Administrative Level 3 - -
- - -
-
-
-
-
- - Administrative Level 4 - -
- - -
-
-
-
-
- - Geolocation - -
- - - - -
-
-
-
-
- - UNHCR CASE ID - -
- - -
-
-
-
-
- - LENGTH OF TIME SINCE ARRIVAL - -
- - -
-
-
-
-
- - NUMBER OF TIMES DISPLACED - -
- - -
-
-
-
-
- - IS THIS A RETURNEE Household? - -
- - No - -
-
-
-
-
- - Linked Grievances - -
- - - - - - -
-
-
-
-
- - Linked Grievances - -
- - - - - - -
-
-
-
-
- - Data Collecting Type - -
- - data collecting type - -
-
-
-
-
-
-
-
-
- Benefits -
-
-
-
-
- - Cash received - -
- -
-
-
-
-
- USD 5,755.00 -
-
- (AZN 92.00) -
-
- (COP 3,177.00) -
-
-
-
-
-
-
-
-
-
-
-
- - Total Cash Received - -
- -
- USD 0.00 -
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/IndividualAdditionalRegistrationInformation.test.tsx b/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/IndividualAdditionalRegistrationInformation.test.tsx deleted file mode 100644 index 4b967e6449..0000000000 --- a/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/IndividualAdditionalRegistrationInformation.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeAllIndividualsFlexFieldsAttributes } from '../../../../fixtures/core/fakeAllIndividualsFlexFieldsAttributes'; -import { fakeIndividual } from '../../../../fixtures/population/fakeIndividual'; -import { render } from '../../../testUtils/testUtils'; -import { IndividualAdditionalRegistrationInformation } from './IndividualAdditionalRegistrationInformation'; - -describe('components/population/IndividualAdditionalRegistrationInformation', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/__snapshots__/IndividualAdditionalRegistrationInformation.test.tsx.snap b/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/__snapshots__/IndividualAdditionalRegistrationInformation.test.tsx.snap deleted file mode 100644 index b1173ab905..0000000000 --- a/src/frontend/src/components/population/IndividualAdditionalRegistrationInformation/__snapshots__/IndividualAdditionalRegistrationInformation.test.tsx.snap +++ /dev/null @@ -1,90 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/IndividualAdditionalRegistrationInformation should render 1`] = ` -
-
-
-
- Additional Registration information -
-
-
-
-
- - muac - -
- - 334 - -
-
-
-
-
- - school enrolled - -
- - Yes - -
-
-
-
-
- - school enrolled before - -
- - No - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/population/IndividualBioData/IndividualBioData.test.tsx b/src/frontend/src/components/population/IndividualBioData/IndividualBioData.test.tsx deleted file mode 100644 index e8d5a79092..0000000000 --- a/src/frontend/src/components/population/IndividualBioData/IndividualBioData.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { act } from 'react'; - -import wait from 'waait'; -import { MockedProvider } from '@apollo/react-testing'; -import { render } from '../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeIndividual } from '../../../../fixtures/population/fakeIndividual'; -import { fakeApolloAllGrievances } from '../../../../fixtures/grievances/fakeApolloAllGrievances'; -import { fakeGrievancesChoices } from '../../../../fixtures/grievances/fakeGrievancesChoices'; -import { IndividualBioData } from './IndividualBioData'; -import { fakeBaseUrl } from '../../../../fixtures/core/fakeBaseUrl'; - -describe('components/population/IndividualBioData', () => { - it('should render', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/population/IndividualBioData/__snapshots__/IndividualBioData.test.tsx.snap b/src/frontend/src/components/population/IndividualBioData/__snapshots__/IndividualBioData.test.tsx.snap deleted file mode 100644 index 2d74372b31..0000000000 --- a/src/frontend/src/components/population/IndividualBioData/__snapshots__/IndividualBioData.test.tsx.snap +++ /dev/null @@ -1,791 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/IndividualBioData should render 1`] = ` -
-
-
-
- Bio Data -
-
-
-
-
- - Full Name - -
- - Jan Romaniak - -
-
-
-
-
- - Given Name - -
- - Jan - -
-
-
-
-
- - Middle Name - -
- - -
-
-
-
-
- - Family Name - -
- - Romaniak - -
-
-
-
-
- - Gender - -
- - Male - -
-
-
-
-
- - Age - -
- - 121 - -
-
-
-
-
- - Date of Birth - -
- - - -
-
-
-
-
- - Estimated Date of Birth - -
- - No - -
-
-
-
-
- - Marital Status - -
- - Married - -
-
-
-
-
- - Work Status - -
- - Not provided - -
-
-
-
-
- - Pregnant - -
- - No - -
-
-
-
-
- - Household ID - - -
-
-
-
- - Role - -
- - None - -
-
-
-
-
- - Relationship to Head Of Household - -
- - Brother / Sister - -
-
-
-
-
- - Preferred language - -
- - -
-
-
-
-
- - Linked Households - -
- - - - -
-
-
-
-
-
-
-
- - Observed disabilities - -
- - -
-
-
-
-
- - Seeing disability severity - -
- - None - -
-
-
-
-
- - Hearing disability severity - -
- - None - -
-
-
-
-
- - Physical disability severity - -
- - None - -
-
-
-
-
- - Remembering or concentrating disability severity - -
- - None - -
-
-
-
-
- - Self-care disability severity - -
- - None - -
-
-
-
-
- - Communicating disability severity - -
- - None - -
-
-
-
-
- - Disability - -
- - Not Disabled - -
-
-
-
-
-
-
-
-
-
- - National ID - -
- - WSH221365 - -
-
-
-
- - issued - -
- - Poland - -
-
-
-
-
-
-
-
-
- - Email - -
- - -
-
-
-
-
- - Phone Number - -
- - +48734123423 - -
-
-
-
-
- - Alternative Phone Number - -
- - - - -
-
-
-
-
-
-
-
- - Date of last screening against sanctions list - -
- - - -
-
-
-
-
- - Linked Grievances - -
- - - - - - -
-
-
-
-
-
-
-
- - Wallet Name - -
- - -
-
-
-
-
- - Blockchain Name - -
- - -
-
-
-
-
- - Wallet Address - -
- - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.test.tsx b/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.test.tsx deleted file mode 100644 index 81d8d32fec..0000000000 --- a/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.test.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { render } from '../../../testUtils/testUtils'; -import { ProgramDetails } from './ProgramDetails'; -import { fakeProgram } from '../../../../fixtures/programs/fakeProgram'; -import { fakeProgramChoices } from '../../../../fixtures/programs/fakeProgramChoices'; - -describe('components/ProgramDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.tsx b/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.tsx index 8a0071daec..cdd576155e 100644 --- a/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.tsx +++ b/src/frontend/src/components/programs/ProgramDetails/ProgramDetails.tsx @@ -8,7 +8,11 @@ import { Title } from '@core/Title'; import { UniversalMoment } from '@core/UniversalMoment'; import { ProgrammeChoiceDataQuery, ProgramQuery } from '@generated/graphql'; import { Box, Grid2 as Grid, Typography } from '@mui/material'; -import { choicesToDict, programStatusToColor } from '@utils/utils'; +import { + choicesToDict, + programStatusToColor, + isPartnerVisible, +} from '@utils/utils'; import { useTranslation } from 'react-i18next'; import styled from 'styled-components'; import { MiśTheme } from '../../../theme'; @@ -78,8 +82,8 @@ export const ProgramDetails = ({ ); }; - const partners = program.partners.filter( - (partner) => partner.name !== 'UNICEF', + const partners = program.partners.filter((partner) => + isPartnerVisible(partner.name), ); const showPartners = partners.length > 0; diff --git a/src/frontend/src/components/programs/ProgramDetails/__snapshots__/ProgramDetails.test.tsx.snap b/src/frontend/src/components/programs/ProgramDetails/__snapshots__/ProgramDetails.test.tsx.snap deleted file mode 100644 index e865ed95c3..0000000000 --- a/src/frontend/src/components/programs/ProgramDetails/__snapshots__/ProgramDetails.test.tsx.snap +++ /dev/null @@ -1,376 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/ProgramDetails should render 1`] = ` -
-
-
-
- Programme Details -
-
-
-
-
-
- - status - -
- -
-
- FINISHED -
-
-
-
-
-
-
-
- - START DATE - -
- - - -
-
-
-
-
- - END DATE - -
- - - -
-
-
-
-
- - Programme Code - -
- - -
-
-
-
-
- - Sector - -
- - Child Protection - -
-
-
-
-
- - Data Collecting Type - -
- - -
-
-
-
-
- - Beneficiary Group - -
- - -
-
-
-
-
- - Frequency of Payment - -
- - Regular - -
-
-
-
-
- - Administrative Areas of implementation - -
- - Crime book. - -
-
-
-
-
- - Description - -
- - Yeah worry might newspaper drive her many. - -
-
-
-
-
- - CASH+ - -
- - No - -
-
-
-
-
- - Partner Access - -
- - Only Selected Partners within the business area - -
-
-
-
-
-
- - Programme size - -
- -
- 2 -
-
-
-
-
-
-
-
-
-
-
- Programme Partners -
-
-
-
-
-
-
-
- - Area Access - -
- - Business Area - -
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/rdi/details/RegistrationDetails/RegistrationDetails.test.tsx b/src/frontend/src/components/rdi/details/RegistrationDetails/RegistrationDetails.test.tsx deleted file mode 100644 index ec54a33f28..0000000000 --- a/src/frontend/src/components/rdi/details/RegistrationDetails/RegistrationDetails.test.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { MemoryRouter } from 'react-router-dom'; -import { fakeRegistrationDetailedFragment } from '../../../../../fixtures/registration/fakeRegistrationDetailedFragment'; -import { render } from '../../../../testUtils/testUtils'; -import RegistrationDetails from './RegistrationDetails'; - -describe('components/rdi/details/RegistrationDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/rdi/details/RegistrationDetails/__snapshots__/RegistrationDetails.test.tsx.snap b/src/frontend/src/components/rdi/details/RegistrationDetails/__snapshots__/RegistrationDetails.test.tsx.snap deleted file mode 100644 index 3d1f71c27c..0000000000 --- a/src/frontend/src/components/rdi/details/RegistrationDetails/__snapshots__/RegistrationDetails.test.tsx.snap +++ /dev/null @@ -1,794 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/rdi/details/RegistrationDetails should render 1`] = ` -
-
-
-
- Import Details -
-
-
-
-
-
-
-
-
- - status - -
- -
-
- MERGED -
-
-
-
-
-
-
-
-
- - Source of Data - -
- - XLS - -
-
-
-
-
- - Import Date - -
- - - -
-
-
-
-
- - Imported by - -
- - Maciej Szewczyk - -
-
-
-
-
-
-
-
-
-
- - Total Number of Households - -
- -
- 2 -
-
-
-
-
-
-
-
-
- - Total Number of Individuals - -
- -
- 6 -
-
-
-
-
-
-
-
-
-
-
-
-
- - Biographical - -
-
-
-
-
-
- - Within Batch - -
-
-
-
-
-
- - - Unique - - -
-
-
- - 66.67 - % - -
-
- - ( - 4 - ) - -
-
-
-
- - 66.67 - % - -
-
- - ( - 4 - ) - -
-
-
-
- - 66.67 - % - -
-
- - ( - 4 - ) - -
-
-
-
-
- - - Duplicates - - -
-
-
- - 33.33 - % - -
-
- - ( - 2 - ) - -
-
-
-
- - 33.33 - % - -
-
- - ( - 2 - ) - -
-
-
-
- - 33.33 - % - -
-
- - ( - 2 - ) - -
-
-
-
-
-
-
-
-
-
-
- - In Population - -
-
-
-
-
-
- - - Unique - - -
-
-
- - 100.00 - % - -
-
- - ( - 6 - ) - -
-
-
-
- - 100.00 - % - -
-
- - ( - 6 - ) - -
-
-
-
- - 100.00 - % - -
-
- - ( - 6 - ) - -
-
-
-
-
- - - Duplicates - - -
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
-
- - - Need Adjudication - - -
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
- - 0.00 - % - -
-
- - ( - 0 - ) - -
-
-
-
-
-
-
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/rdi/details/households/HouseholdDetails/HouseholdDetails.test.tsx b/src/frontend/src/components/rdi/details/households/HouseholdDetails/HouseholdDetails.test.tsx deleted file mode 100644 index e533d2e979..0000000000 --- a/src/frontend/src/components/rdi/details/households/HouseholdDetails/HouseholdDetails.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeHousehold } from '../../../../../../fixtures/population/fakeHousehold'; -import { fakeHouseholdChoices } from '../../../../../../fixtures/population/fakeHouseholdChoices'; -import { render } from '../../../../../testUtils/testUtils'; -import { HouseholdDetails } from './HouseholdDetails'; - -describe('components/rdi/details/households/HouseholdDetails', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/rdi/details/households/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap b/src/frontend/src/components/rdi/details/households/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap deleted file mode 100644 index 07e325136d..0000000000 --- a/src/frontend/src/components/rdi/details/households/HouseholdDetails/__snapshots__/HouseholdDetails.test.tsx.snap +++ /dev/null @@ -1,233 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/rdi/details/households/HouseholdDetails should render 1`] = ` -
-
-
-
- Details -
-
-
-
-
-
- - Household Size - -
- - 4 - -
-
-
-
-
- - Country - -
- - -
-
-
-
-
- - Residence Status - -
- - None - -
-
-
-
-
- - Country of Origin - -
- - -
-
-
-
-
- - Head of Household - - -
-
-
-
- - FEMALE CHILD HEADED HOUSEHOLD - -
- - No - -
-
-
-
-
- - CHILD HEADED HOUSEHOLD - -
- - No - -
-
-
-
-
- - ADMINISTRATIVE LEVEL 1 - -
- - -
-
-
-
-
- - ADMINISTRATIVE LEVEL 2 - -
- - -
-
-
-
-
- - Data Collecting Type - -
- - data collecting type - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/RegistrationIndividualVulnerabilites.test.tsx b/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/RegistrationIndividualVulnerabilites.test.tsx deleted file mode 100644 index 3488945d9f..0000000000 --- a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/RegistrationIndividualVulnerabilites.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeIndividual } from '../../../../../../fixtures/population/fakeIndividual'; -import { RegistrationIndividualAdditionalRegistrationInformation } from '.'; -import { fakeAllIndividualsFlexFieldsAttributes } from '../../../../../../fixtures/core/fakeAllIndividualsFlexFieldsAttributes'; -import { render } from '../../../../../testUtils/testUtils'; - -describe('components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/__snapshots__/RegistrationIndividualVulnerabilites.test.tsx.snap b/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/__snapshots__/RegistrationIndividualVulnerabilites.test.tsx.snap deleted file mode 100644 index c3406800c9..0000000000 --- a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation/__snapshots__/RegistrationIndividualVulnerabilites.test.tsx.snap +++ /dev/null @@ -1,90 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/rdi/details/individual/RegistrationIndividualAdditionalRegistrationInformation should render 1`] = ` -
-
-
-
- Additional Registration information -
-
-
-
-
- - muac - -
- - 334 - -
-
-
-
-
- - school enrolled - -
- - Yes - -
-
-
-
-
- - school enrolled before - -
- - No - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/RegistrationIndividualBioData.test.tsx b/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/RegistrationIndividualBioData.test.tsx deleted file mode 100644 index 2f2cea9323..0000000000 --- a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/RegistrationIndividualBioData.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { fakeIndividual } from '../../../../../../fixtures/population/fakeIndividual'; -import { fakeHouseholdChoices } from '../../../../../../fixtures/population/fakeHouseholdChoices'; -import { render } from '../../../../../testUtils/testUtils'; -import { RegistrationIndividualBioData } from './RegistrationIndividualBioData'; - -describe('components/rdi/details/individual/RegistrationIndividualBioData', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/__snapshots__/RegistrationIndividualBioData.test.tsx.snap b/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/__snapshots__/RegistrationIndividualBioData.test.tsx.snap deleted file mode 100644 index 20e6ed59d4..0000000000 --- a/src/frontend/src/components/rdi/details/individual/RegistrationIndividualBioData/__snapshots__/RegistrationIndividualBioData.test.tsx.snap +++ /dev/null @@ -1,653 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/rdi/details/individual/RegistrationIndividualBioData should render 1`] = ` -
-
-
-
- Bio Data -
-
-
-
-
- - Full Name - -
- - Jan Romaniak - -
-
-
-
-
- - Given Name - -
- - Jan - -
-
-
-
-
- - Middle Name - -
- - -
-
-
-
-
- - Family Name - -
- - Romaniak - -
-
-
-
-
- - Gender - -
- - Male - -
-
-
-
-
- - Age - -
- - 121 - -
-
-
-
-
- - Date of Birth - -
- - - -
-
-
-
-
- - Estimated Date of Birth - -
- - No - -
-
-
-
-
- - Marital Status - -
- - Married - -
-
-
-
-
- - Work Status - -
- - Not provided - -
-
-
-
-
- - Pregnant - -
- - No - -
-
-
-
-
- - Household ID - -
- - - - -
-
-
-
-
- - Role - -
- - None - -
-
-
-
-
- - Relationship to HOH - -
- - Brother / Sister - -
-
-
-
-
- - Preferred language - -
- - -
-
-
-
-
-
-
-
- - Observed disabilities - -
- - -
-
-
-
-
- - Seeing disability severity - -
- - None - -
-
-
-
-
- - Hearing disability severity - -
- - None - -
-
-
-
-
- - Physical disability severity - -
- - None - -
-
-
-
-
- - Remembering or concentrating disability severity - -
- - None - -
-
-
-
-
- - Self-care disability severity - -
- - None - -
-
-
-
-
- - Communicating disability severity - -
- - None - -
-
-
-
-
- - Disability - -
- - Not Disabled - -
-
-
-
-
-
-
-
-
-
- - National ID - -
- - WSH221365 - -
-
-
-
- - issued - -
- - Poland - -
-
-
-
-
-
-
-
-
- - Email - -
- - -
-
-
-
-
- - Phone Number - -
- - +48734123423 - -
-
-
-
-
- - Alternate Phone Number - -
- - - - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/UserProfileMenu.tsx b/src/frontend/src/containers/UserProfileMenu.tsx index dfdb4843e3..8ffc137162 100644 --- a/src/frontend/src/containers/UserProfileMenu.tsx +++ b/src/frontend/src/containers/UserProfileMenu.tsx @@ -9,7 +9,6 @@ import { Popper, } from '@mui/material'; import styled from 'styled-components'; -import { MeQuery } from '@generated/graphql'; import { clearCache } from '@utils/utils'; import { getClient } from '../apollo/client'; import React, { ReactElement, useState, useRef, useEffect } from 'react'; @@ -23,7 +22,7 @@ const MenuButtonText = styled.span` margin-left: ${({ theme }) => theme.spacing(2)}; `; interface UserProfileMenuProps { - meData: MeQuery; + meData; } export function UserProfileMenu({ meData, @@ -89,8 +88,8 @@ export function UserProfileMenu({ onClick={handleToggle} data-cy="menu-user-profile" > - - {meData.me.email} + + {meData.email} fetchBeneficiaryGroups(), + queryFn: () => RestService.restBeneficiaryGroupsList(), }); const { setFieldValue } = useFormikContext(); @@ -89,7 +89,7 @@ const ProgramForm = ({ return (
- + - + - + - + - + - + - + - + - + - + - - + + - - + + { fetchPolicy: 'cache-and-network', }); - const { data: currentUserData, loading: currentUserDataLoading } = - useMeQuery(); + const { data: currentUserData, isLoading: currentUserDataLoading } = useQuery( + { + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, + }, + ); const { data: choicesData, loading: choicesLoading } = useGrievancesChoiceDataQuery(); @@ -183,7 +190,7 @@ const EditGrievancePage = (): ReactElement => { [id: number]: string; } = choicesToDict(choicesData.grievanceTicketCategoryChoices); - const currentUserId = currentUserData.me.id; + const currentUserId = currentUserData.id; const ticket = ticketData.grievanceTicket; const isCreator = ticket.createdBy?.id === currentUserId; diff --git a/src/frontend/src/containers/pages/grievances/GrievancesDetailsPage/GrievancesDetailsPage.tsx b/src/frontend/src/containers/pages/grievances/GrievancesDetailsPage/GrievancesDetailsPage.tsx index c848bb290b..606996de4f 100644 --- a/src/frontend/src/containers/pages/grievances/GrievancesDetailsPage/GrievancesDetailsPage.tsx +++ b/src/frontend/src/containers/pages/grievances/GrievancesDetailsPage/GrievancesDetailsPage.tsx @@ -3,7 +3,6 @@ import { useParams } from 'react-router-dom'; import { useGrievancesChoiceDataQuery, useGrievanceTicketQuery, - useMeQuery, } from '@generated/graphql'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { PermissionDenied } from '@components/core/PermissionDenied'; @@ -20,12 +19,21 @@ import { ReactElement } from 'react'; import withErrorBoundary from '@components/core/withErrorBoundary'; import GrievancesApproveSection from '@components/grievances/GrievancesApproveSection/GrievancesApproveSection'; import GrievancesDetails from '@components/grievances/GrievancesDetails/GrievancesDetails'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; const GrievancesDetailsPage = (): ReactElement => { const { id } = useParams(); const permissions = usePermissions(); - const { data: currentUserData, loading: currentUserDataLoading } = - useMeQuery(); + const { data: currentUserData, isLoading: currentUserDataLoading } = useQuery( + { + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, + }, + ); + const { data, loading, error } = useGrievanceTicketQuery({ variables: { id }, fetchPolicy: 'network-only', diff --git a/src/frontend/src/containers/pages/householdMembers/NewTemplatePage.tsx b/src/frontend/src/containers/pages/householdMembers/NewTemplatePage.tsx index 7b1c57da8f..3fb5b89ac7 100644 --- a/src/frontend/src/containers/pages/householdMembers/NewTemplatePage.tsx +++ b/src/frontend/src/containers/pages/householdMembers/NewTemplatePage.tsx @@ -1,7 +1,4 @@ -import { - createPeriodicDataUpdateTemplate, - fetchPeriodicFields, -} from '@api/periodicDataUpdateApi'; +import { createPeriodicDataUpdateTemplate } from '@api/periodicDataUpdateApi'; import { BaseSection } from '@components/core/BaseSection'; import { BreadCrumbsItem } from '@components/core/BreadCrumbs'; import { LoadingComponent } from '@components/core/LoadingComponent'; @@ -13,6 +10,7 @@ import { useBaseUrl } from '@hooks/useBaseUrl'; import { usePermissions } from '@hooks/usePermissions'; import { useSnackbar } from '@hooks/useSnackBar'; import { Box, Button, Step, StepLabel, Stepper } from '@mui/material'; +import { RestService } from '@restgenerated/services/RestService'; import { useMutation, useQuery } from '@tanstack/react-query'; import { Formik } from 'formik'; import moment from 'moment'; @@ -83,7 +81,11 @@ export const NewTemplatePage = (): ReactElement => { const { data: periodicFieldsData, isLoading: periodicFieldsLoading } = useQuery({ queryKey: ['periodicFields', businessArea, programId], - queryFn: () => fetchPeriodicFields(businessArea, programId), + queryFn: () => + RestService.restProgramsPeriodicDataUpdatePeriodicFieldsList( + businessArea, + programId, + ), }); if (periodicFieldsLoading) { diff --git a/src/frontend/src/containers/pages/managerialConsole/ManagerialConsolePage.tsx b/src/frontend/src/containers/pages/managerialConsole/ManagerialConsolePage.tsx index c59b7b7337..8c6e2f72a1 100644 --- a/src/frontend/src/containers/pages/managerialConsole/ManagerialConsolePage.tsx +++ b/src/frontend/src/containers/pages/managerialConsole/ManagerialConsolePage.tsx @@ -1,7 +1,4 @@ -import { - bulkActionPaymentPlansManagerial, - fetchPaymentPlansManagerial, -} from '@api/paymentModuleApi'; +import { bulkActionPaymentPlansManagerial } from '@api/paymentModuleApi'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { PageHeader } from '@components/core/PageHeader'; import { PermissionDenied } from '@components/core/PermissionDenied'; @@ -18,6 +15,7 @@ import { FC, SetStateAction, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { PERMISSIONS, hasPermissions } from '../../../config/permissions'; import withErrorBoundary from '@components/core/withErrorBoundary'; +import { RestService } from '@restgenerated/services/RestService'; export const ManagerialConsolePage: FC = () => { const { t } = useTranslation(); @@ -58,14 +56,23 @@ export const ManagerialConsolePage: FC = () => { const permissions = usePermissions(); + const fetchPaymentPlans = (status: string) => { + return RestService.restPaymentsPaymentPlansManagerialList( + businessArea, + 10000, + 0, + null, + `status=${status}`, + ); + }; + const { data: inApprovalData, isLoading: inApprovalLoading, refetch: refetchInApproval, } = useQuery({ queryKey: ['paymentPlansInApproval', businessArea], - queryFn: () => - fetchPaymentPlansManagerial(businessArea, { status: 'IN_APPROVAL' }), + queryFn: () => fetchPaymentPlans('IN_APPROVAL'), }); const { @@ -74,10 +81,7 @@ export const ManagerialConsolePage: FC = () => { refetch: refetchInAuthorization, } = useQuery({ queryKey: ['paymentPlansInAuthorization', businessArea], - queryFn: () => - fetchPaymentPlansManagerial(businessArea, { - status: 'IN_AUTHORIZATION', - }), + queryFn: () => fetchPaymentPlans('IN_AUTHORIZATION'), }); const { @@ -86,8 +90,7 @@ export const ManagerialConsolePage: FC = () => { refetch: refetchInReview, } = useQuery({ queryKey: ['paymentPlansInReview', businessArea], - queryFn: () => - fetchPaymentPlansManagerial(businessArea, { status: 'IN_REVIEW' }), + queryFn: () => fetchPaymentPlans('IN_REVIEW'), }); const { @@ -96,8 +99,7 @@ export const ManagerialConsolePage: FC = () => { refetch: refetchReleased, } = useQuery({ queryKey: ['paymentPlansReleased', businessArea], - queryFn: () => - fetchPaymentPlansManagerial(businessArea, { status: 'ACCEPTED' }), + queryFn: () => fetchPaymentPlans('ACCEPTED'), }); const bulkAction = useMutation({ diff --git a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/PaymentPlanDetails/PaymentPlanDetailsHeader.tsx b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/PaymentPlanDetails/PaymentPlanDetailsHeader.tsx index 19d145670c..4e9a699854 100644 --- a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/PaymentPlanDetails/PaymentPlanDetailsHeader.tsx +++ b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/PaymentPlanDetails/PaymentPlanDetailsHeader.tsx @@ -19,9 +19,9 @@ import { paymentPlanStatusToColor, } from '@utils/utils'; import { useQuery } from '@tanstack/react-query'; -import { fetchProgramCycle } from '@api/programCycleApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { AdminButton } from '@core/AdminButton'; +import { RestService } from '@restgenerated/services/RestService'; interface PaymentPlanDetailsHeaderProps { permissions: string[]; @@ -39,14 +39,14 @@ export const PaymentPlanDetailsHeader = ({ queryKey: [ 'programCyclesDetails', businessArea, - programId, decodeIdString(programCycleId), + programId, ], - queryFn: async () => { - return fetchProgramCycle( + queryFn: () => { + return RestService.restProgramsCyclesRetrieve( businessArea, - programId, decodeIdString(programCycleId), + programId, ); }, enabled: !!programCycleId, diff --git a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansTable.tsx b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansTable.tsx index 40732a3d10..7fc1990f2a 100644 --- a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansTable.tsx +++ b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansTable.tsx @@ -1,5 +1,4 @@ import React, { ReactElement } from 'react'; -import { ProgramCycle } from '@api/programCycleApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { AllPaymentPlansForTableQuery, @@ -11,9 +10,10 @@ import { headCells } from '@containers/pages/paymentmodule/ProgramCycle/ProgramC import { PaymentPlanTableRow } from '@containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlanTableRow'; import { adjustHeadCells } from '@utils/utils'; import { useProgramContext } from 'src/programContext'; +import { ProgramCycleList } from '@restgenerated/models/ProgramCycleList'; interface PaymentPlansTableProps { - programCycle: ProgramCycle; + programCycle: ProgramCycleList; filter; canViewDetails: boolean; title?: string; diff --git a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsHeader.tsx b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsHeader.tsx index ee6adce9a6..bdc5bac8d0 100644 --- a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsHeader.tsx +++ b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsHeader.tsx @@ -3,7 +3,6 @@ import { Box, Button } from '@mui/material'; import { PageHeader } from '@core/PageHeader'; import { finishProgramCycle, - ProgramCycle, reactivateProgramCycle, } from '@api/programCycleApi'; import { useTranslation } from 'react-i18next'; @@ -17,9 +16,10 @@ import { decodeIdString } from '@utils/utils'; import { hasPermissions, PERMISSIONS } from '../../../../../config/permissions'; import { usePermissions } from '@hooks/usePermissions'; import { AdminButton } from '@core/AdminButton'; +import { ProgramCycleList } from '@restgenerated/models/ProgramCycleList'; interface ProgramCycleDetailsHeaderProps { - programCycle: ProgramCycle; + programCycle: ProgramCycleList; } export const ProgramCycleDetailsHeader = ({ diff --git a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsPage.tsx b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsPage.tsx index 3bdd82ff64..7a6b5c2c58 100644 --- a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsPage.tsx +++ b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsPage.tsx @@ -1,7 +1,6 @@ import { ReactElement, useState } from 'react'; import { decodeIdString, getFilterFromQueryParams } from '@utils/utils'; import { useQuery } from '@tanstack/react-query'; -import { fetchProgramCycle } from '@api/programCycleApi'; import { useBaseUrl } from '@hooks/useBaseUrl'; import { useLocation, useParams } from 'react-router-dom'; import { ProgramCycleDetailsHeader } from '@containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsHeader'; @@ -12,6 +11,7 @@ import { usePermissions } from '@hooks/usePermissions'; import { PaymentPlansTable } from '@containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansTable'; import { PaymentPlansFilters } from '@containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/PaymentPlansFilters'; import withErrorBoundary from '@components/core/withErrorBoundary'; +import { RestService } from '@restgenerated/services/RestService'; const initialFilter = { search: '', @@ -35,11 +35,15 @@ export const ProgramCycleDetailsPage = (): ReactElement => { queryKey: [ 'programCyclesDetails', businessArea, - programId, decodedProgramCycleId, + programId, ], - queryFn: async () => { - return fetchProgramCycle(businessArea, programId, decodedProgramCycleId); + queryFn: () => { + return RestService.restProgramsCyclesRetrieve( + businessArea, + decodedProgramCycleId, + programId, + ); }, }); const [filter, setFilter] = useState( diff --git a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsSection.tsx b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsSection.tsx index 9e16aab871..ab6bcf323f 100644 --- a/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsSection.tsx +++ b/src/frontend/src/containers/pages/paymentmodule/ProgramCycle/ProgramCycleDetails/ProgramCycleDetailsSection.tsx @@ -8,11 +8,11 @@ import { StatusBox } from '@core/StatusBox'; import { programCycleStatusToColor } from '@utils/utils'; import { LabelizedField } from '@core/LabelizedField'; import { UniversalMoment } from '@core/UniversalMoment'; -import { ProgramCycle } from '@api/programCycleApi'; +import { ProgramCycleList } from '@restgenerated/models/ProgramCycleList'; import { useTranslation } from 'react-i18next'; interface ProgramCycleDetailsSectionProps { - programCycle: ProgramCycle; + programCycle: ProgramCycleList; } export const ProgramCycleDetailsSection = ({ diff --git a/src/frontend/src/containers/pages/people/PeopleDetailsPage.tsx b/src/frontend/src/containers/pages/people/PeopleDetailsPage.tsx index 54335c14dc..2a06dd5e0a 100644 --- a/src/frontend/src/containers/pages/people/PeopleDetailsPage.tsx +++ b/src/frontend/src/containers/pages/people/PeopleDetailsPage.tsx @@ -1,4 +1,3 @@ -import { fetchPeriodicFields } from '@api/periodicDataUpdateApi'; import { BreadCrumbsItem } from '@components/core/BreadCrumbs'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { PageHeader } from '@components/core/PageHeader'; @@ -41,6 +40,7 @@ import { ReactElement } from 'react'; import { IndividualDeliveryMechanisms } from '@components/population/IndividualDeliveryMechanisms'; import withErrorBoundary from '@components/core/withErrorBoundary'; import PaymentsPeopleTable from '@containers/tables/payments/PaymentsPeopleTable/PaymentsPeopleTable'; +import { RestService } from '@restgenerated/services/RestService'; const Container = styled.div` padding: 20px 20px 00px 20px; @@ -90,7 +90,11 @@ const PeopleDetailsPage = (): ReactElement => { useQuery({ queryKey: ['periodicFields', businessArea, programId], queryFn: () => - fetchPeriodicFields(businessArea, programId, { limit: 1000 }), + RestService.restProgramsPeriodicDataUpdatePeriodicFieldsList( + businessArea, + programId, + 1000, + ), }); if ( diff --git a/src/frontend/src/containers/pages/population/PopulationIndividualsDetailsPage.tsx b/src/frontend/src/containers/pages/population/PopulationIndividualsDetailsPage.tsx index b275503cb3..ae9285b256 100644 --- a/src/frontend/src/containers/pages/population/PopulationIndividualsDetailsPage.tsx +++ b/src/frontend/src/containers/pages/population/PopulationIndividualsDetailsPage.tsx @@ -1,4 +1,3 @@ -import { fetchPeriodicFields } from '@api/periodicDataUpdateApi'; import { BreadCrumbsItem } from '@components/core/BreadCrumbs'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { PageHeader } from '@components/core/PageHeader'; @@ -30,6 +29,7 @@ import { useProgramContext } from 'src/programContext'; import styled from 'styled-components'; import { hasPermissions, PERMISSIONS } from '../../../config/permissions'; import { UniversalActivityLogTable } from '../../tables/UniversalActivityLogTable'; +import { RestService } from '@restgenerated/services/RestService'; const Container = styled.div` padding: 20px; @@ -70,7 +70,10 @@ const PopulationIndividualsDetailsPage = (): ReactElement => { useQuery({ queryKey: ['periodicFields', businessArea, programId], queryFn: () => - fetchPeriodicFields(businessArea, programId, { limit: 1000 }), + RestService.restProgramsPeriodicDataUpdatePeriodicFieldsList( + businessArea, + programId, + ), }); if ( diff --git a/src/frontend/src/containers/pages/program/CreateProgramPage.tsx b/src/frontend/src/containers/pages/program/CreateProgramPage.tsx index 4b1ba3f261..e733b73f83 100644 --- a/src/frontend/src/containers/pages/program/CreateProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/CreateProgramPage.tsx @@ -31,6 +31,7 @@ import { programValidationSchema } from '@components/programs/CreateProgram/prog import { useProgramContext } from 'src/programContext'; import { omit } from 'lodash'; import withErrorBoundary from '@components/core/withErrorBoundary'; +import { mapPartnerChoicesWithoutUnicef } from '@utils/utils'; export const CreateProgramPage = (): ReactElement => { const navigate = useNavigate(); @@ -244,13 +245,10 @@ export const CreateProgramPage = (): ReactElement => { errors, setErrors, }) => { - const mappedPartnerChoices = userPartnerChoices - .filter((partner) => partner.name !== 'UNICEF') - .map((partner) => ({ - value: partner.value, - label: partner.name, - disabled: values.partners.some((p) => p.id === partner.value), - })); + const mappedPartnerChoices = mapPartnerChoicesWithoutUnicef( + userPartnerChoices, + values.partners, + ); const handleNextStep = async () => { await handleNext({ diff --git a/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx b/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx index de15f0bdd2..bc3647c72f 100644 --- a/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx @@ -16,7 +16,11 @@ import { useBaseUrl } from '@hooks/useBaseUrl'; import { usePermissions } from '@hooks/usePermissions'; import { useSnackbar } from '@hooks/useSnackBar'; import { Box, Fade } from '@mui/material'; -import { decodeIdString } from '@utils/utils'; +import { + decodeIdString, + mapPartnerChoicesWithoutUnicef, + isPartnerVisible, +} from '@utils/utils'; import { Formik } from 'formik'; import { ReactElement, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -203,7 +207,7 @@ const DuplicateProgramPage = (): ReactElement => { cashPlus, frequencyOfPayments, partners: partners - .filter((partner) => partner.name !== 'UNICEF') + .filter((partner) => isPartnerVisible(partner.name)) .map((partner) => ({ id: partner.id, areas: partner.areas.map((area) => decodeIdString(area.id)), @@ -272,31 +276,27 @@ const DuplicateProgramPage = (): ReactElement => { : undefined; return ( - { - handleSubmit(values); - }} - validationSchema={editProgramDetailsValidationSchema(t, initialValues)} - validateOnChange={true} - > - {({ - submitForm, - values, - validateForm, - setFieldTouched, - setFieldValue, - errors, - setErrors, - }) => { - const mappedPartnerChoices = userPartnerChoices - .filter((partner) => partner.name !== 'UNICEF') - .map((partner) => ({ - value: partner.value, - label: partner.name, - disabled: values.partners.some((p) => p.id === partner.value), - })); - + { + handleSubmit(values); + }} + validationSchema={editProgramDetailsValidationSchema(t, initialValues)} + validateOnChange={true} + > + {({ + submitForm, + values, + validateForm, + setFieldTouched, + setFieldValue, + errors, + setErrors, + }) => { + const mappedPartnerChoices = mapPartnerChoicesWithoutUnicef( + userPartnerChoices, + values.partners, + ); const handleNextStep = async () => { await handleNext({ validateForm, diff --git a/src/frontend/src/containers/pages/program/EditProgramPage.tsx b/src/frontend/src/containers/pages/program/EditProgramPage.tsx index 62a4e12aff..6fff0a2eb3 100644 --- a/src/frontend/src/containers/pages/program/EditProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/EditProgramPage.tsx @@ -22,7 +22,11 @@ import { useBaseUrl } from '@hooks/useBaseUrl'; import { usePermissions } from '@hooks/usePermissions'; import { useSnackbar } from '@hooks/useSnackBar'; import { Box, Fade } from '@mui/material'; -import { decodeIdString } from '@utils/utils'; +import { + decodeIdString, + mapPartnerChoicesWithoutUnicef, + isPartnerVisible, +} from '@utils/utils'; import { Formik } from 'formik'; import { ReactElement, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -253,7 +257,7 @@ const EditProgramPage = (): ReactElement => { partners: partners.length > 0 ? partners - .filter((partner) => partner.name !== 'UNICEF') + .filter((partner) => isPartnerVisible(partner.name)) .map((partner) => ({ id: partner.id, areas: partner.areas.map((area) => decodeIdString(area.id)), @@ -411,13 +415,10 @@ const EditProgramPage = (): ReactElement => { validationSchema={editPartnersValidationSchema(t)} > {({ submitForm, values, setFieldValue }) => { - const mappedPartnerChoices = userPartnerChoices - .filter((partner) => partner.name !== 'UNICEF') - .map((partner) => ({ - value: partner.value, - label: partner.name, - disabled: values.partners.some((p) => p.id === partner.value), - })); + const mappedPartnerChoices = mapPartnerChoicesWithoutUnicef( + userPartnerChoices, + values.partners, + ); return ( diff --git a/src/frontend/src/containers/pages/reporting/ReportingPage.tsx b/src/frontend/src/containers/pages/reporting/ReportingPage.tsx index 83c32de997..f54ecda683 100644 --- a/src/frontend/src/containers/pages/reporting/ReportingPage.tsx +++ b/src/frontend/src/containers/pages/reporting/ReportingPage.tsx @@ -1,7 +1,7 @@ import { ReactElement, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router-dom'; -import { useMeQuery, useReportChoiceDataQuery } from '@generated/graphql'; +import { useReportChoiceDataQuery } from '@generated/graphql'; import { LoadingComponent } from '@components/core/LoadingComponent'; import { PageHeader } from '@components/core/PageHeader'; import { PermissionDenied } from '@components/core/PermissionDenied'; @@ -13,6 +13,8 @@ import { ReportingFilters } from '../../tables/ReportingTable/ReportingFilters'; import { ReportingTable } from '../../tables/ReportingTable/ReportingTable'; import { useBaseUrl } from '@hooks/useBaseUrl'; import withErrorBoundary from '@components/core/withErrorBoundary'; +import { useQuery } from '@tanstack/react-query'; +import { RestService } from '@restgenerated/services/RestService'; const initialFilter = { type: '', @@ -31,8 +33,11 @@ function ReportingPage(): ReactElement { const { data: choicesData, loading: choicesLoading } = useReportChoiceDataQuery(); - const { data: meData, loading: meLoading } = useMeQuery({ - fetchPolicy: 'cache-first', + const { data: meData, isLoading: meLoading } = useQuery({ + queryKey: ['profile'], + queryFn: () => { + return RestService.restProfileRetrieve(); + }, }); const [filter, setFilter] = useState( diff --git a/src/frontend/src/containers/tables/Communication/CommunicationTable/CommunicationTable.test.tsx b/src/frontend/src/containers/tables/Communication/CommunicationTable/CommunicationTable.test.tsx deleted file mode 100644 index 87faa11b20..0000000000 --- a/src/frontend/src/containers/tables/Communication/CommunicationTable/CommunicationTable.test.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloAllCommunicationMessages } from '../../../../../fixtures/communication/fakeApolloAllCommunicationMessages'; -import { ApolloLoadingLink, render } from '../../../../testUtils/testUtils'; -import CommunicationTable from './CommunicationTable'; -import { useBaseUrl } from '@hooks/useBaseUrl'; - -describe('containers/tables//Communication/CommunicationTable', () => { - it('should render with data', async () => { - const { programId } = useBaseUrl(); - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { programId } = useBaseUrl(); - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/Communication/CommunicationTable/__snapshots__/CommunicationTable.test.tsx.snap b/src/frontend/src/containers/tables/Communication/CommunicationTable/__snapshots__/CommunicationTable.test.tsx.snap deleted file mode 100644 index b6b79fd73d..0000000000 --- a/src/frontend/src/containers/tables/Communication/CommunicationTable/__snapshots__/CommunicationTable.test.tsx.snap +++ /dev/null @@ -1,428 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables//Communication/CommunicationTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Messages List -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Message ID - - - - - Title - - - - - Number of Recipients - - - - - Created by - - - - - Creation Date - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables//Communication/CommunicationTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/Feedback/FeedbackTable.test.tsx b/src/frontend/src/containers/tables/Feedback/FeedbackTable.test.tsx deleted file mode 100644 index bde3ca8167..0000000000 --- a/src/frontend/src/containers/tables/Feedback/FeedbackTable.test.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloAllFeedbacks } from '../../../../fixtures/feedback/fakeApolloAllFeedbacks'; -import { render } from '../../../testUtils/testUtils'; -import FeedbackTable from './FeedbackTable'; - -describe('containers/tables//Feedback/FeedbackTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/Feedback/__snapshots__/FeedbackTable.test.tsx.snap b/src/frontend/src/containers/tables/Feedback/__snapshots__/FeedbackTable.test.tsx.snap deleted file mode 100644 index 5a7d197209..0000000000 --- a/src/frontend/src/containers/tables/Feedback/__snapshots__/FeedbackTable.test.tsx.snap +++ /dev/null @@ -1,452 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables//Feedback/FeedbackTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Feedbacks List -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Feedback ID - - - - - Issue Type - - - - - Household ID - - - - - Linked Grievance - - - - - Created by - - - - - Creation Date - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables//Feedback/FeedbackTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/ProgrammesTable/ProgrammesTable.test.tsx b/src/frontend/src/containers/tables/ProgrammesTable/ProgrammesTable.test.tsx deleted file mode 100644 index 354a5368ea..0000000000 --- a/src/frontend/src/containers/tables/ProgrammesTable/ProgrammesTable.test.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { ProgrammesTable } from '.'; -import { render } from '../../../testUtils/testUtils'; -import { fakeProgramChoices } from '../../../../fixtures/programs/fakeProgramChoices'; -import { fakeApolloAllPrograms } from '../../../../fixtures/programs/fakeApolloAllPrograms'; - -describe('containers/tables/ProgrammesTable', () => { - const initialFilter = { - search: '', - startDate: '', - endDate: '', - status: '', - sector: [], - numberOfHouseholdsMin: '', - numberOfHouseholdsMax: '', - budgetMin: '', - budgetMax: '', - dataCollectingType: '', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/ProgrammesTable/__snapshots__/ProgrammesTable.test.tsx.snap b/src/frontend/src/containers/tables/ProgrammesTable/__snapshots__/ProgrammesTable.test.tsx.snap deleted file mode 100644 index 5558665d75..0000000000 --- a/src/frontend/src/containers/tables/ProgrammesTable/__snapshots__/ProgrammesTable.test.tsx.snap +++ /dev/null @@ -1,759 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/ProgrammesTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Programmes -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Name - - - - - Status - - - - - Timeframe - - - - - Sector - - - - - Programme Size - - - - Budget (USD) - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/ProgrammesTable should render with data 1`] = ` -
-
-
-
-
-
-
-
- Programmes -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Name - - - - - Status - - - - - Timeframe - - - - - Sector - - - - - Programme Size - - - - Budget (USD) - - -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–5 of 9 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/ReportingTable/ReportingTable.test.tsx b/src/frontend/src/containers/tables/ReportingTable/ReportingTable.test.tsx deleted file mode 100644 index bb60826310..0000000000 --- a/src/frontend/src/containers/tables/ReportingTable/ReportingTable.test.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { ReportingTable } from '.'; -import { fakeApolloAllReports } from '../../../../fixtures/reporting/fakeApolloAllReports'; -import { fakeReportChoiceData } from '../../../../fixtures/reporting/fakeReportChoiceData'; -import { fakeMe } from '../../../../fixtures/core/fakeMe'; -import { render } from '../../../testUtils/testUtils'; - -describe('containers/tables/ReportingTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/ReportingTable/ReportingTable.tsx b/src/frontend/src/containers/tables/ReportingTable/ReportingTable.tsx index b662354bce..08096b3d27 100644 --- a/src/frontend/src/containers/tables/ReportingTable/ReportingTable.tsx +++ b/src/frontend/src/containers/tables/ReportingTable/ReportingTable.tsx @@ -2,7 +2,6 @@ import { TableWrapper } from '@components/core/TableWrapper'; import { choicesToDict, dateToIsoString } from '@utils/utils'; import { AllReportsQueryVariables, - MeQuery, ReportChoiceDataQuery, ReportNode, useAllReportsQuery, @@ -16,7 +15,7 @@ interface ReportingTableProps { businessArea: string; filter; choicesData: ReportChoiceDataQuery; - meData: MeQuery; + meData; } export function ReportingTable({ businessArea, @@ -30,7 +29,7 @@ export function ReportingTable({ createdTo: dateToIsoString(filter.createdTo, 'endOfDay'), reportType: filter.type, status: filter.status, - createdBy: filter.onlyMy ? meData.me.id : null, + createdBy: filter.onlyMy ? meData.id : null, }; const typeChoices: { [id: number]: string; diff --git a/src/frontend/src/containers/tables/ReportingTable/__snapshots__/ReportingTable.test.tsx.snap b/src/frontend/src/containers/tables/ReportingTable/__snapshots__/ReportingTable.test.tsx.snap deleted file mode 100644 index 2ed8d51d08..0000000000 --- a/src/frontend/src/containers/tables/ReportingTable/__snapshots__/ReportingTable.test.tsx.snap +++ /dev/null @@ -1,826 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/ReportingTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Report Type - - - - - Timeframe - - - - - Status - - - - - Num. of Records - - - - - Creation Date - - - - - Created by - - - - - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/ReportingTable should render with data 1`] = ` -
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Report Type - - - - - Timeframe - - - - - Status - - - - - Num. of Records - - - - - Creation Date - - - - - Created by - - - - - - -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–1 of 1 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/UsersTable/UsersTable.test.tsx b/src/frontend/src/containers/tables/UsersTable/UsersTable.test.tsx deleted file mode 100644 index 107600853f..0000000000 --- a/src/frontend/src/containers/tables/UsersTable/UsersTable.test.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { UsersTable } from '.'; -import { render, ApolloLoadingLink } from '../../../testUtils/testUtils'; -import { fakeApolloAllUsers } from '../../../../fixtures/users/fakeApolloAllUsers'; - -describe('containers/tables/UsersTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/UsersTable/UsersTableRow.tsx b/src/frontend/src/containers/tables/UsersTable/UsersTableRow.tsx index 988865afa3..b48f1fcafa 100644 --- a/src/frontend/src/containers/tables/UsersTable/UsersTableRow.tsx +++ b/src/frontend/src/containers/tables/UsersTable/UsersTableRow.tsx @@ -21,17 +21,15 @@ export const UsersTableRow = ({ user }: UsersTableRowProps): ReactElement => { const mappedRoles = user?.userRoles?.map((el) => (

- {el.businessArea.name} / {el.role.name} + {el.businessArea.name} / {el.program?.name || 'All'} / {el.role.name}

)); - const mappedPartnerRoles = user?.partnerRoles?.map((el) => - el.roles.map((role) => ( -

- {el.businessArea.name} / {role.name} -

- )), - ); + const mappedPartnerRoles = user?.partnerRoles?.map((el) => ( +

+ {el.businessArea.name} / {el.program?.name || 'All'} / {el.role.name} +

+ )); return ( <> @@ -66,7 +64,7 @@ export const UsersTableRow = ({ user }: UsersTableRowProps): ReactElement => { - Country / Role + Country / Program / Role {mappedRoles.length ? mappedRoles : 'No roles assigned.'} diff --git a/src/frontend/src/containers/tables/UsersTable/__snapshots__/UsersTable.test.tsx.snap b/src/frontend/src/containers/tables/UsersTable/__snapshots__/UsersTable.test.tsx.snap deleted file mode 100644 index ad7ee241ca..0000000000 --- a/src/frontend/src/containers/tables/UsersTable/__snapshots__/UsersTable.test.tsx.snap +++ /dev/null @@ -1,457 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/UsersTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Users List -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Name - - - - - Status - - sorted descending - - - - - - Partner - - - - - Email - - - - - Last Login - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/UsersTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/PaymentPlansTable.test.tsx b/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/PaymentPlansTable.test.tsx deleted file mode 100644 index 2ba57dfdb3..0000000000 --- a/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/PaymentPlansTable.test.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloAllPaymentPlansForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentPlansForTable'; -import { render } from '../../../../testUtils/testUtils'; -import PaymentPlansTable from './PaymentPlansTable'; - -describe('containers/tables/payments/PaymentPlansTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }, 10000); // Increase the timeout to 10 seconds - - it('should render loading', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }, 10000); // Increase the timeout to 10 seconds -}); diff --git a/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/__snapshots__/PaymentPlansTable.test.tsx.snap b/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/__snapshots__/PaymentPlansTable.test.tsx.snap deleted file mode 100644 index d6fd461529..0000000000 --- a/src/frontend/src/containers/tables/paymentmodule/PaymentPlansTable/__snapshots__/PaymentPlansTable.test.tsx.snap +++ /dev/null @@ -1,17 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/PaymentPlansTable should render loading 1`] = ` -
-
- Unexpected error -
-
-`; - -exports[`containers/tables/payments/PaymentPlansTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/PaymentsTable.test.tsx b/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/PaymentsTable.test.tsx deleted file mode 100644 index 6f75af5735..0000000000 --- a/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/PaymentsTable.test.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloAllPaymentsForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentsForTable'; -import { fakeApolloAllPaymentPlansForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentPlansForTable'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanQuery } from '@generated/graphql'; -import { PERMISSIONS } from '../../../../config/permissions'; -import PaymentsTable from './PaymentsTable'; - -const paymentPlan = fakeApolloAllPaymentPlansForTable[0].result.data - .allPaymentPlans.edges[0].node as unknown as PaymentPlanQuery['paymentPlan']; - -describe('containers/tables/paymentmodule/PaymentsTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/__snapshots__/PaymentsTable.test.tsx.snap b/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/__snapshots__/PaymentsTable.test.tsx.snap deleted file mode 100644 index 31fe83f199..0000000000 --- a/src/frontend/src/containers/tables/paymentmodule/PaymentsTable/__snapshots__/PaymentsTable.test.tsx.snap +++ /dev/null @@ -1,1369 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/paymentmodule/PaymentsTable should render loading 1`] = ` -
-
-
-
-
- Payee List -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Payment ID - - - - - Household ID - - - - - Household Size - - - - - Administrative Level 2 - - - - - Collector - - - - - FSP - - - - - Entitlement - - - - - Delivered Quantity - - - - - Status - - - - Reconciliation - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–2 of 2 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/paymentmodule/PaymentsTable should render with data 1`] = ` -
-
-
-
-
- Payee List -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Payment ID - - - - - Household ID - - - - - Household Size - - - - - Administrative Level 2 - - - - - Collector - - - - - FSP - - - - - Entitlement - - - - - Delivered Quantity - - - - - Status - - - - Reconciliation - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–2 of 2 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/PeoplePaymentPlansTable.test.tsx b/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/PeoplePaymentPlansTable.test.tsx deleted file mode 100644 index 6c4f7196e4..0000000000 --- a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/PeoplePaymentPlansTable.test.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloAllPaymentPlansForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentPlansForTable'; -import { render } from '../../../../testUtils/testUtils'; -import { PeoplePaymentPlansTable } from './PeoplePaymentPlansTable'; - -describe('containers/tables/payments/PeoplePaymentPlansTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/__snapshots__/PeoplePaymentPlansTable.test.tsx.snap b/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/__snapshots__/PeoplePaymentPlansTable.test.tsx.snap deleted file mode 100644 index d033d4438a..0000000000 --- a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentPlansTable/__snapshots__/PeoplePaymentPlansTable.test.tsx.snap +++ /dev/null @@ -1,17 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/PeoplePaymentPlansTable should render loading 1`] = ` -
-
- Unexpected error -
-
-`; - -exports[`containers/tables/payments/PeoplePaymentPlansTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/PeoplePaymentsTable.test.tsx b/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/PeoplePaymentsTable.test.tsx deleted file mode 100644 index 1c5f239851..0000000000 --- a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/PeoplePaymentsTable.test.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeApolloAllPaymentsForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentsForTable'; -import { fakeApolloAllPaymentPlansForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentPlansForTable'; -import { render } from '../../../../testUtils/testUtils'; -import { PaymentPlanQuery } from '@generated/graphql'; -import PeoplePaymentsTable from './PeoplePaymentsTable'; -import { PERMISSIONS } from '../../../../config/permissions'; - -const paymentPlan = fakeApolloAllPaymentPlansForTable[0].result.data - .allPaymentPlans.edges[0].node as unknown as PaymentPlanQuery['paymentPlan']; - -describe('containers/tables/paymentmodule/PeoplePaymentsTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/__snapshots__/PeoplePaymentsTable.test.tsx.snap b/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/__snapshots__/PeoplePaymentsTable.test.tsx.snap deleted file mode 100644 index f16f81948e..0000000000 --- a/src/frontend/src/containers/tables/paymentmodulePeople/PeoplePaymentsTable/__snapshots__/PeoplePaymentsTable.test.tsx.snap +++ /dev/null @@ -1,1147 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/paymentmodule/PeoplePaymentsTable should render loading 1`] = ` -
-
-
-
-
- Payee List -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Payment ID - - - - - Individual ID - - - - Individual Name - - - - Administrative Level 2 - - - - - FSP - - - - - Entitlement - - - - - Delivered Quantity - - - - - Reconciliation - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–2 of 2 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/paymentmodule/PeoplePaymentsTable should render with data 1`] = ` -
-
-
-
-
- Payee List -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Payment ID - - - - - Individual ID - - - - Individual Name - - - - Administrative Level 2 - - - - - FSP - - - - - Entitlement - - - - - Delivered Quantity - - - - - Reconciliation - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–2 of 2 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/payments/PaymentVerificationTable/PaymentVerificationTable.test.tsx b/src/frontend/src/containers/tables/payments/PaymentVerificationTable/PaymentVerificationTable.test.tsx deleted file mode 100644 index cf6f7e9b26..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentVerificationTable/PaymentVerificationTable.test.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeApolloAllPaymentPlansForTable } from '../../../../../fixtures/payments/fakeApolloAllPaymentPlansForTable'; -import PaymentVerificationTable from './PaymentVerificationTable'; - -describe('containers/tables/payments/PaymentVerificationTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/payments/PaymentVerificationTable/__snapshots__/PaymentVerificationTable.test.tsx.snap b/src/frontend/src/containers/tables/payments/PaymentVerificationTable/__snapshots__/PaymentVerificationTable.test.tsx.snap deleted file mode 100644 index 163214a2d2..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentVerificationTable/__snapshots__/PaymentVerificationTable.test.tsx.snap +++ /dev/null @@ -1,355 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/PaymentVerificationTable should render loading 1`] = ` -
-
-
-
-
-
-
- List of Payment Plans -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Payment Plan ID - - - - - Verification Status - - - - - Cash Amount - - - - - Timeframe - - - - - Last Modified Date - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/payments/PaymentVerificationTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/PaymentsHouseholdTable.test.tsx b/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/PaymentsHouseholdTable.test.tsx deleted file mode 100644 index 99d52356e8..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/PaymentsHouseholdTable.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloAllPaymentsHousehold } from '../../../../../fixtures/payments/fakeApolloAllPaymentsHousehold'; -import { fakeHousehold } from '../../../../../fixtures/population/fakeHousehold'; -import { render } from '../../../../testUtils/testUtils'; -import PaymentsHouseholdTable from './PaymentsHouseholdTable'; - -describe('containers/tables/payments/PaymentsHouseholdTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/__snapshots__/PaymentsHouseholdTable.test.tsx.snap b/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/__snapshots__/PaymentsHouseholdTable.test.tsx.snap deleted file mode 100644 index c0b1e1643c..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentsHouseholdTable/__snapshots__/PaymentsHouseholdTable.test.tsx.snap +++ /dev/null @@ -1,374 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/PaymentsHouseholdTable should render loading 1`] = ` -
-
-
-
-
-
-
- Payments -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Payment ID - - - - - Status - - - - - Head of Household - - - - - Entitlement Quantity - - - - - Delivered Quantity - - - - - Delivery Date - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/payments/PaymentsHouseholdTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/PaymentsPeopleTable.test.tsx b/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/PaymentsPeopleTable.test.tsx deleted file mode 100644 index 964d208608..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/PaymentsPeopleTable.test.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { fakeHousehold } from '../../../../../fixtures/population/fakeHousehold'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeApolloAllPaymentsHousehold } from '../../../../../fixtures/payments/fakeApolloAllPaymentsHousehold'; -import PaymentsPeopleTable from './PaymentsPeopleTable'; - -describe('containers/tables/payments/PaymentsPeopleTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/__snapshots__/PaymentsPeopleTable.test.tsx.snap b/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/__snapshots__/PaymentsPeopleTable.test.tsx.snap deleted file mode 100644 index 376c8d0315..0000000000 --- a/src/frontend/src/containers/tables/payments/PaymentsPeopleTable/__snapshots__/PaymentsPeopleTable.test.tsx.snap +++ /dev/null @@ -1,350 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/PaymentsPeopleTable should render loading 1`] = ` -
-
-
-
-
-
-
- Payment Records -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Payment ID - - - - - Status - - - - - Entitlement Quantity - - - - - Delivered Quantity - - - - - Delivery Date - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/payments/PaymentsPeopleTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/payments/VerificationRecordsTable/VerificationRecordsTable.test.tsx b/src/frontend/src/containers/tables/payments/VerificationRecordsTable/VerificationRecordsTable.test.tsx deleted file mode 100644 index 039667d9b8..0000000000 --- a/src/frontend/src/containers/tables/payments/VerificationRecordsTable/VerificationRecordsTable.test.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloAllPaymentVerifications } from '../../../../../fixtures/payments/fakeApolloAllPaymentVerifications'; -import { ApolloLoadingLink, render } from '../../../../testUtils/testUtils'; -import { VerificationRecordsTable } from '.'; - -describe('containers/tables/payments/VerificationRecordsTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/payments/VerificationRecordsTable/__snapshots__/VerificationRecordsTable.test.tsx.snap b/src/frontend/src/containers/tables/payments/VerificationRecordsTable/__snapshots__/VerificationRecordsTable.test.tsx.snap deleted file mode 100644 index a8c84abf60..0000000000 --- a/src/frontend/src/containers/tables/payments/VerificationRecordsTable/__snapshots__/VerificationRecordsTable.test.tsx.snap +++ /dev/null @@ -1,1381 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/payments/VerificationRecordsTable should render loading 1`] = ` -
-
-
-
-
-
-
- Verification Records -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Payment ID - - - - - Verification Channel - - - - - Verification Plan Id - - - - - Verification Status - - - - - Head of Household - - - - - Household ID - - - - - Household Status - - - - - Delivered - - - - - Received - - - - - Phone # - - - - - Alt. Phone # - - -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/payments/VerificationRecordsTable should render with data 1`] = ` -
-
-
-
-
-
-
- Verification Records -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Payment ID - - - - - Verification Channel - - - - - Verification Plan Id - - - - - Verification Status - - - - - Head of Household - - - - - Household ID - - - - - Household Status - - - - - Delivered - - - - - Received - - - - - Phone # - - - - - Alt. Phone # - - -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–2 of 2 -

-
- - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/people/PeopleListTable/PeopleListTable.test.tsx b/src/frontend/src/containers/tables/people/PeopleListTable/PeopleListTable.test.tsx deleted file mode 100644 index 648d459484..0000000000 --- a/src/frontend/src/containers/tables/people/PeopleListTable/PeopleListTable.test.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { PeopleListTable } from '.'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllIndividualsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllIndividualsForPopulationTable'; - -describe('containers/tables/population/PeopleListTable', () => { - const initialFilter = { - search: '', - documentType: 'national_id', - documentNumber: '', - admin2: '', - sex: '', - ageMin: '', - ageMax: '', - flags: [], - orderBy: 'unicef_id', - status: '', - lastRegistrationDateMin: '', - lastRegistrationDateMax: '', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/people/PeopleListTable/__snapshots__/PeopleListTable.test.tsx.snap b/src/frontend/src/containers/tables/people/PeopleListTable/__snapshots__/PeopleListTable.test.tsx.snap deleted file mode 100644 index d3a4bb4ec5..0000000000 --- a/src/frontend/src/containers/tables/people/PeopleListTable/__snapshots__/PeopleListTable.test.tsx.snap +++ /dev/null @@ -1,402 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/population/PeopleListTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- People -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Individual ID - - - - Individual - - - - Status - - - - Type - - - - Age - - - - Gender - - - - Administrative Level 2 - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/population/PeopleListTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/population/HouseholdCompositionTable/HouseholdCompositionTable.test.tsx b/src/frontend/src/containers/tables/population/HouseholdCompositionTable/HouseholdCompositionTable.test.tsx deleted file mode 100644 index 350df54a32..0000000000 --- a/src/frontend/src/containers/tables/population/HouseholdCompositionTable/HouseholdCompositionTable.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { render } from '../../../../testUtils/testUtils'; -import { fakeHousehold } from '../../../../../fixtures/population/fakeHousehold'; -import { HouseholdCompositionTable } from '.'; - -describe('components/population/HouseholdCompositionTable', () => { - it('should render', () => { - const { container } = render( - , - ); - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/population/HouseholdCompositionTable/__snapshots__/HouseholdCompositionTable.test.tsx.snap b/src/frontend/src/containers/tables/population/HouseholdCompositionTable/__snapshots__/HouseholdCompositionTable.test.tsx.snap deleted file mode 100644 index 4a67644841..0000000000 --- a/src/frontend/src/containers/tables/population/HouseholdCompositionTable/__snapshots__/HouseholdCompositionTable.test.tsx.snap +++ /dev/null @@ -1,258 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/population/HouseholdCompositionTable should render 1`] = ` -
-
-
-
- Household Composition -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Age Group - - Females - - with disability - - Pregnant - - - Males - - with disability -
- 0 - 5 - - - - - - - - -
- 6 - 11 - - - - - - - - -
- 12 - 17 - - - - - - - - -
- 18 - 59 - - - - - - -
- 60 + - - - - - - - - -
-
-
-
- - Unknown - -
- - -
-
-
-
-
- - Other - -
- - -
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/population/HouseholdTable/HouseholdTable.test.tsx b/src/frontend/src/containers/tables/population/HouseholdTable/HouseholdTable.test.tsx deleted file mode 100644 index 62e37a810d..0000000000 --- a/src/frontend/src/containers/tables/population/HouseholdTable/HouseholdTable.test.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { render, ApolloLoadingLink } from '../../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllHouseholdsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllHouseholdsForPopulationTable'; -import { HouseholdTable } from '.'; - -describe('containers/tables/population/HouseholdTable', () => { - const initialFilter = { - search: '', - documentType: '', - documentNumber: '', - residenceStatus: '', - admin2: '', - householdSizeMin: '', - householdSizeMax: '', - orderBy: 'unicef_id', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/population/HouseholdTable/__snapshots__/HouseholdTable.test.tsx.snap b/src/frontend/src/containers/tables/population/HouseholdTable/__snapshots__/HouseholdTable.test.tsx.snap deleted file mode 100644 index 609f38ef56..0000000000 --- a/src/frontend/src/containers/tables/population/HouseholdTable/__snapshots__/HouseholdTable.test.tsx.snap +++ /dev/null @@ -1,414 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/population/HouseholdTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Households -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Household ID - - - - Status - - - - Head of Household - - - - Household Size - - - - Administrative Level 2 - - - - Residence Status - - - - Total Cash Received - - - - Registration Date - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/population/HouseholdTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/population/IndividualsListTable/IndividualsListTable.test.tsx b/src/frontend/src/containers/tables/population/IndividualsListTable/IndividualsListTable.test.tsx deleted file mode 100644 index 7d683f2a77..0000000000 --- a/src/frontend/src/containers/tables/population/IndividualsListTable/IndividualsListTable.test.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { IndividualsListTable } from '.'; -import { ApolloLoadingLink, render } from '../../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllIndividualsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllIndividualsForPopulationTable'; - -describe('containers/tables/population/IndividualsListTable', () => { - const initialFilter = { - search: '', - documentType: 'individual_id', - documentNumber: '', - admin2: '', - sex: '', - ageMin: '', - ageMax: '', - flags: [], - orderBy: 'unicef_id', - status: '', - lastRegistrationDateMin: '', - lastRegistrationDateMax: '', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/population/IndividualsListTable/__snapshots__/IndividualsListTable.test.tsx.snap b/src/frontend/src/containers/tables/population/IndividualsListTable/__snapshots__/IndividualsListTable.test.tsx.snap deleted file mode 100644 index 9cb517eda9..0000000000 --- a/src/frontend/src/containers/tables/population/IndividualsListTable/__snapshots__/IndividualsListTable.test.tsx.snap +++ /dev/null @@ -1,402 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/population/IndividualsListTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Individuals -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Individual ID - - - - Individual - - - - Household ID - - - - Relationship to Head of Household - - - - Age - - - - Gender - - - - Administrative Level 2 - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/population/IndividualsListTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/ImportedHouseholdTable.test.tsx b/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/ImportedHouseholdTable.test.tsx deleted file mode 100644 index 14d27db33c..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/ImportedHouseholdTable.test.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { ImportedHouseholdTable } from '.'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeRegistrationDetailedFragment } from '../../../../../fixtures/registration/fakeRegistrationDetailedFragment'; -import { fakeApolloAllHouseholdsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllHouseholdsForPopulationTable'; - -describe('containers/tables/rdi/ImportedHouseholdTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/__snapshots__/ImportedHouseholdTable.test.tsx.snap b/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/__snapshots__/ImportedHouseholdTable.test.tsx.snap deleted file mode 100644 index 1c554f1b69..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedHouseholdsTable/__snapshots__/ImportedHouseholdTable.test.tsx.snap +++ /dev/null @@ -1,428 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/rdi/ImportedHouseholdTable should render loading 1`] = ` -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - Household ID - - - - - Head of Household - - - - - Household Size - - - - - Administrative Level 2 - - - - - Data Collected - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-`; - -exports[`containers/tables/rdi/ImportedHouseholdTable should render with data 1`] = ` -
-
- Unexpected error -
-
-`; diff --git a/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/ImportedIndividualsTable.test.tsx b/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/ImportedIndividualsTable.test.tsx deleted file mode 100644 index c72d19c2a6..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/ImportedIndividualsTable.test.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import wait from 'waait'; -import { ImportedIndividualsTable } from '.'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllIndividualsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllIndividualsForPopulationTable'; - -describe('containers/tables/rdi/ImportedIndividualsTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/__snapshots__/ImportedIndividualsTable.test.tsx.snap b/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/__snapshots__/ImportedIndividualsTable.test.tsx.snap deleted file mode 100644 index 69eff26944..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedIndividualsTable/__snapshots__/ImportedIndividualsTable.test.tsx.snap +++ /dev/null @@ -1,485 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/rdi/ImportedIndividualsTable should render loading 1`] = ` -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Individual ID - - - - - Individual - - - - - Role - - - - - Relationship to Head of Household - - - - - Date of Birth - - - - - Gender - - - - - Dedupe within Batch - - - - - Dedupe against Population - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/rdi/ImportedIndividualsTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/ImportedPeopleTable.test.tsx b/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/ImportedPeopleTable.test.tsx deleted file mode 100644 index f79bce8209..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/ImportedPeopleTable.test.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { ImportedPeopleTable } from '.'; -import { render } from '../../../../testUtils/testUtils'; -import { fakeHouseholdChoices } from '../../../../../fixtures/population/fakeHouseholdChoices'; -import { fakeApolloAllIndividualsForPopulationTable } from '../../../../../fixtures/population/fakeApolloAllIndividualsForPopulationTable'; - -describe('containers/tables/rdi/ImportedIndividualsTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/__snapshots__/ImportedPeopleTable.test.tsx.snap b/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/__snapshots__/ImportedPeopleTable.test.tsx.snap deleted file mode 100644 index 91a563c6f8..0000000000 --- a/src/frontend/src/containers/tables/rdi/ImportedPeopleTable/__snapshots__/ImportedPeopleTable.test.tsx.snap +++ /dev/null @@ -1,485 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/rdi/ImportedIndividualsTable should render loading 1`] = ` -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Individual ID - - - - - Individual - - - - - Role - - - - - Type - - - - - Date of Birth - - - - - Gender - - - - - Dedupe within Batch - - - - - Dedupe against Population - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-`; - -exports[`containers/tables/rdi/ImportedIndividualsTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/RegistrationDataImportForPeopleTable.test.tsx b/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/RegistrationDataImportForPeopleTable.test.tsx deleted file mode 100644 index 9ac94b7e21..0000000000 --- a/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/RegistrationDataImportForPeopleTable.test.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { RegistrationDataImportForPeopleTable } from '.'; -import { render, ApolloLoadingLink } from '../../../../testUtils/testUtils'; -import { fakeApolloAllRegistrationDataImports } from '../../../../../fixtures/registration/fakeApolloAllRegistrationDataImports'; - -const initialFilter = { - search: '', - importedBy: '', - status: '', - sizeMin: '', - sizeMax: '', - importDateRangeMin: '', - importDateRangeMax: '', -}; - -describe('containers/tables/rdi/RegistrationDataImportTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/__snapshots__/RegistrationDataImportForPeopleTable.test.tsx.snap b/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/__snapshots__/RegistrationDataImportForPeopleTable.test.tsx.snap deleted file mode 100644 index f4d709c001..0000000000 --- a/src/frontend/src/containers/tables/rdi/RegistrationDataImportForPeopleTable/__snapshots__/RegistrationDataImportForPeopleTable.test.tsx.snap +++ /dev/null @@ -1,964 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/rdi/RegistrationDataImportTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- List of Imports (0) -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Title - - - - - Status - - - - - Import Date - - sorted descending - - - - - - Biometric Deduplicated - - - - Num. of People - - - - - Imported by - - - - - Data Source - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/rdi/RegistrationDataImportTable should render with data 1`] = ` -
-
-
-
-
-
-
-
- List of Imports (1) -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Title - - - - - Status - - - - - Import Date - - sorted descending - - - - - - Biometric Deduplicated - - - - Num. of People - - - - - Imported by - - - - - Data Source - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–1 of 1 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/RegistrationDataImportTable.test.tsx b/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/RegistrationDataImportTable.test.tsx deleted file mode 100644 index 3fc2dc6dc9..0000000000 --- a/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/RegistrationDataImportTable.test.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; - -import { act } from 'react'; -import wait from 'waait'; -import { RegistrationDataImportTable } from '.'; -import { render, ApolloLoadingLink } from '../../../../testUtils/testUtils'; -import { fakeApolloAllRegistrationDataImports } from '../../../../../fixtures/registration/fakeApolloAllRegistrationDataImports'; - -const initialFilter = { - search: '', - importedBy: '', - status: '', - sizeMin: '', - sizeMax: '', - importDateRangeMin: '', - importDateRangeMax: '', -}; - -describe('containers/tables/rdi/RegistrationDataImportTable', () => { - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/__snapshots__/RegistrationDataImportTable.test.tsx.snap b/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/__snapshots__/RegistrationDataImportTable.test.tsx.snap deleted file mode 100644 index f53a223950..0000000000 --- a/src/frontend/src/containers/tables/rdi/RegistrationDataImportTable/__snapshots__/RegistrationDataImportTable.test.tsx.snap +++ /dev/null @@ -1,992 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/rdi/RegistrationDataImportTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- List of Imports (0) -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Title - - - - - Status - - - - - Import Date - - sorted descending - - - - - - Num. of Individuals - - - - - Num. of Households - - - - - Imported by - - - - - Data Source - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/rdi/RegistrationDataImportTable should render with data 1`] = ` -
-
-
-
-
-
-
-
- List of Imports (1) -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Title - - - - - Status - - - - - Import Date - - sorted descending - - - - - - Num. of Individuals - - - - - Num. of Households - - - - - Imported by - - - - - Data Source - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 1–1 of 1 -

-
- - -
-
-
-
-
-
-
-`; diff --git a/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/TargetPopulationForPeopleTable.test.tsx b/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/TargetPopulationForPeopleTable.test.tsx deleted file mode 100644 index acd41a8d8c..0000000000 --- a/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/TargetPopulationForPeopleTable.test.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; -import { fakeApolloAllTargetPopulation } from '../../../../../fixtures/targeting/fakeApolloAllTargetPopulation'; -import wait from 'waait'; -import { ApolloLoadingLink, render } from '../../../../testUtils/testUtils'; -import { TargetPopulationForPeopleTable } from '.'; - -describe('containers/tables/targeting/TargetPopulation/TargetPopulationTable', () => { - const initialFilter = { - name: '', - status: '', - totalHouseholdsCountMin: null, - totalHouseholdsCountMax: null, - createdAtRangeMin: '', - createdAtRangeMax: '', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/__snapshots__/TargetPopulationForPeopleTable.test.tsx.snap b/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/__snapshots__/TargetPopulationForPeopleTable.test.tsx.snap deleted file mode 100644 index 2095fb4c4e..0000000000 --- a/src/frontend/src/containers/tables/targeting/TargetPopulationForPeopleTable/__snapshots__/TargetPopulationForPeopleTable.test.tsx.snap +++ /dev/null @@ -1,458 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/targeting/TargetPopulation/TargetPopulationTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Target Populations -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Name - - - - - Status - - - - - Num. of People - - - - - Date Created - - - - - Last Edited - - - - - Created by - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/targeting/TargetPopulation/TargetPopulationTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/containers/tables/targeting/TargetPopulationTable/TargetPopulationTable.test.tsx b/src/frontend/src/containers/tables/targeting/TargetPopulationTable/TargetPopulationTable.test.tsx deleted file mode 100644 index 4b34133dc6..0000000000 --- a/src/frontend/src/containers/tables/targeting/TargetPopulationTable/TargetPopulationTable.test.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { MockedProvider } from '@apollo/react-testing'; -import { act } from 'react'; - -import wait from 'waait'; -import { fakeApolloAllTargetPopulation } from '../../../../../fixtures/targeting/fakeApolloAllTargetPopulation'; -import { render } from '../../../../testUtils/testUtils'; -import { TargetPopulationTable } from '.'; - -describe('containers/tables/targeting/TargetPopulation/TargetPopulationTable', () => { - const initialFilter = { - name: '', - status: '', - totalHouseholdsCountMin: null, - totalHouseholdsCountMax: null, - createdAtRangeMin: '', - createdAtRangeMax: '', - }; - - it('should render with data', async () => { - const { container } = render( - - - , - ); - await act(() => wait(0)); // wait for response - - expect(container).toMatchSnapshot(); - }); - - it('should render loading', () => { - const { container } = render( - - - , - ); - - expect(container).toMatchSnapshot(); - }); -}); diff --git a/src/frontend/src/containers/tables/targeting/TargetPopulationTable/__snapshots__/TargetPopulationTable.test.tsx.snap b/src/frontend/src/containers/tables/targeting/TargetPopulationTable/__snapshots__/TargetPopulationTable.test.tsx.snap deleted file mode 100644 index ca3523b97b..0000000000 --- a/src/frontend/src/containers/tables/targeting/TargetPopulationTable/__snapshots__/TargetPopulationTable.test.tsx.snap +++ /dev/null @@ -1,458 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers/tables/targeting/TargetPopulation/TargetPopulationTable should render loading 1`] = ` -
-
-
-
-
-
-
-
- Target Populations -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Name - - - - - Status - - - - - Num. of Households - - - - - Date Created - - - - - Last Edited - - - - - Created by - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-

- Rows per page: -

-
- - - -
-

- 0–0 of 0 -

-
- - -
-
-
-
-
-
-
-`; - -exports[`containers/tables/targeting/TargetPopulation/TargetPopulationTable should render with data 1`] = ` -
-
-
- Unexpected error -
-
-
-`; diff --git a/src/frontend/src/hooks/usePermissions.ts b/src/frontend/src/hooks/usePermissions.ts index 65c7710671..d73fece32c 100644 --- a/src/frontend/src/hooks/usePermissions.ts +++ b/src/frontend/src/hooks/usePermissions.ts @@ -1,15 +1,19 @@ -import { useBaseUrl } from './useBaseUrl'; +// import { RestService } from '@restgenerated/services/RestService'; +// import { useQuery } from '@tanstack/react-query'; import { useCachedMe } from './useCachedMe'; export function usePermissions(): string[] { + //TODO: uncomment this + // const { data: meData, isLoading: meDataLoading } = useQuery({ + // queryKey: ['profile'], + // queryFn: () => { + // return RestService.restProfileRetrieve(); + // }, + // }); + const { data, loading } = useCachedMe(); - const { businessArea } = useBaseUrl(); if (loading || !data) { return []; } - // eslint-disable-next-line no-restricted-syntax - for (const businessAreaEdge of data.me.businessAreas.edges) { - if (businessArea === businessAreaEdge.node.slug) return businessAreaEdge.node.permissions; - } - return []; + return data.me.permissionsInScope || []; } diff --git a/src/frontend/src/mocks/handlers.ts b/src/frontend/src/mocks/handlers.ts new file mode 100644 index 0000000000..57daf9cfbc --- /dev/null +++ b/src/frontend/src/mocks/handlers.ts @@ -0,0 +1,47 @@ +import { http, HttpResponse } from 'msw'; +import { restProfileRetrieve } from './responses/restProfileRetrieve'; +import { restProgramsCyclesRetrieve } from './responses/restProgramsCyclesRetrieve'; +import { restProgramsPeriodicDataUpdatePeriodicFieldsList } from './responses/restProgramsPeriodicDataUpdatePeriodicFieldsList'; +import { restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList } from './responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList'; +import { restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList } from './responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList'; +import { restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve } from './responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve'; +import { restBeneficiaryGroupsList } from './responses/restBeneficiaryGroupsList'; + +const endpoints = [ + { + url: 'http://localhost:3000/api/rest/profile/', + response: restProfileRetrieve, + }, + { + url: 'http://localhost:3000/api/rest/:business_area/programs/:program_id/cycles/:id/', + response: restProgramsCyclesRetrieve, + }, + { + url: 'http://localhost:3000/api/rest/:business_area/programs/:program_id/periodic-data-update/periodic-fields/', + response: restProgramsPeriodicDataUpdatePeriodicFieldsList, + }, + { + url: 'http://localhost:3000/api/rest/:business_area/programs/:program_id/periodic-data-update/periodic-data-update-templates/', + response: restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList, + }, + { + url: 'http://localhost:3000/api/rest/:business_area/programs/:program_id/periodic-data-update/periodic-data-update-uploads/', + response: restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList, + }, + { + url: 'http://localhost:3000/api/rest/:business_area/programs/:program_id/periodic-data-update/periodic-data-update-templates/:id/', + response: restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve, +}, +{ + url: 'http://localhost:3000/api/rest/beneficiary-groups/', + response: restBeneficiaryGroupsList, +}, +]; + +const createGetHandler = (url: string, response: any) => { + return http.get(url, () => { + return HttpResponse.json(response); + }); +}; + +export const handlers = endpoints.map(endpoint => createGetHandler(endpoint.url, endpoint.response)); diff --git a/src/frontend/src/mocks/responses/restBeneficiaryGroupsList.ts b/src/frontend/src/mocks/responses/restBeneficiaryGroupsList.ts new file mode 100644 index 0000000000..c54b50b38c --- /dev/null +++ b/src/frontend/src/mocks/responses/restBeneficiaryGroupsList.ts @@ -0,0 +1,25 @@ +export const restBeneficiaryGroupsList = { + 'count': 2, + 'next': null, + 'previous': null, + 'results': [ + { + 'id': '09343484-199b-4374-b6e8-9b0c6eae6bda', + 'name': 'Household', + 'group_label': 'Household', + 'group_label_plural': 'Households', + 'member_label': 'Individual', + 'member_label_plural': 'Individuals', + 'master_detail': true, + }, + { + 'id': '76d5e0ce-38b7-4122-9f05-56ba0607f670', + 'name': 'Social Workers', + 'group_label': 'Household', + 'group_label_plural': 'Households', + 'member_label': 'Individual', + 'member_label_plural': 'Individuals', + 'master_detail': false, + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProfileRetrieve.ts b/src/frontend/src/mocks/responses/restProfileRetrieve.ts new file mode 100644 index 0000000000..b2af893cde --- /dev/null +++ b/src/frontend/src/mocks/responses/restProfileRetrieve.ts @@ -0,0 +1,870 @@ +export const restProfileRetrieve = { + id: '4196c2c5-c2dd-48d2-887f-3a9d39e78916', + username: 'root', + email: 'root@root.com', + first_name: 'Root', + last_name: 'Rootkowski', + is_superuser: true, + business_areas: [ + { + id: 'c259b1a0-ae3a-494e-b343-f7c8eb060c68', + name: 'Afghanistan', + slug: 'afghanistan', + permissions: [ + 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', + 'PROGRAMME_REMOVE', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', + 'TARGETING_VIEW_LIST', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', + 'PROGRAMME_CREATE', + 'RDI_VIEW_DETAILS', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', + 'GRIEVANCES_CREATE', + 'PAYMENT_VERIFICATION_DELETE', + 'GRIEVANCES_APPROVE_DATA_CHANGE', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR', + 'DASHBOARD_VIEW_COUNTRY', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', + 'PM_SENDING_PAYMENT_PLAN_TO_FSP', + 'PM_PROGRAMME_CYCLE_DELETE', + 'PM_IMPORT_XLSX_WITH_RECONCILIATION', + 'PROGRAMME_ACTIVATE', + 'PM_PROGRAMME_CYCLE_CREATE', + 'PM_DOWNLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', + 'TARGETING_VIEW_DETAILS', + 'PM_DOWNLOAD_FSP_AUTH_CODE', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', + 'PAYMENT_VERIFICATION_DISCARD', + 'PROGRAMME_UPDATE', + 'PAYMENT_VERIFICATION_INVALID', + 'GRIEVANCES_CROSS_AREA_FILTER', + 'PDU_TEMPLATE_CREATE', + 'PM_UPLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_SENSITIVE', + 'PDU_UPLOAD', + 'GRIEVANCES_SET_IN_PROGRESS', + 'ACTIVITY_LOG_VIEW', + 'GRIEVANCES_UPDATE_AS_OWNER', + 'PM_VIEW_LIST', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', + 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', + 'GRIEVANCES_ADD_NOTE_AS_OWNER', + 'PAYMENT_VERIFICATION_UPDATE', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', + 'PM_LOCK_AND_UNLOCK_FSP', + 'ACTIVITY_LOG_DOWNLOAD', + 'ACCOUNTABILITY_SURVEY_VIEW_CREATE', + 'PM_LOCK_AND_UNLOCK', + 'PAYMENT_VERIFICATION_VIEW_DETAILS', + 'PAYMENT_VERIFICATION_ACTIVATE', + 'ALL_VIEW_PII_DATA_ON_LISTS', + 'PAYMENT_VERIFICATION_EXPORT', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', + 'RDI_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_LIST', + 'USER_MANAGEMENT_VIEW_LIST', + 'GRIEVANCE_ASSIGN', + 'PAYMENT_VERIFICATION_VERIFY', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_LIST', + 'TARGETING_LOCK', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', + 'GEO_VIEW_LIST', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', + 'PM_DOWNLOAD_XLSX_FOR_FSP', + 'REPORTING_EXPORT', + 'GRIEVANCES_FEEDBACK_VIEW_LIST', + 'GRIEVANCES_SET_ON_HOLD', + 'ACCOUNTABILITY_SURVEY_VIEW_LIST', + 'PAYMENT_VERIFICATION_IMPORT', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER', + 'PROGRAMME_FINISH', + 'PM_EXPORT_PDF_SUMMARY', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', + 'PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', + 'PM_PROGRAMME_CYCLE_UPDATE', + 'PM_CREATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', + 'PAYMENT_VERIFICATION_FINISH', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', + 'PM_PROGRAMME_CYCLE_VIEW_DETAILS', + 'PROGRAMME_VIEW_LIST_AND_DETAILS', + 'TARGETING_REMOVE', + 'PROGRAMME_MANAGEMENT_VIEW', + 'PM_ACCEPTANCE_PROCESS_APPROVE', + 'PROGRAMME_DUPLICATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER', + 'PAYMENT_VERIFICATION_MARK_AS_FAILED', + 'GRIEVANCES_ADD_NOTE_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', + 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', + 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_OWNER', + 'GRIEVANCES_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', + 'PM_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_SEND_BACK', + 'GRIEVANCES_FEEDBACK_VIEW_DETAILS', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS', + 'GRIEVANCES_ADD_NOTE', + 'PM_ACCEPTANCE_PROCESS_AUTHORIZE', + 'GRIEVANCES_UPDATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', + 'ACCOUNTABILITY_SURVEY_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER', + 'PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE', + 'GRIEVANCES_FEEDBACK_VIEW_CREATE', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', + 'PAYMENT_VERIFICATION_CREATE', + 'CAN_ADD_BUSINESS_AREA_TO_PARTNER', + 'TARGETING_SEND', + 'PM_MARK_PAYMENT_AS_FAILED', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', + 'RDI_REFUSE_IMPORT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR', + 'RDI_RERUN_DEDUPE', + 'RDI_MERGE_IMPORT', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', + 'GRIEVANCES_FEEDBACK_VIEW_UPDATE', + 'PM_DELETE_SUPPORTING_DOCUMENT', + 'PM_EXPORT_XLSX_FOR_FSP', + 'PM_VIEW_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_CREATOR', + 'PDU_VIEW_LIST_AND_DETAILS', + 'TARGETING_UPDATE', + 'PM_IMPORT_XLSX_WITH_ENTITLEMENTS', + 'PM_SEND_XLSX_PASSWORD', + 'PDU_TEMPLATE_DOWNLOAD', + 'DASHBOARD_EXPORT', + 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', + 'RDI_IMPORT_DATA', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', + 'PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP', + 'PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW', + 'PM_PROGRAMME_CYCLE_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_DETAILS', + 'TARGETING_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', + 'POPULATION_VIEW_HOUSEHOLDS_LIST', + 'TARGETING_UNLOCK', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'GRIEVANCES_UPDATE_AS_CREATOR', + 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', + 'GRIEVANCE_DOCUMENTS_UPLOAD', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', + 'TARGETING_DUPLICATE', + ], + is_accountability_applicable: true, + }, + { + id: '500a351c-ea21-4635-8c9b-5beeaec4a67c', + name: 'Croatia', + slug: 'croatia', + permissions: [ + 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', + 'PROGRAMME_REMOVE', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', + 'TARGETING_VIEW_LIST', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', + 'PROGRAMME_CREATE', + 'RDI_VIEW_DETAILS', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', + 'GRIEVANCES_CREATE', + 'PAYMENT_VERIFICATION_DELETE', + 'GRIEVANCES_APPROVE_DATA_CHANGE', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR', + 'DASHBOARD_VIEW_COUNTRY', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', + 'PM_SENDING_PAYMENT_PLAN_TO_FSP', + 'PM_PROGRAMME_CYCLE_DELETE', + 'PM_IMPORT_XLSX_WITH_RECONCILIATION', + 'PROGRAMME_ACTIVATE', + 'PM_PROGRAMME_CYCLE_CREATE', + 'PM_DOWNLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', + 'TARGETING_VIEW_DETAILS', + 'PM_DOWNLOAD_FSP_AUTH_CODE', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', + 'PAYMENT_VERIFICATION_DISCARD', + 'PROGRAMME_UPDATE', + 'PAYMENT_VERIFICATION_INVALID', + 'GRIEVANCES_CROSS_AREA_FILTER', + 'PDU_TEMPLATE_CREATE', + 'PM_UPLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_SENSITIVE', + 'PDU_UPLOAD', + 'GRIEVANCES_SET_IN_PROGRESS', + 'ACTIVITY_LOG_VIEW', + 'GRIEVANCES_UPDATE_AS_OWNER', + 'PM_VIEW_LIST', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', + 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', + 'GRIEVANCES_ADD_NOTE_AS_OWNER', + 'PAYMENT_VERIFICATION_UPDATE', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', + 'PM_LOCK_AND_UNLOCK_FSP', + 'ACTIVITY_LOG_DOWNLOAD', + 'ACCOUNTABILITY_SURVEY_VIEW_CREATE', + 'PM_LOCK_AND_UNLOCK', + 'PAYMENT_VERIFICATION_VIEW_DETAILS', + 'PAYMENT_VERIFICATION_ACTIVATE', + 'ALL_VIEW_PII_DATA_ON_LISTS', + 'PAYMENT_VERIFICATION_EXPORT', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', + 'RDI_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_LIST', + 'USER_MANAGEMENT_VIEW_LIST', + 'GRIEVANCE_ASSIGN', + 'PAYMENT_VERIFICATION_VERIFY', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_LIST', + 'TARGETING_LOCK', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', + 'GEO_VIEW_LIST', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', + 'PM_DOWNLOAD_XLSX_FOR_FSP', + 'REPORTING_EXPORT', + 'GRIEVANCES_FEEDBACK_VIEW_LIST', + 'GRIEVANCES_SET_ON_HOLD', + 'ACCOUNTABILITY_SURVEY_VIEW_LIST', + 'PAYMENT_VERIFICATION_IMPORT', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER', + 'PROGRAMME_FINISH', + 'PM_EXPORT_PDF_SUMMARY', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', + 'PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', + 'PM_PROGRAMME_CYCLE_UPDATE', + 'PM_CREATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', + 'PAYMENT_VERIFICATION_FINISH', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', + 'PM_PROGRAMME_CYCLE_VIEW_DETAILS', + 'PROGRAMME_VIEW_LIST_AND_DETAILS', + 'TARGETING_REMOVE', + 'PROGRAMME_MANAGEMENT_VIEW', + 'PM_ACCEPTANCE_PROCESS_APPROVE', + 'PROGRAMME_DUPLICATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER', + 'PAYMENT_VERIFICATION_MARK_AS_FAILED', + 'GRIEVANCES_ADD_NOTE_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', + 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', + 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_OWNER', + 'GRIEVANCES_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', + 'PM_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_SEND_BACK', + 'GRIEVANCES_FEEDBACK_VIEW_DETAILS', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS', + 'GRIEVANCES_ADD_NOTE', + 'PM_ACCEPTANCE_PROCESS_AUTHORIZE', + 'GRIEVANCES_UPDATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', + 'ACCOUNTABILITY_SURVEY_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER', + 'PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE', + 'GRIEVANCES_FEEDBACK_VIEW_CREATE', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', + 'PAYMENT_VERIFICATION_CREATE', + 'CAN_ADD_BUSINESS_AREA_TO_PARTNER', + 'TARGETING_SEND', + 'PM_MARK_PAYMENT_AS_FAILED', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', + 'RDI_REFUSE_IMPORT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR', + 'RDI_RERUN_DEDUPE', + 'RDI_MERGE_IMPORT', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', + 'GRIEVANCES_FEEDBACK_VIEW_UPDATE', + 'PM_DELETE_SUPPORTING_DOCUMENT', + 'PM_EXPORT_XLSX_FOR_FSP', + 'PM_VIEW_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_CREATOR', + 'PDU_VIEW_LIST_AND_DETAILS', + 'TARGETING_UPDATE', + 'PM_IMPORT_XLSX_WITH_ENTITLEMENTS', + 'PM_SEND_XLSX_PASSWORD', + 'PDU_TEMPLATE_DOWNLOAD', + 'DASHBOARD_EXPORT', + 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', + 'RDI_IMPORT_DATA', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', + 'PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP', + 'PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW', + 'PM_PROGRAMME_CYCLE_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_DETAILS', + 'TARGETING_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', + 'POPULATION_VIEW_HOUSEHOLDS_LIST', + 'TARGETING_UNLOCK', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'GRIEVANCES_UPDATE_AS_CREATOR', + 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', + 'GRIEVANCE_DOCUMENTS_UPLOAD', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', + 'TARGETING_DUPLICATE', + ], + is_accountability_applicable: false, + }, + { + id: 'e8411e53-f800-479a-89f4-81c07a319f94', + name: 'Global', + slug: 'global', + permissions: [ + 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', + 'PROGRAMME_REMOVE', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', + 'TARGETING_VIEW_LIST', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', + 'PROGRAMME_CREATE', + 'RDI_VIEW_DETAILS', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', + 'GRIEVANCES_CREATE', + 'PAYMENT_VERIFICATION_DELETE', + 'GRIEVANCES_APPROVE_DATA_CHANGE', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR', + 'DASHBOARD_VIEW_COUNTRY', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', + 'PM_SENDING_PAYMENT_PLAN_TO_FSP', + 'PM_PROGRAMME_CYCLE_DELETE', + 'PM_IMPORT_XLSX_WITH_RECONCILIATION', + 'PROGRAMME_ACTIVATE', + 'PM_PROGRAMME_CYCLE_CREATE', + 'PM_DOWNLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', + 'TARGETING_VIEW_DETAILS', + 'PM_DOWNLOAD_FSP_AUTH_CODE', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', + 'PAYMENT_VERIFICATION_DISCARD', + 'PROGRAMME_UPDATE', + 'PAYMENT_VERIFICATION_INVALID', + 'GRIEVANCES_CROSS_AREA_FILTER', + 'PDU_TEMPLATE_CREATE', + 'PM_UPLOAD_SUPPORTING_DOCUMENT', + 'GRIEVANCES_VIEW_LIST_SENSITIVE', + 'PDU_UPLOAD', + 'GRIEVANCES_SET_IN_PROGRESS', + 'ACTIVITY_LOG_VIEW', + 'GRIEVANCES_UPDATE_AS_OWNER', + 'PM_VIEW_LIST', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', + 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', + 'GRIEVANCES_ADD_NOTE_AS_OWNER', + 'PAYMENT_VERIFICATION_UPDATE', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', + 'PM_LOCK_AND_UNLOCK_FSP', + 'ACTIVITY_LOG_DOWNLOAD', + 'ACCOUNTABILITY_SURVEY_VIEW_CREATE', + 'PM_LOCK_AND_UNLOCK', + 'PAYMENT_VERIFICATION_VIEW_DETAILS', + 'PAYMENT_VERIFICATION_ACTIVATE', + 'ALL_VIEW_PII_DATA_ON_LISTS', + 'PAYMENT_VERIFICATION_EXPORT', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', + 'RDI_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_LIST', + 'USER_MANAGEMENT_VIEW_LIST', + 'GRIEVANCE_ASSIGN', + 'PAYMENT_VERIFICATION_VERIFY', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_LIST', + 'TARGETING_LOCK', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', + 'GEO_VIEW_LIST', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', + 'PM_DOWNLOAD_XLSX_FOR_FSP', + 'REPORTING_EXPORT', + 'GRIEVANCES_FEEDBACK_VIEW_LIST', + 'GRIEVANCES_SET_ON_HOLD', + 'ACCOUNTABILITY_SURVEY_VIEW_LIST', + 'PAYMENT_VERIFICATION_IMPORT', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER', + 'PROGRAMME_FINISH', + 'PM_EXPORT_PDF_SUMMARY', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', + 'PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', + 'PM_PROGRAMME_CYCLE_UPDATE', + 'PM_CREATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', + 'PAYMENT_VERIFICATION_FINISH', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', + 'PM_PROGRAMME_CYCLE_VIEW_DETAILS', + 'PROGRAMME_VIEW_LIST_AND_DETAILS', + 'TARGETING_REMOVE', + 'PROGRAMME_MANAGEMENT_VIEW', + 'PM_ACCEPTANCE_PROCESS_APPROVE', + 'PROGRAMME_DUPLICATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER', + 'PAYMENT_VERIFICATION_MARK_AS_FAILED', + 'GRIEVANCES_ADD_NOTE_AS_CREATOR', + 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', + 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', + 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_OWNER', + 'GRIEVANCES_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', + 'PM_SEND_FOR_APPROVAL', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_SEND_BACK', + 'GRIEVANCES_FEEDBACK_VIEW_DETAILS', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS', + 'GRIEVANCES_ADD_NOTE', + 'PM_ACCEPTANCE_PROCESS_AUTHORIZE', + 'GRIEVANCES_UPDATE', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', + 'ACCOUNTABILITY_SURVEY_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER', + 'PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE', + 'GRIEVANCES_FEEDBACK_VIEW_CREATE', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', + 'PAYMENT_VERIFICATION_CREATE', + 'CAN_ADD_BUSINESS_AREA_TO_PARTNER', + 'TARGETING_SEND', + 'PM_MARK_PAYMENT_AS_FAILED', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', + 'RDI_REFUSE_IMPORT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR', + 'RDI_RERUN_DEDUPE', + 'RDI_MERGE_IMPORT', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', + 'GRIEVANCES_FEEDBACK_VIEW_UPDATE', + 'PM_DELETE_SUPPORTING_DOCUMENT', + 'PM_EXPORT_XLSX_FOR_FSP', + 'PM_VIEW_DETAILS', + 'GRIEVANCES_SEND_BACK_AS_CREATOR', + 'PDU_VIEW_LIST_AND_DETAILS', + 'TARGETING_UPDATE', + 'PM_IMPORT_XLSX_WITH_ENTITLEMENTS', + 'PM_SEND_XLSX_PASSWORD', + 'PDU_TEMPLATE_DOWNLOAD', + 'DASHBOARD_EXPORT', + 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', + 'RDI_IMPORT_DATA', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', + 'PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP', + 'PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW', + 'PM_PROGRAMME_CYCLE_VIEW_LIST', + 'POPULATION_VIEW_INDIVIDUALS_DETAILS', + 'TARGETING_CREATE', + 'PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', + 'POPULATION_VIEW_HOUSEHOLDS_LIST', + 'TARGETING_UNLOCK', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'GRIEVANCES_UPDATE_AS_CREATOR', + 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', + 'GRIEVANCE_DOCUMENTS_UPLOAD', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', + 'TARGETING_DUPLICATE', + ], + is_accountability_applicable: false, + }, + ], + permissions_in_scope: [], + user_roles: [ + { + created_at: '2022-03-30T09:05:24.418000Z', + updated_at: '2022-03-30T09:05:24.418000Z', + name: 'Basic User', + subsystem: 'HOPE', + permissions: ['DASHBOARD_VIEW_COUNTRY'], + is_visible_on_ui: true, + is_available_for_partner: true, + }, + { + created_at: '2022-03-30T09:05:24.480000Z', + updated_at: '2022-03-30T09:05:24.480000Z', + name: 'Role with all permissions', + subsystem: 'HOPE', + permissions: [ + 'RDI_VIEW_LIST', + 'RDI_VIEW_DETAILS', + 'RDI_IMPORT_DATA', + 'RDI_RERUN_DEDUPE', + 'RDI_MERGE_IMPORT', + 'RDI_REFUSE_IMPORT', + 'POPULATION_VIEW_HOUSEHOLDS_LIST', + 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', + 'POPULATION_VIEW_INDIVIDUALS_LIST', + 'POPULATION_VIEW_INDIVIDUALS_DETAILS', + 'PROGRAMME_VIEW_LIST_AND_DETAILS', + 'PROGRAMME_MANAGEMENT_VIEW', + 'PROGRAMME_DUPLICATE', + 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', + 'PROGRAMME_CREATE', + 'PROGRAMME_UPDATE', + 'PROGRAMME_REMOVE', + 'PROGRAMME_ACTIVATE', + 'PROGRAMME_FINISH', + 'TARGETING_VIEW_LIST', + 'TARGETING_VIEW_DETAILS', + 'TARGETING_CREATE', + 'TARGETING_UPDATE', + 'TARGETING_DUPLICATE', + 'TARGETING_REMOVE', + 'TARGETING_LOCK', + 'TARGETING_UNLOCK', + 'TARGETING_SEND', + 'PAYMENT_VERIFICATION_VIEW_LIST', + 'PAYMENT_VERIFICATION_VIEW_DETAILS', + 'PAYMENT_VERIFICATION_CREATE', + 'PAYMENT_VERIFICATION_UPDATE', + 'PAYMENT_VERIFICATION_ACTIVATE', + 'PAYMENT_VERIFICATION_DISCARD', + 'PAYMENT_VERIFICATION_FINISH', + 'PAYMENT_VERIFICATION_EXPORT', + 'PAYMENT_VERIFICATION_IMPORT', + 'PAYMENT_VERIFICATION_VERIFY', + 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', + 'PAYMENT_VERIFICATION_DELETE', + 'PAYMENT_VERIFICATION_MARK_AS_FAILED', + 'USER_MANAGEMENT_VIEW_LIST', + 'DASHBOARD_VIEW_COUNTRY', + 'DASHBOARD_EXPORT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_LIST_SENSITIVE', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', + 'GRIEVANCES_CREATE', + 'GRIEVANCES_UPDATE', + 'GRIEVANCES_UPDATE_AS_CREATOR', + 'GRIEVANCES_UPDATE_AS_OWNER', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', + 'GRIEVANCES_ADD_NOTE', + 'GRIEVANCES_ADD_NOTE_AS_CREATOR', + 'GRIEVANCES_ADD_NOTE_AS_OWNER', + 'GRIEVANCES_SET_IN_PROGRESS', + 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', + 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', + 'GRIEVANCES_SET_ON_HOLD', + 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', + 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', + 'GRIEVANCES_SEND_FOR_APPROVAL', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', + 'GRIEVANCES_SEND_BACK', + 'GRIEVANCES_SEND_BACK_AS_CREATOR', + 'GRIEVANCES_SEND_BACK_AS_OWNER', + 'GRIEVANCES_APPROVE_DATA_CHANGE', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', + 'GRIEVANCE_ASSIGN', + 'REPORTING_EXPORT', + 'ALL_VIEW_PII_DATA_ON_LISTS', + 'ACTIVITY_LOG_VIEW', + 'ACTIVITY_LOG_DOWNLOAD', + 'PM_CREATE', + 'PM_VIEW_DETAILS', + 'PM_VIEW_LIST', + 'PM_EXPORT_XLSX_FOR_FSP', + 'PM_DOWNLOAD_XLSX_FOR_FSP', + 'PM_SENDING_PAYMENT_PLAN_TO_FSP', + 'PM_MARK_PAYMENT_AS_FAILED', + 'PM_EXPORT_PDF_SUMMARY', + 'PM_DOWNLOAD_FSP_AUTH_CODE', + 'PM_SEND_XLSX_PASSWORD', + 'PAYMENT_VERIFICATION_INVALID', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER', + 'GRIEVANCE_DOCUMENTS_UPLOAD', + 'PM_IMPORT_XLSX_WITH_ENTITLEMENTS', + 'PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS', + 'PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE', + 'PM_LOCK_AND_UNLOCK', + 'PM_LOCK_AND_UNLOCK_FSP', + 'PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP', + 'PM_SEND_FOR_APPROVAL', + 'PM_ACCEPTANCE_PROCESS_APPROVE', + 'PM_ACCEPTANCE_PROCESS_AUTHORIZE', + 'PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW', + 'PM_IMPORT_XLSX_WITH_RECONCILIATION', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR', + 'GRIEVANCES_FEEDBACK_VIEW_CREATE', + 'GRIEVANCES_FEEDBACK_VIEW_LIST', + 'GRIEVANCES_FEEDBACK_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_VIEW_UPDATE', + 'ACCOUNTABILITY_SURVEY_VIEW_CREATE', + 'ACCOUNTABILITY_SURVEY_VIEW_LIST', + 'ACCOUNTABILITY_SURVEY_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE', + 'CAN_ADD_BUSINESS_AREA_TO_PARTNER', + 'GRIEVANCES_CROSS_AREA_FILTER', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED', + 'PDU_VIEW_LIST_AND_DETAILS', + 'PDU_TEMPLATE_CREATE', + 'PDU_TEMPLATE_DOWNLOAD', + 'PDU_UPLOAD', + 'GEO_VIEW_LIST', + 'PM_PROGRAMME_CYCLE_VIEW_LIST', + 'PM_PROGRAMME_CYCLE_VIEW_DETAILS', + 'PM_PROGRAMME_CYCLE_CREATE', + 'PM_PROGRAMME_CYCLE_UPDATE', + 'PM_PROGRAMME_CYCLE_DELETE', + 'PM_UPLOAD_SUPPORTING_DOCUMENT', + 'PM_DOWNLOAD_SUPPORTING_DOCUMENT', + 'PM_DELETE_SUPPORTING_DOCUMENT', + ], + is_visible_on_ui: true, + is_available_for_partner: true, + }, + ], + partner_roles: [ + { + created_at: '2022-03-30T09:05:24.480000Z', + updated_at: '2022-03-30T09:05:24.480000Z', + name: 'Role with all permissions', + subsystem: 'HOPE', + permissions: [ + 'RDI_VIEW_LIST', + 'RDI_VIEW_DETAILS', + 'RDI_IMPORT_DATA', + 'RDI_RERUN_DEDUPE', + 'RDI_MERGE_IMPORT', + 'RDI_REFUSE_IMPORT', + 'POPULATION_VIEW_HOUSEHOLDS_LIST', + 'POPULATION_VIEW_HOUSEHOLDS_DETAILS', + 'POPULATION_VIEW_INDIVIDUALS_LIST', + 'POPULATION_VIEW_INDIVIDUALS_DETAILS', + 'PROGRAMME_VIEW_LIST_AND_DETAILS', + 'PROGRAMME_MANAGEMENT_VIEW', + 'PROGRAMME_DUPLICATE', + 'PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS', + 'PROGRAMME_CREATE', + 'PROGRAMME_UPDATE', + 'PROGRAMME_REMOVE', + 'PROGRAMME_ACTIVATE', + 'PROGRAMME_FINISH', + 'TARGETING_VIEW_LIST', + 'TARGETING_VIEW_DETAILS', + 'TARGETING_CREATE', + 'TARGETING_UPDATE', + 'TARGETING_DUPLICATE', + 'TARGETING_REMOVE', + 'TARGETING_LOCK', + 'TARGETING_UNLOCK', + 'TARGETING_SEND', + 'PAYMENT_VERIFICATION_VIEW_LIST', + 'PAYMENT_VERIFICATION_VIEW_DETAILS', + 'PAYMENT_VERIFICATION_CREATE', + 'PAYMENT_VERIFICATION_UPDATE', + 'PAYMENT_VERIFICATION_ACTIVATE', + 'PAYMENT_VERIFICATION_DISCARD', + 'PAYMENT_VERIFICATION_FINISH', + 'PAYMENT_VERIFICATION_EXPORT', + 'PAYMENT_VERIFICATION_IMPORT', + 'PAYMENT_VERIFICATION_VERIFY', + 'PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS', + 'PAYMENT_VERIFICATION_DELETE', + 'PAYMENT_VERIFICATION_MARK_AS_FAILED', + 'USER_MANAGEMENT_VIEW_LIST', + 'DASHBOARD_VIEW_COUNTRY', + 'DASHBOARD_EXPORT', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_LIST_SENSITIVE', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR', + 'GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR', + 'GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR', + 'GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER', + 'GRIEVANCES_CREATE', + 'GRIEVANCES_UPDATE', + 'GRIEVANCES_UPDATE_AS_CREATOR', + 'GRIEVANCES_UPDATE_AS_OWNER', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR', + 'GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER', + 'GRIEVANCES_ADD_NOTE', + 'GRIEVANCES_ADD_NOTE_AS_CREATOR', + 'GRIEVANCES_ADD_NOTE_AS_OWNER', + 'GRIEVANCES_SET_IN_PROGRESS', + 'GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR', + 'GRIEVANCES_SET_IN_PROGRESS_AS_OWNER', + 'GRIEVANCES_SET_ON_HOLD', + 'GRIEVANCES_SET_ON_HOLD_AS_CREATOR', + 'GRIEVANCES_SET_ON_HOLD_AS_OWNER', + 'GRIEVANCES_SEND_FOR_APPROVAL', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR', + 'GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER', + 'GRIEVANCES_SEND_BACK', + 'GRIEVANCES_SEND_BACK_AS_CREATOR', + 'GRIEVANCES_SEND_BACK_AS_OWNER', + 'GRIEVANCES_APPROVE_DATA_CHANGE', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR', + 'GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR', + 'GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR', + 'GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER', + 'GRIEVANCE_ASSIGN', + 'REPORTING_EXPORT', + 'ALL_VIEW_PII_DATA_ON_LISTS', + 'ACTIVITY_LOG_VIEW', + 'ACTIVITY_LOG_DOWNLOAD', + 'PM_CREATE', + 'PM_VIEW_DETAILS', + 'PM_VIEW_LIST', + 'PM_EXPORT_XLSX_FOR_FSP', + 'PM_DOWNLOAD_XLSX_FOR_FSP', + 'PM_SENDING_PAYMENT_PLAN_TO_FSP', + 'PM_MARK_PAYMENT_AS_FAILED', + 'PM_EXPORT_PDF_SUMMARY', + 'PM_DOWNLOAD_FSP_AUTH_CODE', + 'PM_SEND_XLSX_PASSWORD', + 'PAYMENT_VERIFICATION_INVALID', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR', + 'GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER', + 'GRIEVANCE_DOCUMENTS_UPLOAD', + 'PM_IMPORT_XLSX_WITH_ENTITLEMENTS', + 'PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS', + 'PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE', + 'PM_LOCK_AND_UNLOCK', + 'PM_LOCK_AND_UNLOCK_FSP', + 'PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP', + 'PM_SEND_FOR_APPROVAL', + 'PM_ACCEPTANCE_PROCESS_APPROVE', + 'PM_ACCEPTANCE_PROCESS_AUTHORIZE', + 'PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW', + 'PM_IMPORT_XLSX_WITH_RECONCILIATION', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE', + 'ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR', + 'GRIEVANCES_FEEDBACK_VIEW_CREATE', + 'GRIEVANCES_FEEDBACK_VIEW_LIST', + 'GRIEVANCES_FEEDBACK_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_VIEW_UPDATE', + 'ACCOUNTABILITY_SURVEY_VIEW_CREATE', + 'ACCOUNTABILITY_SURVEY_VIEW_LIST', + 'ACCOUNTABILITY_SURVEY_VIEW_DETAILS', + 'GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE', + 'CAN_ADD_BUSINESS_AREA_TO_PARTNER', + 'GRIEVANCES_CROSS_AREA_FILTER', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER', + 'PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER', + 'PAYMENT_VIEW_LIST_MANAGERIAL', + 'PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED', + 'PDU_VIEW_LIST_AND_DETAILS', + 'PDU_TEMPLATE_CREATE', + 'PDU_TEMPLATE_DOWNLOAD', + 'PDU_UPLOAD', + 'GEO_VIEW_LIST', + 'PM_PROGRAMME_CYCLE_VIEW_LIST', + 'PM_PROGRAMME_CYCLE_VIEW_DETAILS', + 'PM_PROGRAMME_CYCLE_CREATE', + 'PM_PROGRAMME_CYCLE_UPDATE', + 'PM_PROGRAMME_CYCLE_DELETE', + 'PM_UPLOAD_SUPPORTING_DOCUMENT', + 'PM_DOWNLOAD_SUPPORTING_DOCUMENT', + 'PM_DELETE_SUPPORTING_DOCUMENT', + ], + is_visible_on_ui: true, + is_available_for_partner: true, + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProgramsCyclesRetrieve.ts b/src/frontend/src/mocks/responses/restProgramsCyclesRetrieve.ts new file mode 100644 index 0000000000..a358b0d745 --- /dev/null +++ b/src/frontend/src/mocks/responses/restProgramsCyclesRetrieve.ts @@ -0,0 +1,25 @@ +export const restProgramsCyclesRetrieve = { + count: 1, + next: null, + previous: null, + results: [ + { + id: 'UHJvZ3JhbUN5Y2xlOmYzMWQ3ZWI4LTRlNzItNDIzZC1iMTNmLTNiOGQ5MDM0N2FlYg==', + title: 'Attack apply.', + status: 'Active', + start_date: '2025-02-27', + end_date: '2026-02-02', + program_start_date: '2025-02-27', + program_end_date: '2026-02-27', + created_at: '2025-02-27T13:53:09.242569Z', + total_entitled_quantity_usd: 0, + total_undelivered_quantity_usd: 0, + total_delivered_quantity_usd: 0, + frequency_of_payments: 'One-off', + created_by: '-', + admin_url: + '/api/unicorn/program/programcycle/f31d7eb8-4e72-423d-b13f-3b8d90347aeb/change/', + can_remove_cycle: false, + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList.ts b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList.ts new file mode 100644 index 0000000000..1366f677c2 --- /dev/null +++ b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList.ts @@ -0,0 +1,16 @@ +export const restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesList = { + count: 1, + next: null, + previous: null, + results: [ + { + id: 1, + number_of_records: 33, + created_at: '2025-02-28T10:10:18.442718Z', + created_by: 'Root Rootkowski', + status: 'EXPORTED', + status_display: 'Exported', + can_export: false, + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve.ts b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve.ts new file mode 100644 index 0000000000..417ded4d2b --- /dev/null +++ b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve.ts @@ -0,0 +1,11 @@ +export const restProgramsPeriodicDataUpdatePeriodicDataUpdateTemplatesRetrieve = { + 'id': 1, + 'rounds_data': [ + { + 'field': 'test_1_i_f', + 'round': 1, + 'round_name': 'test1', + 'number_of_records': 33, + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList.ts b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList.ts new file mode 100644 index 0000000000..cc35e2fd7d --- /dev/null +++ b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList.ts @@ -0,0 +1,15 @@ +export const restProgramsPeriodicDataUpdatePeriodicDataUpdateUploadsList = { + 'count': 1, + 'next': null, + 'previous': null, + 'results': [ + { + 'id': 1, + 'template': 1, + 'created_at': '2025-02-28T12:33:39.037189Z', + 'created_by': 'Root Rootkowski', + 'status': 'SUCCESSFUL', + 'status_display': 'Successful', + }, + ], +}; diff --git a/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicFieldsList.ts b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicFieldsList.ts new file mode 100644 index 0000000000..f5a7cb1878 --- /dev/null +++ b/src/frontend/src/mocks/responses/restProgramsPeriodicDataUpdatePeriodicFieldsList.ts @@ -0,0 +1,17 @@ +export const restProgramsPeriodicDataUpdatePeriodicFieldsList = { + count: 1, + next: null, + previous: null, + results: [ + { + id: 'RmxleGlibGVBdHRyaWJ1dGU6Y2JjNWNlMzMtMzY3ZC00MjdlLWJlMzEtMDBkNWEyZmY5YzFh', + name: 'test_1_i_f', + label: 'Test pdu 1', + pdu_data: { + subtype: 'STRING', + number_of_rounds: 12, + rounds_names: ['test1', 'test2', 'test3...'], + }, + }, + ], +}; diff --git a/src/frontend/src/restgenerated/index.ts b/src/frontend/src/restgenerated/index.ts index 06bd5313ab..806bb5d882 100644 --- a/src/frontend/src/restgenerated/index.ts +++ b/src/frontend/src/restgenerated/index.ts @@ -11,16 +11,19 @@ export { ActionEnum } from './models/ActionEnum'; export { Admin1Enum } from './models/Admin1Enum'; export { Admin2Enum } from './models/Admin2Enum'; export { Admin3Enum } from './models/Admin3Enum'; -export type { Admin4Enum } from './models/Admin4Enum'; +export { Admin4Enum } from './models/Admin4Enum'; export type { Area } from './models/Area'; export type { AreaList } from './models/AreaList'; export type { AreaType } from './models/AreaType'; +export type { BeneficiaryGroup } from './models/BeneficiaryGroup'; +export { BiometricDeduplicationBatchStatusEnum } from './models/BiometricDeduplicationBatchStatusEnum'; +export { BiometricDeduplicationGoldenRecordStatusEnum } from './models/BiometricDeduplicationGoldenRecordStatusEnum'; export { BlankEnum } from './models/BlankEnum'; export type { BusinessArea } from './models/BusinessArea'; -export { CollectIndividualDataEnum } from './models/CollectIndividualDataEnum'; export { CollectTypeEnum } from './models/CollectTypeEnum'; export { CommsDisabilityEnum } from './models/CommsDisabilityEnum'; export { ConsentSharingEnum } from './models/ConsentSharingEnum'; +export type { Country } from './models/Country'; export { CountryEnum } from './models/CountryEnum'; export { CountryOriginEnum } from './models/CountryOriginEnum'; export { CurrencyEnum } from './models/CurrencyEnum'; @@ -38,23 +41,30 @@ export type { Household } from './models/Household'; export type { Individual } from './models/Individual'; export { MemoryDisabilityEnum } from './models/MemoryDisabilityEnum'; export type { NullEnum } from './models/NullEnum'; +export type { Organization } from './models/Organization'; export { OrgEnumeratorEnum } from './models/OrgEnumeratorEnum'; export type { PaginatedAreaList } from './models/PaginatedAreaList'; export type { PaginatedAreaListList } from './models/PaginatedAreaListList'; export type { PaginatedAreaTypeList } from './models/PaginatedAreaTypeList'; +export type { PaginatedBeneficiaryGroupList } from './models/PaginatedBeneficiaryGroupList'; export type { PaginatedBusinessAreaList } from './models/PaginatedBusinessAreaList'; +export type { PaginatedCountryList } from './models/PaginatedCountryList'; +export type { PaginatedOrganizationList } from './models/PaginatedOrganizationList'; export type { PaginatedPaymentPlanList } from './models/PaginatedPaymentPlanList'; export type { PaginatedPeriodicDataUpdateTemplateListList } from './models/PaginatedPeriodicDataUpdateTemplateListList'; export type { PaginatedPeriodicDataUpdateUploadListList } from './models/PaginatedPeriodicDataUpdateUploadListList'; export type { PaginatedPeriodicFieldList } from './models/PaginatedPeriodicFieldList'; export type { PaginatedProgramCycleListList } from './models/PaginatedProgramCycleListList'; export type { PaginatedProgramGlobalList } from './models/PaginatedProgramGlobalList'; +export type { PaginatedProjectList } from './models/PaginatedProjectList'; export type { PaginatedRegistrationDataImportListList } from './models/PaginatedRegistrationDataImportListList'; +export type { PaginatedRegistrationList } from './models/PaginatedRegistrationList'; export type { PaginatedTargetPopulationListList } from './models/PaginatedTargetPopulationListList'; export type { PatchedProgramCycleUpdate } from './models/PatchedProgramCycleUpdate'; export type { PatchedRDI } from './models/PatchedRDI'; export type { PaymentPlan } from './models/PaymentPlan'; export type { PaymentPlanBulkAction } from './models/PaymentPlanBulkAction'; +export type { PaymentPlanSupportingDocument } from './models/PaymentPlanSupportingDocument'; export type { PeriodicDataUpdateTemplateCreate } from './models/PeriodicDataUpdateTemplateCreate'; export type { PeriodicDataUpdateTemplateDetail } from './models/PeriodicDataUpdateTemplateDetail'; export type { PeriodicDataUpdateTemplateList } from './models/PeriodicDataUpdateTemplateList'; @@ -71,11 +81,13 @@ export type { ProgramCycleList } from './models/ProgramCycleList'; export type { ProgramCycleUpdate } from './models/ProgramCycleUpdate'; export type { ProgramGlobal } from './models/ProgramGlobal'; export { ProgramGlobalStatusEnum } from './models/ProgramGlobalStatusEnum'; +export type { Project } from './models/Project'; export type { PushPeople } from './models/PushPeople'; export { PushPeopleTypeEnum } from './models/PushPeopleTypeEnum'; export type { RDI } from './models/RDI'; export { RdiMergeStatusEnum } from './models/RdiMergeStatusEnum'; export type { RDINested } from './models/RDINested'; +export type { Registration } from './models/Registration'; export type { RegistrationDataImportList } from './models/RegistrationDataImportList'; export { RegistrationMethodEnum } from './models/RegistrationMethodEnum'; export { RelationshipEnum } from './models/RelationshipEnum'; diff --git a/src/frontend/src/restgenerated/models/ActionEnum.ts b/src/frontend/src/restgenerated/models/ActionEnum.ts index 1ac5a16bb9..1c4daae373 100644 --- a/src/frontend/src/restgenerated/models/ActionEnum.ts +++ b/src/frontend/src/restgenerated/models/ActionEnum.ts @@ -3,6 +3,10 @@ /* tslint:disable */ /* eslint-disable */ /** + * * `TP_LOCK` - Population Lock + * * `TP_UNLOCK` - Population Unlock + * * `TP_REBUILD` - Population Rebuild + * * `DRAFT` - Draft * * `LOCK` - Lock * * `LOCK_FSP` - Lock FSP * * `UNLOCK` - Unlock @@ -14,8 +18,13 @@ * * `REJECT` - Reject * * `FINISH` - Finish * * `SEND_TO_PAYMENT_GATEWAY` - Send to Payment Gateway + * * `SEND_XLSX_PASSWORD` - Send XLSX Password */ export enum ActionEnum { + TP_LOCK = 'TP_LOCK', + TP_UNLOCK = 'TP_UNLOCK', + TP_REBUILD = 'TP_REBUILD', + DRAFT = 'DRAFT', LOCK = 'LOCK', LOCK_FSP = 'LOCK_FSP', UNLOCK = 'UNLOCK', @@ -27,4 +36,5 @@ export enum ActionEnum { REJECT = 'REJECT', FINISH = 'FINISH', SEND_TO_PAYMENT_GATEWAY = 'SEND_TO_PAYMENT_GATEWAY', + SEND_XLSX_PASSWORD = 'SEND_XLSX_PASSWORD', } diff --git a/src/frontend/src/restgenerated/models/Admin3Enum.ts b/src/frontend/src/restgenerated/models/Admin3Enum.ts index 5964fe239f..c52f58a782 100644 --- a/src/frontend/src/restgenerated/models/Admin3Enum.ts +++ b/src/frontend/src/restgenerated/models/Admin3Enum.ts @@ -183,7 +183,6 @@ * * `UA0116027` - Perovska * * `UA0116029` - Pozharska * * `UA0116031` - Rodnykivska - * * `UA0116033` - Simferopolska * * `UA0116035` - Skvortsivska * * `UA0116037` - Trudivska * * `UA0116039` - Ukromnivska @@ -424,7 +423,6 @@ export enum Admin3Enum { UA0116027 = 'UA0116027', UA0116029 = 'UA0116029', UA0116031 = 'UA0116031', - UA0116033 = 'UA0116033', UA0116035 = 'UA0116035', UA0116037 = 'UA0116037', UA0116039 = 'UA0116039', diff --git a/src/frontend/src/restgenerated/models/Admin4Enum.ts b/src/frontend/src/restgenerated/models/Admin4Enum.ts index d88bf70c1a..8399ff5a1d 100644 --- a/src/frontend/src/restgenerated/models/Admin4Enum.ts +++ b/src/frontend/src/restgenerated/models/Admin4Enum.ts @@ -2,4 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export type Admin4Enum = boolean; +/** + * * `UA011603311` - TESTlevel4 + */ +export enum Admin4Enum { + UA011603311 = 'UA011603311', +} diff --git a/src/frontend/generated/models/BeneficiaryGroup.ts b/src/frontend/src/restgenerated/models/BeneficiaryGroup.ts similarity index 100% rename from src/frontend/generated/models/BeneficiaryGroup.ts rename to src/frontend/src/restgenerated/models/BeneficiaryGroup.ts diff --git a/src/frontend/generated/models/BiometricDeduplicationBatchStatusEnum.ts b/src/frontend/src/restgenerated/models/BiometricDeduplicationBatchStatusEnum.ts similarity index 100% rename from src/frontend/generated/models/BiometricDeduplicationBatchStatusEnum.ts rename to src/frontend/src/restgenerated/models/BiometricDeduplicationBatchStatusEnum.ts diff --git a/src/frontend/generated/models/BiometricDeduplicationGoldenRecordStatusEnum.ts b/src/frontend/src/restgenerated/models/BiometricDeduplicationGoldenRecordStatusEnum.ts similarity index 100% rename from src/frontend/generated/models/BiometricDeduplicationGoldenRecordStatusEnum.ts rename to src/frontend/src/restgenerated/models/BiometricDeduplicationGoldenRecordStatusEnum.ts diff --git a/src/frontend/src/restgenerated/models/BlankEnum.ts b/src/frontend/src/restgenerated/models/BlankEnum.ts index 80941d70af..df66ea4f72 100644 --- a/src/frontend/src/restgenerated/models/BlankEnum.ts +++ b/src/frontend/src/restgenerated/models/BlankEnum.ts @@ -3,5 +3,5 @@ /* tslint:disable */ /* eslint-disable */ export enum BlankEnum { - = '', + empty = '', } diff --git a/src/frontend/src/restgenerated/models/CollectIndividualDataEnum.ts b/src/frontend/src/restgenerated/models/CollectIndividualDataEnum.ts deleted file mode 100644 index 68890bffa5..0000000000 --- a/src/frontend/src/restgenerated/models/CollectIndividualDataEnum.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* generated using openapi-typescript-codegen -- do not edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/** - * * `` - Unknown - * * `2` - Partial individuals collected - * * `1` - Full individual collected - * * `3` - Size only collected - * * `0` - No individual data - */ -export enum CollectIndividualDataEnum { - _2 = '2', - _1 = '1', - _3 = '3', - _0 = '0', -} diff --git a/src/frontend/generated/models/Country.ts b/src/frontend/src/restgenerated/models/Country.ts similarity index 100% rename from src/frontend/generated/models/Country.ts rename to src/frontend/src/restgenerated/models/Country.ts diff --git a/src/frontend/src/restgenerated/models/CurrencyEnum.ts b/src/frontend/src/restgenerated/models/CurrencyEnum.ts index 759430eef9..bce6ce6230 100644 --- a/src/frontend/src/restgenerated/models/CurrencyEnum.ts +++ b/src/frontend/src/restgenerated/models/CurrencyEnum.ts @@ -128,7 +128,7 @@ * * `SEK` - Swedish krona/kronor * * `SGD` - Singapore dollar * * `SHP` - Saint Helena pound - * * `SLL` - Sierra Leonean leone + * * `SLE` - Sierra Leonean leone * * `SOS` - Somali shilling * * `SRD` - Surinamese dollar * * `SSP` - South Sudanese pound @@ -292,7 +292,7 @@ export enum CurrencyEnum { SEK = 'SEK', SGD = 'SGD', SHP = 'SHP', - SLL = 'SLL', + SLE = 'SLE', SOS = 'SOS', SRD = 'SRD', SSP = 'SSP', diff --git a/src/frontend/src/restgenerated/models/Household.ts b/src/frontend/src/restgenerated/models/Household.ts index 1cf6363056..2d1a443d17 100644 --- a/src/frontend/src/restgenerated/models/Household.ts +++ b/src/frontend/src/restgenerated/models/Household.ts @@ -14,7 +14,6 @@ import type { RdiMergeStatusEnum } from './RdiMergeStatusEnum'; import type { RegistrationMethodEnum } from './RegistrationMethodEnum'; import type { ResidenceStatusEnum } from './ResidenceStatusEnum'; export type Household = { - collect_individual_data: string; first_registration_date?: string; last_registration_date?: string; members: Array; @@ -28,7 +27,7 @@ export type Household = { is_removed?: boolean; removed_date?: string | null; last_sync_at?: string | null; - unicef_id?: string | null; + internal_data?: any; withdrawn?: boolean; withdrawn_date?: string | null; consent_sign?: string; @@ -64,6 +63,8 @@ export type Household = { children_disabled_count?: number | null; male_children_disabled_count?: number | null; female_children_disabled_count?: number | null; + other_sex_group_count?: number | null; + unknown_sex_group_count?: number | null; returnee?: boolean | null; flex_fields?: any; fchild_hoh?: boolean | null; @@ -77,8 +78,6 @@ export type Household = { registration_method?: (RegistrationMethodEnum | BlankEnum); currency?: (CurrencyEnum | BlankEnum); unhcr_id?: string; - user_fields?: any; - registration_id?: string | null; program_registration_id?: string | null; total_cash_received_usd?: string | null; total_cash_received?: string | null; @@ -107,6 +106,5 @@ export type Household = { * Through model will contain the role (ROLE_CHOICE) they are connected with on. */ readonly representatives: Array; - programs?: Array; }; diff --git a/src/frontend/src/restgenerated/models/Individual.ts b/src/frontend/src/restgenerated/models/Individual.ts index 6c0a9b4f6e..0d40ca762d 100644 --- a/src/frontend/src/restgenerated/models/Individual.ts +++ b/src/frontend/src/restgenerated/models/Individual.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { BiometricDeduplicationBatchStatusEnum } from './BiometricDeduplicationBatchStatusEnum'; +import type { BiometricDeduplicationGoldenRecordStatusEnum } from './BiometricDeduplicationGoldenRecordStatusEnum'; import type { BlankEnum } from './BlankEnum'; import type { CommsDisabilityEnum } from './CommsDisabilityEnum'; import type { DeduplicationGoldenRecordStatusEnum } from './DeduplicationGoldenRecordStatusEnum'; @@ -33,7 +35,7 @@ export type Individual = { is_removed?: boolean; removed_date?: string | null; last_sync_at?: string | null; - unicef_id?: string | null; + internal_data?: any; duplicate?: boolean; duplicate_date?: string | null; withdrawn?: boolean; @@ -78,10 +80,13 @@ export type Individual = { relationship?: (RelationshipEnum | BlankEnum); work_status?: (WorkStatusEnum | BlankEnum); flex_fields?: any; - user_fields?: any; enrolled_in_nutrition_programme?: boolean | null; administration_of_rutf?: boolean | null; deduplication_golden_record_status?: DeduplicationGoldenRecordStatusEnum; + biometric_deduplication_golden_record_status?: BiometricDeduplicationGoldenRecordStatusEnum; + biometric_deduplication_batch_status?: BiometricDeduplicationBatchStatusEnum; + biometric_deduplication_golden_record_results?: any; + biometric_deduplication_batch_results?: any; imported_individual_id?: string | null; sanction_list_possible_match?: boolean; sanction_list_confirmed_match?: boolean; @@ -99,10 +104,9 @@ export type Individual = { fchild_hoh?: boolean; child_hoh?: boolean; /** - * Kobo asset ID, Xlsx row ID, Aurora source ID + * Kobo asset ID, Xlsx row ID, Aurora registration ID */ detail_id?: string | null; - registration_id?: string | null; program_registration_id?: string | null; preferred_language?: (PreferredLanguageEnum | BlankEnum | NullEnum) | null; relationship_confirmed?: boolean; @@ -115,7 +119,6 @@ export type Individual = { migrated_at?: string | null; mis_unicef_id?: string | null; individual_collection?: number | null; - program?: string | null; /** * If this individual was copied from another individual, this field will contain the individual it was copied from. */ diff --git a/src/frontend/generated/models/Organization.ts b/src/frontend/src/restgenerated/models/Organization.ts similarity index 100% rename from src/frontend/generated/models/Organization.ts rename to src/frontend/src/restgenerated/models/Organization.ts diff --git a/src/frontend/generated/models/PaginatedBeneficiaryGroupList.ts b/src/frontend/src/restgenerated/models/PaginatedBeneficiaryGroupList.ts similarity index 100% rename from src/frontend/generated/models/PaginatedBeneficiaryGroupList.ts rename to src/frontend/src/restgenerated/models/PaginatedBeneficiaryGroupList.ts diff --git a/src/frontend/generated/models/PaginatedCountryList.ts b/src/frontend/src/restgenerated/models/PaginatedCountryList.ts similarity index 100% rename from src/frontend/generated/models/PaginatedCountryList.ts rename to src/frontend/src/restgenerated/models/PaginatedCountryList.ts diff --git a/src/frontend/generated/models/PaginatedOrganizationList.ts b/src/frontend/src/restgenerated/models/PaginatedOrganizationList.ts similarity index 100% rename from src/frontend/generated/models/PaginatedOrganizationList.ts rename to src/frontend/src/restgenerated/models/PaginatedOrganizationList.ts diff --git a/src/frontend/generated/models/PaginatedProjectList.ts b/src/frontend/src/restgenerated/models/PaginatedProjectList.ts similarity index 100% rename from src/frontend/generated/models/PaginatedProjectList.ts rename to src/frontend/src/restgenerated/models/PaginatedProjectList.ts diff --git a/src/frontend/generated/models/PaginatedRegistrationList.ts b/src/frontend/src/restgenerated/models/PaginatedRegistrationList.ts similarity index 100% rename from src/frontend/generated/models/PaginatedRegistrationList.ts rename to src/frontend/src/restgenerated/models/PaginatedRegistrationList.ts diff --git a/src/frontend/src/restgenerated/models/PaymentPlan.ts b/src/frontend/src/restgenerated/models/PaymentPlan.ts index 2f45797695..04698cf29a 100644 --- a/src/frontend/src/restgenerated/models/PaymentPlan.ts +++ b/src/frontend/src/restgenerated/models/PaymentPlan.ts @@ -8,14 +8,14 @@ export type PaymentPlan = { unicef_id?: string | null; name?: string | null; status: string; - target_population: string; + targeting_criteria: string; total_households_count?: number; currency: string; total_entitled_quantity?: string | null; total_delivered_quantity?: string | null; total_undelivered_quantity?: string | null; - dispersion_start_date: string; - dispersion_end_date: string; + dispersion_start_date?: string | null; + dispersion_end_date?: string | null; is_follow_up?: boolean; readonly follow_ups: Array; program: string; diff --git a/src/frontend/generated/models/PaymentPlanSupportingDocument.ts b/src/frontend/src/restgenerated/models/PaymentPlanSupportingDocument.ts similarity index 100% rename from src/frontend/generated/models/PaymentPlanSupportingDocument.ts rename to src/frontend/src/restgenerated/models/PaymentPlanSupportingDocument.ts diff --git a/src/frontend/src/restgenerated/models/Program.ts b/src/frontend/src/restgenerated/models/Program.ts index 9af73807b8..0146bd58a1 100644 --- a/src/frontend/src/restgenerated/models/Program.ts +++ b/src/frontend/src/restgenerated/models/Program.ts @@ -15,5 +15,6 @@ export type Program = { cash_plus: boolean; population_goal: number; data_collecting_type: number; + beneficiary_group: string; }; diff --git a/src/frontend/src/restgenerated/models/ProgramCycleList.ts b/src/frontend/src/restgenerated/models/ProgramCycleList.ts index 243e0c92be..655216dc88 100644 --- a/src/frontend/src/restgenerated/models/ProgramCycleList.ts +++ b/src/frontend/src/restgenerated/models/ProgramCycleList.ts @@ -17,5 +17,6 @@ export type ProgramCycleList = { readonly frequency_of_payments: string; readonly created_by: string; readonly admin_url: string | null; + readonly can_remove_cycle: boolean; }; diff --git a/src/frontend/generated/models/Project.ts b/src/frontend/src/restgenerated/models/Project.ts similarity index 100% rename from src/frontend/generated/models/Project.ts rename to src/frontend/src/restgenerated/models/Project.ts diff --git a/src/frontend/src/restgenerated/models/PushPeople.ts b/src/frontend/src/restgenerated/models/PushPeople.ts index f49fd92589..d2fb4a9189 100644 --- a/src/frontend/src/restgenerated/models/PushPeople.ts +++ b/src/frontend/src/restgenerated/models/PushPeople.ts @@ -6,8 +6,9 @@ import type { Admin1Enum } from './Admin1Enum'; import type { Admin2Enum } from './Admin2Enum'; import type { Admin3Enum } from './Admin3Enum'; import type { Admin4Enum } from './Admin4Enum'; +import type { BiometricDeduplicationBatchStatusEnum } from './BiometricDeduplicationBatchStatusEnum'; +import type { BiometricDeduplicationGoldenRecordStatusEnum } from './BiometricDeduplicationGoldenRecordStatusEnum'; import type { BlankEnum } from './BlankEnum'; -import type { CollectIndividualDataEnum } from './CollectIndividualDataEnum'; import type { CommsDisabilityEnum } from './CommsDisabilityEnum'; import type { CountryEnum } from './CountryEnum'; import type { CountryOriginEnum } from './CountryOriginEnum'; @@ -37,7 +38,6 @@ export type PushPeople = { type: (PushPeopleTypeEnum | BlankEnum); country_origin?: CountryOriginEnum; country: CountryEnum; - collect_individual_data: (CollectIndividualDataEnum | BlankEnum); residence_status: (ResidenceStatusEnum | BlankEnum); village?: string | null; phone_no?: string | null; @@ -55,6 +55,7 @@ export type PushPeople = { * record revision number */ version?: number; + internal_data?: any; duplicate?: boolean; duplicate_date?: string | null; withdrawn?: boolean; @@ -97,10 +98,13 @@ export type PushPeople = { relationship?: (RelationshipEnum | BlankEnum); work_status?: (WorkStatusEnum | BlankEnum); flex_fields?: any; - user_fields?: any; enrolled_in_nutrition_programme?: boolean | null; administration_of_rutf?: boolean | null; deduplication_golden_record_status?: DeduplicationGoldenRecordStatusEnum; + biometric_deduplication_golden_record_status?: BiometricDeduplicationGoldenRecordStatusEnum; + biometric_deduplication_batch_status?: BiometricDeduplicationBatchStatusEnum; + biometric_deduplication_golden_record_results?: any; + biometric_deduplication_batch_results?: any; imported_individual_id?: string | null; sanction_list_possible_match?: boolean; sanction_list_confirmed_match?: boolean; @@ -117,7 +121,6 @@ export type PushPeople = { who_answers_alt_phone?: string; fchild_hoh?: boolean; child_hoh?: boolean; - registration_id?: string | null; program_registration_id?: string | null; preferred_language?: (PreferredLanguageEnum | BlankEnum | NullEnum) | null; relationship_confirmed?: boolean; @@ -131,7 +134,6 @@ export type PushPeople = { mis_unicef_id?: string | null; vector_column?: string | null; individual_collection?: number | null; - program?: string | null; /** * If this individual was copied from another individual, this field will contain the individual it was copied from. */ diff --git a/src/frontend/generated/models/Registration.ts b/src/frontend/src/restgenerated/models/Registration.ts similarity index 100% rename from src/frontend/generated/models/Registration.ts rename to src/frontend/src/restgenerated/models/Registration.ts diff --git a/src/frontend/src/restgenerated/models/SexEnum.ts b/src/frontend/src/restgenerated/models/SexEnum.ts index 8b3ec50808..34b58ae704 100644 --- a/src/frontend/src/restgenerated/models/SexEnum.ts +++ b/src/frontend/src/restgenerated/models/SexEnum.ts @@ -5,6 +5,9 @@ /** * * `MALE` - Male * * `FEMALE` - Female + * * `OTHER` - Other + * * `NOT_COLLECTED` - Not collected + * * `NOT_ANSWERED` - Not answered */ export enum SexEnum { MALE = 'MALE', diff --git a/src/frontend/src/restgenerated/models/TargetPopulationList.ts b/src/frontend/src/restgenerated/models/TargetPopulationList.ts index 15adb8d0a6..6aa2fb20c4 100644 --- a/src/frontend/src/restgenerated/models/TargetPopulationList.ts +++ b/src/frontend/src/restgenerated/models/TargetPopulationList.ts @@ -4,8 +4,8 @@ /* eslint-disable */ export type TargetPopulationList = { readonly id: string; - name: string; - status: string; + name?: string | null; + readonly status: string; created_by?: string; readonly created_at: string; }; diff --git a/src/frontend/src/restgenerated/services/RestService.ts b/src/frontend/src/restgenerated/services/RestService.ts index a0c5c111b7..7c69b382a9 100644 --- a/src/frontend/src/restgenerated/services/RestService.ts +++ b/src/frontend/src/restgenerated/services/RestService.ts @@ -6,18 +6,24 @@ import type { DelegatePeople } from '../models/DelegatePeople'; import type { PaginatedAreaList } from '../models/PaginatedAreaList'; import type { PaginatedAreaListList } from '../models/PaginatedAreaListList'; import type { PaginatedAreaTypeList } from '../models/PaginatedAreaTypeList'; +import type { PaginatedBeneficiaryGroupList } from '../models/PaginatedBeneficiaryGroupList'; import type { PaginatedBusinessAreaList } from '../models/PaginatedBusinessAreaList'; +import type { PaginatedCountryList } from '../models/PaginatedCountryList'; +import type { PaginatedOrganizationList } from '../models/PaginatedOrganizationList'; import type { PaginatedPaymentPlanList } from '../models/PaginatedPaymentPlanList'; import type { PaginatedPeriodicDataUpdateTemplateListList } from '../models/PaginatedPeriodicDataUpdateTemplateListList'; import type { PaginatedPeriodicDataUpdateUploadListList } from '../models/PaginatedPeriodicDataUpdateUploadListList'; import type { PaginatedPeriodicFieldList } from '../models/PaginatedPeriodicFieldList'; import type { PaginatedProgramCycleListList } from '../models/PaginatedProgramCycleListList'; import type { PaginatedProgramGlobalList } from '../models/PaginatedProgramGlobalList'; +import type { PaginatedProjectList } from '../models/PaginatedProjectList'; import type { PaginatedRegistrationDataImportListList } from '../models/PaginatedRegistrationDataImportListList'; +import type { PaginatedRegistrationList } from '../models/PaginatedRegistrationList'; import type { PaginatedTargetPopulationListList } from '../models/PaginatedTargetPopulationListList'; import type { PatchedProgramCycleUpdate } from '../models/PatchedProgramCycleUpdate'; import type { PatchedRDI } from '../models/PatchedRDI'; import type { PaymentPlanBulkAction } from '../models/PaymentPlanBulkAction'; +import type { PaymentPlanSupportingDocument } from '../models/PaymentPlanSupportingDocument'; import type { PeriodicDataUpdateTemplateCreate } from '../models/PeriodicDataUpdateTemplateCreate'; import type { PeriodicDataUpdateTemplateDetail } from '../models/PeriodicDataUpdateTemplateDetail'; import type { PeriodicDataUpdateUpload } from '../models/PeriodicDataUpdateUpload'; @@ -136,30 +142,41 @@ export class RestService { } /** * @param businessArea - * @returns any No response body + * @param ordering Which field to use when ordering the results. + * @param updatedAtAfter + * @param updatedAtBefore + * @returns Program * @throws ApiError */ - public static restProgramRetrieve( + public static restProgramList( businessArea: string, - ): CancelablePromise { + ordering?: string, + updatedAtAfter?: string, + updatedAtBefore?: string, + ): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/api/rest/{business_area}/program/', path: { 'business_area': businessArea, }, + query: { + 'ordering': ordering, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, + }, }); } /** * @param businessArea * @param requestBody - * @returns any No response body + * @returns Program * @throws ApiError */ public static restProgramCreateCreate( businessArea: string, requestBody: Program, - ): CancelablePromise { + ): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/api/rest/{business_area}/program/create/', @@ -367,22 +384,26 @@ export class RestService { * @param businessArea * @param paymentPlanId * @param programId - * @returns any No response body + * @param requestBody + * @returns PaymentPlanSupportingDocument * @throws ApiError */ - public static restProgramsPaymentPlansSupportingDocumentsUploadCreate( + public static restProgramsPaymentPlansSupportingDocumentsCreate( businessArea: string, paymentPlanId: string, programId: string, - ): CancelablePromise { + requestBody: PaymentPlanSupportingDocument, + ): CancelablePromise { return __request(OpenAPI, { method: 'POST', - url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents-upload/', + url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/', path: { 'business_area': businessArea, 'payment_plan_id': paymentPlanId, 'program_id': programId, }, + body: requestBody, + mediaType: 'application/json', }); } /** @@ -390,17 +411,17 @@ export class RestService { * @param fileId * @param paymentPlanId * @param programId - * @returns any No response body + * @returns void * @throws ApiError */ - public static restProgramsPaymentPlansSupportingDocumentsRetrieve( + public static restProgramsPaymentPlansSupportingDocumentsDestroy( businessArea: string, fileId: string, paymentPlanId: string, programId: string, - ): CancelablePromise { + ): CancelablePromise { return __request(OpenAPI, { - method: 'GET', + method: 'DELETE', url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/{file_id}/', path: { 'business_area': businessArea, @@ -415,18 +436,18 @@ export class RestService { * @param fileId * @param paymentPlanId * @param programId - * @returns void + * @returns PaymentPlanSupportingDocument * @throws ApiError */ - public static restProgramsPaymentPlansSupportingDocumentsDestroy( + public static restProgramsPaymentPlansSupportingDocumentsDownloadRetrieve( businessArea: string, fileId: string, paymentPlanId: string, programId: string, - ): CancelablePromise { + ): CancelablePromise { return __request(OpenAPI, { - method: 'DELETE', - url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/{file_id}/', + method: 'GET', + url: '/api/rest/{business_area}/programs/{program_id}/payment-plans/{payment_plan_id}/supporting-documents/{file_id}/download/', path: { 'business_area': businessArea, 'file_id': fileId, @@ -961,37 +982,119 @@ export class RestService { }); } /** + * @param areaTypeAreaLevel + * @param countryIsoCode2 + * @param countryIsoCode3 * @param limit Number of results to return per page. * @param offset The initial index from which to return the results. + * @param ordering Which field to use when ordering the results. + * @param parentId + * @param parentPCode + * @param search A search term. + * @param updatedAtAfter + * @param updatedAtBefore + * @param validFromAfter + * @param validFromBefore + * @param validUntilAfter + * @param validUntilBefore * @returns PaginatedAreaList * @throws ApiError */ public static restAreasList( + areaTypeAreaLevel?: number, + countryIsoCode2?: string, + countryIsoCode3?: string, limit?: number, offset?: number, + ordering?: string, + parentId?: string, + parentPCode?: string, + search?: string, + updatedAtAfter?: string, + updatedAtBefore?: string, + validFromAfter?: string, + validFromBefore?: string, + validUntilAfter?: string, + validUntilBefore?: string, ): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/api/rest/areas/', query: { + 'area_type_area_level': areaTypeAreaLevel, + 'country_iso_code2': countryIsoCode2, + 'country_iso_code3': countryIsoCode3, 'limit': limit, 'offset': offset, + 'ordering': ordering, + 'parent_id': parentId, + 'parent_p_code': parentPCode, + 'search': search, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, + 'valid_from_after': validFromAfter, + 'valid_from_before': validFromBefore, + 'valid_until_after': validUntilAfter, + 'valid_until_before': validUntilBefore, }, }); } /** + * @param areaLevel + * @param countryIsoCode2 + * @param countryIsoCode3 * @param limit Number of results to return per page. * @param offset The initial index from which to return the results. + * @param ordering Which field to use when ordering the results. + * @param parentAreaLevel + * @param search A search term. + * @param updatedAtAfter + * @param updatedAtBefore * @returns PaginatedAreaTypeList * @throws ApiError */ public static restAreatypesList( + areaLevel?: number, + countryIsoCode2?: string, + countryIsoCode3?: string, limit?: number, offset?: number, + ordering?: string, + parentAreaLevel?: number, + search?: string, + updatedAtAfter?: string, + updatedAtBefore?: string, ): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/api/rest/areatypes/', + query: { + 'area_level': areaLevel, + 'country_iso_code2': countryIsoCode2, + 'country_iso_code3': countryIsoCode3, + 'limit': limit, + 'offset': offset, + 'ordering': ordering, + 'parent_area_level': parentAreaLevel, + 'search': search, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, + }, + }); + } + /** + * @param limit Number of results to return per page. + * @param offset The initial index from which to return the results. + * @returns PaginatedBeneficiaryGroupList + * @throws ApiError + */ + public static restBeneficiaryGroupsList( + limit?: number, + offset?: number, + ): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/beneficiary-groups/', query: { 'limit': limit, 'offset': offset, @@ -999,21 +1102,33 @@ export class RestService { }); } /** + * @param active * @param limit Number of results to return per page. * @param offset The initial index from which to return the results. + * @param ordering Which field to use when ordering the results. + * @param updatedAtAfter + * @param updatedAtBefore * @returns PaginatedBusinessAreaList * @throws ApiError */ public static restBusinessAreasList( + active?: boolean, limit?: number, offset?: number, + ordering?: string, + updatedAtAfter?: string, + updatedAtBefore?: string, ): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/api/rest/business_areas/', query: { + 'active': active, 'limit': limit, 'offset': offset, + 'ordering': ordering, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, }, }); } @@ -1028,23 +1143,82 @@ export class RestService { }); } /** + * Retrieve dashboard data for a given business area from Redis cache. + * If data is not cached or needs updating, refresh it. + * @param businessAreaSlug * @returns any No response body * @throws ApiError */ - public static restLookupsCountryRetrieve(): CancelablePromise { + public static restDashboardDataRetrieve( + businessAreaSlug: string, + ): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/api/rest/lookups/country/', + url: '/api/rest/dashboard/{business_area_slug}/data/', + path: { + 'business_area_slug': businessAreaSlug, + }, }); } /** + * API to trigger the creation or update of a DashReport for a given business area. + * Restricted to superusers and users with the required permissions. + * @param businessAreaSlug * @returns any No response body * @throws ApiError */ - public static restLookupsDatacollectingpolicyRetrieve(): CancelablePromise { + public static restDashboardGenerateCreate( + businessAreaSlug: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/api/rest/dashboard/generate/{business_area_slug}/', + path: { + 'business_area_slug': businessAreaSlug, + }, + }); + } + /** + * @param limit Number of results to return per page. + * @param offset The initial index from which to return the results. + * @param ordering Which field to use when ordering the results. + * @param search A search term. + * @param updatedAtAfter + * @param updatedAtBefore + * @param validFromAfter + * @param validFromBefore + * @param validUntilAfter + * @param validUntilBefore + * @returns PaginatedCountryList + * @throws ApiError + */ + public static restLookupsCountryList( + limit?: number, + offset?: number, + ordering?: string, + search?: string, + updatedAtAfter?: string, + updatedAtBefore?: string, + validFromAfter?: string, + validFromBefore?: string, + validUntilAfter?: string, + validUntilBefore?: string, + ): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/api/rest/lookups/datacollectingpolicy/', + url: '/api/rest/lookups/country/', + query: { + 'limit': limit, + 'offset': offset, + 'ordering': ordering, + 'search': search, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, + 'valid_from_after': validFromAfter, + 'valid_from_before': validFromBefore, + 'valid_until_after': validUntilAfter, + 'valid_until_before': validUntilBefore, + }, }); } /** @@ -1077,6 +1251,16 @@ export class RestService { url: '/api/rest/lookups/observeddisability/', }); } + /** + * @returns any No response body + * @throws ApiError + */ + public static restLookupsProgramStatusesRetrieve(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/lookups/program-statuses/', + }); + } /** * @returns any No response body * @throws ApiError @@ -1118,21 +1302,123 @@ export class RestService { }); } /** + * @returns any No response body + * @throws ApiError + */ + public static restProfileRetrieve(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/profile/', + }); + } + /** + * @param active + * @param businessArea * @param limit Number of results to return per page. * @param offset The initial index from which to return the results. + * @param ordering Which field to use when ordering the results. + * @param status * `ACTIVE` - Active + * * `DRAFT` - Draft + * * `FINISHED` - Finished + * @param updatedAtAfter + * @param updatedAtBefore * @returns PaginatedProgramGlobalList * @throws ApiError */ public static restProgramsList( + active?: boolean, + businessArea?: string, limit?: number, offset?: number, + ordering?: string, + status?: 'ACTIVE' | 'DRAFT' | 'FINISHED', + updatedAtAfter?: string, + updatedAtBefore?: string, ): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/api/rest/programs/', + query: { + 'active': active, + 'business_area': businessArea, + 'limit': limit, + 'offset': offset, + 'ordering': ordering, + 'status': status, + 'updated_at_after': updatedAtAfter, + 'updated_at_before': updatedAtBefore, + }, + }); + } + /** + * @param limit Number of results to return per page. + * @param offset The initial index from which to return the results. + * @returns PaginatedOrganizationList + * @throws ApiError + */ + public static restSystemsAuroraOfficesList( + limit?: number, + offset?: number, + ): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/systems/aurora/offices/', + query: { + 'limit': limit, + 'offset': offset, + }, + }); + } + /** + * @param limit Number of results to return per page. + * @param offset The initial index from which to return the results. + * @param orgPk + * @param orgSlug + * @returns PaginatedProjectList + * @throws ApiError + */ + public static restSystemsAuroraProjectsList( + limit?: number, + offset?: number, + orgPk?: string, + orgSlug?: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/systems/aurora/projects/', + query: { + 'limit': limit, + 'offset': offset, + 'org_pk': orgPk, + 'org_slug': orgSlug, + }, + }); + } + /** + * @param limit Number of results to return per page. + * @param offset The initial index from which to return the results. + * @param orgPk + * @param orgSlug + * @param programmePk + * @returns PaginatedRegistrationList + * @throws ApiError + */ + public static restSystemsAuroraRegistrationsList( + limit?: number, + offset?: number, + orgPk?: string, + orgSlug?: string, + programmePk?: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/api/rest/systems/aurora/registrations/', query: { 'limit': limit, 'offset': offset, + 'org_pk': orgPk, + 'org_slug': orgSlug, + 'programme_pk': programmePk, }, }); } diff --git a/src/frontend/src/shared/autocompletes/rest/BeneficiaryGroupsAutocompleteRest.tsx b/src/frontend/src/shared/autocompletes/rest/BeneficiaryGroupsAutocompleteRest.tsx index c3c267728e..d9f01f1d73 100644 --- a/src/frontend/src/shared/autocompletes/rest/BeneficiaryGroupsAutocompleteRest.tsx +++ b/src/frontend/src/shared/autocompletes/rest/BeneficiaryGroupsAutocompleteRest.tsx @@ -3,7 +3,7 @@ import { handleOptionSelected } from '@utils/utils'; import { ReactElement, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { BaseAutocompleteRest } from './BaseAutocompleteRest'; -import { fetchBeneficiaryGroups } from '@api/programsApi'; +import { RestService } from '@restgenerated/services/RestService'; export const BeneficiaryGroupAutocompleteRest = ({ value, @@ -38,7 +38,7 @@ export const BeneficiaryGroupAutocompleteRest = ({ value={value} label={t('Beneficiary Group')} dataCy="filters-beneficiary-group-autocomplete" - fetchFunction={fetchBeneficiaryGroups} + fetchFunction={() => RestService.restBeneficiaryGroupsList()} businessArea={businessArea} handleChange={(_, selectedValue) => { onChange(selectedValue); diff --git a/src/frontend/src/testUtils/testProviders.tsx b/src/frontend/src/testUtils/testProviders.tsx index 747c7a7bac..3b94c5355a 100644 --- a/src/frontend/src/testUtils/testProviders.tsx +++ b/src/frontend/src/testUtils/testProviders.tsx @@ -5,18 +5,25 @@ import { theme } from '../theme'; import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { ReactNode, FC } from 'react'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; interface TestProvidersProps { children: ReactNode; } -export const TestProviders: FC = ({ children }) => ( - - - - - {children} - - - -); +export const TestProviders: FC = ({ children }) => { + const queryClient = new QueryClient(); + + return ( + + + + + + {children} + + + + + ); +}; diff --git a/src/frontend/src/testUtils/testUtils.tsx b/src/frontend/src/testUtils/testUtils.tsx index 8ca482428a..f89a02d1e5 100644 --- a/src/frontend/src/testUtils/testUtils.tsx +++ b/src/frontend/src/testUtils/testUtils.tsx @@ -4,8 +4,6 @@ import { render, RenderOptions } from '@testing-library/react'; import { Formik } from 'formik'; import noop from 'lodash/noop'; import { TestProviders } from './testProviders'; -import { ProgramStatus } from '@generated/graphql'; -import { MockLink } from '@apollo/client/testing'; const customRender = ( ui: ReactElement, @@ -26,7 +24,7 @@ const customRender = ( ); export * from '@testing-library/react'; -export { customRender as render }; +export { customRender as renderWithProviders }; let m_w = 123456789; let m_z = 987654321; @@ -48,21 +46,11 @@ export const random = () => { return result; }; -export class ApolloLoadingLink extends MockLink { - constructor() { - super([]); - } - - request() { - return null; - } -} - export const fakeContextProgram = { selectedProgram: { id: '1', name: 'someName', - status: ProgramStatus.Active, + status: 'ACTIVE', pduFields: null, dataCollectingType: { id: '1', diff --git a/src/frontend/src/utils/utils.ts b/src/frontend/src/utils/utils.ts index e13e04b7ed..9eeb376295 100644 --- a/src/frontend/src/utils/utils.ts +++ b/src/frontend/src/utils/utils.ts @@ -56,6 +56,23 @@ export function opacityToHex(opacity: number): string { return Math.floor(opacity * 0xff).toString(16); } +export const isPartnerVisible = (partnerName: string): boolean => { + if (!partnerName) return false; + return ( + !partnerName.startsWith('UNICEF Partner for') && partnerName !== 'UNICEF HQ' + ); +}; + +export function mapPartnerChoicesWithoutUnicef(choices, selectedPartners) { + return choices + .filter((partner) => isPartnerVisible(partner.name)) + .map((partner) => ({ + value: partner.value, + label: partner.name, + disabled: selectedPartners.some((p) => p.id === partner.value), + })); +} + export function periodicDataUpdatesStatusToColor( theme: typeof themeObj, status: string, diff --git a/src/frontend/tsconfig.json b/src/frontend/tsconfig.json index c7ce3b0966..896cdaacde 100644 --- a/src/frontend/tsconfig.json +++ b/src/frontend/tsconfig.json @@ -15,7 +15,7 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx", + "jsx": "preserve", "strict": false, "noUnusedLocals": false, "noUnusedParameters": false, @@ -38,11 +38,17 @@ "src", "__tests__", "jest", - "vite.config.ts", "tsconfig.json", ".eslintrc.cjs", - "jest.config" + "jest.config", + "babel.config.cjs", + "vitest" + ], + "exclude": [ + "node_modules", + "frontend/jest", + "src/restgenerated", + "vite.config.ts" ], - "exclude": ["node_modules", "frontend/jest", "src/restgenerated"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts index 28cf0ceea8..b719e3e7ff 100644 --- a/src/frontend/vite.config.ts +++ b/src/frontend/vite.config.ts @@ -10,12 +10,13 @@ export default defineConfig({ resolve: { mainFields: [], }, - esbuild: { - loader: 'tsx', - include: /\.[jt]sx?$/, - exclude: /node_modules/, - jsxFactory: 'createElement', - jsxFragment: 'Fragment', + optimizeDeps: { + esbuildOptions: { + loader: { + '.ts': 'ts', // Pure TypeScript for .ts + '.tsx': 'tsx', // TypeScript with JSX for .tsx + }, + }, }, build: { outDir: 'build', @@ -34,4 +35,4 @@ export default defineConfig({ }, }, }, -}); \ No newline at end of file +}); diff --git a/src/frontend/vitest.config.ts b/src/frontend/vitest.config.ts new file mode 100644 index 0000000000..6aa225d2a3 --- /dev/null +++ b/src/frontend/vitest.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vitest/config'; +import { resolve } from 'path'; + +export default defineConfig({ + test: { + setupFiles: './vitest/setupTests.ts', + globals: true, + environment: 'jsdom', + }, + resolve: { + alias: { + '@components': resolve(__dirname, 'src/components'), + '@core': resolve(__dirname, 'src/components/core'), + '@containers': resolve(__dirname, 'src/containers'), + '@shared': resolve(__dirname, 'src/shared'), + '@utils': resolve(__dirname, 'src/utils'), + '@hooks': resolve(__dirname, 'src/hooks'), + '@generated': resolve(__dirname, 'src/__generated__'), + '@restgenerated': resolve(__dirname, 'src/restgenerated'), + src: resolve(__dirname, 'src'), + }, + }, +}); diff --git a/src/frontend/vitest/setupTests.ts b/src/frontend/vitest/setupTests.ts new file mode 100644 index 0000000000..c9806d1b22 --- /dev/null +++ b/src/frontend/vitest/setupTests.ts @@ -0,0 +1,49 @@ +import { random } from 'lodash'; +import React from 'react'; +import { setupServer } from 'msw/node'; +import setupInternalization from '../src/i18n'; +import * as useBusinessAreaModule from '../src/hooks/useBusinessArea'; +import * as useGlobalProgramModule from '../src/hooks/useGlobalProgram'; +import { handlers } from '../src/mocks/handlers'; +import { beforeAll, afterAll, afterEach, beforeEach, vi } from 'vitest'; + +global.React = React; +// Set up global mocks and configurations +global.Date.now = () => new Date('1970-01-01T00:00:00.000Z').getTime(); +process.env.TZ = 'UTC'; +setupInternalization(); + +beforeEach(() => { + vi.spyOn(global.Math, 'random').mockImplementation(random); + vi.spyOn(useBusinessAreaModule, 'useBusinessArea').mockReturnValue( + 'afghanistan', + ); + vi.spyOn(useGlobalProgramModule, 'useGlobalProgram').mockReturnValue( + 'UHJvZ3JhbU5vZGU6ZTRmOGMwNjctNjcwOC00NjZmLWFjYmMtZGE2OTkxZjE0MjY2', + ); +}); + +// Mock ResizeObserver for tests that rely on it +globalThis.ResizeObserver = class { + observe() {} + + unobserve() {} + + disconnect() {} +}; + +// Mock crypto.randomUUID if not available in Vitest environment +globalThis.crypto.randomUUID = () => 'd7a794d1-0ead-4424-9ff2-38d14db32b99'; + +// Mock Service Worker registration +const server = setupServer(...handlers); + +// Establish API mocking before all tests. +beforeAll(() => server.listen()); + +// Reset any request handlers that are declared as a part of our tests +// (i.e. for testing one-time error scenarios). +afterEach(() => server.resetHandlers()); + +// Clean up after the tests are finished. +afterAll(() => server.close()); diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 68446bfc94..0244f71352 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -25,9 +25,9 @@ js-yaml "^4.1.0" "@apollo/client@^3.0.0-beta.23", "@apollo/client@^3.12.8", "@apollo/client@latest": - version "3.12.11" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.12.11.tgz#250301155a86c59e2915637fd19c9a2c42f878a8" - integrity sha512-1RppV9U3E6Uusl/33yGkZa+rXpkGU5iCstcYltwWjdTjoA/YBD2Yyu0aHy8J4uKfIExUgnMW1HJWn4A0E0rRsw== + version "3.13.1" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.13.1.tgz#c0633c69c5446967b0e517a590595eeea61dd176" + integrity sha512-HaAt62h3jNUXpJ1v5HNgUiCzPP1c5zc2Q/FeTb2cTk/v09YlhoqKKHQFJI7St50VCJ5q8JVIc03I5bRcBrQxsg== dependencies: "@graphql-typed-document-node/core" "^3.1.1" "@wry/caches" "^1.0.0" @@ -58,13 +58,6 @@ dependencies: "@apollo/client" latest -"@apollo/react-testing@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@apollo/react-testing/-/react-testing-4.0.0.tgz#9fd1991584510c2ac051d986547ceccbc9c0a30a" - integrity sha512-P7Z/flUHpRRZYc3FkIqxZH9XD3FuP2Sgks1IXqGq2Zb7qI0aaTfVeRsLYmZNUcFOh2pTHxs0NXgPnH1VfYOpig== - dependencies: - "@apollo/client" latest - "@ardatan/relay-compiler@12.0.0": version "12.0.0" resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" @@ -115,7 +108,7 @@ "@csstools/css-tokenizer" "^3.0.3" lru-cache "^10.4.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.26.2": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.26.2": version "7.26.2" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== @@ -129,35 +122,34 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.17", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.22.9", "@babel/core@^7.23.9", "@babel/core@^7.26.0", "@babel/core@^7.26.7": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.8.tgz#7742f11c75acea6b08a8e24c5c0c8c89e89bf53e" - integrity sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ== +"@babel/core@^7.14.0", "@babel/core@^7.22.9", "@babel/core@^7.26.0", "@babel/core@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.9.tgz#71838542a4b1e49dfed353d7acbc6eb89f4a76f2" + integrity sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.8" + "@babel/generator" "^7.26.9" "@babel/helper-compilation-targets" "^7.26.5" "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.7" - "@babel/parser" "^7.26.8" - "@babel/template" "^7.26.8" - "@babel/traverse" "^7.26.8" - "@babel/types" "^7.26.8" - "@types/gensync" "^1.0.0" + "@babel/helpers" "^7.26.9" + "@babel/parser" "^7.26.9" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.9" + "@babel/types" "^7.26.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.26.8", "@babel/generator@^7.7.2": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.8.tgz#f9c5e770309e12e3099ad8271e52f6caa15442ab" - integrity sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.9.tgz#75a9482ad3d0cc7188a537aa4910bc59db67cbca" + integrity sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg== dependencies: - "@babel/parser" "^7.26.8" - "@babel/types" "^7.26.8" + "@babel/parser" "^7.26.9" + "@babel/types" "^7.26.9" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" @@ -181,16 +173,16 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" - integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz#d6f83e3039547fbb39967e78043cd3c8b7820c71" + integrity sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" "@babel/helper-member-expression-to-functions" "^7.25.9" "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-replace-supers" "^7.26.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/traverse" "^7.26.9" semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": @@ -245,7 +237,7 @@ dependencies: "@babel/types" "^7.25.9" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== @@ -259,7 +251,7 @@ "@babel/helper-wrap-function" "^7.25.9" "@babel/traverse" "^7.25.9" -"@babel/helper-replace-supers@^7.25.9": +"@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": version "7.26.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== @@ -300,20 +292,20 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/helpers@^7.26.7": - version "7.26.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.7.tgz#fd1d2a7c431b6e39290277aacfd8367857c576a4" - integrity sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A== +"@babel/helpers@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.9.tgz#28f3fb45252fc88ef2dc547c8a911c255fc9fef6" + integrity sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA== dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.7" + "@babel/template" "^7.26.9" + "@babel/types" "^7.26.9" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.8.tgz#deca2b4d99e5e1b1553843b99823f118da6107c2" - integrity sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.9.tgz#d9e78bee6dc80f9efd8f2349dcfbbcdace280fd5" + integrity sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A== dependencies: - "@babel/types" "^7.26.8" + "@babel/types" "^7.26.9" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" @@ -378,34 +370,13 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-class-properties@^7.0.0": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.26.0": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz#96507595c21b45fccfc2bc758d5c45452e6164fa" @@ -420,55 +391,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.26.0": +"@babel/plugin-syntax-import-attributes@^7.26.0": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.25.9", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" @@ -476,35 +412,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== @@ -653,12 +561,12 @@ "@babel/helper-plugin-utils" "^7.26.5" "@babel/plugin-syntax-flow" "^7.26.0" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" - integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" + integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.9": @@ -706,7 +614,7 @@ "@babel/helper-module-transforms" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.13", "@babel/plugin-transform-modules-commonjs@^7.26.3": +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.25.9", "@babel/plugin-transform-modules-commonjs@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== @@ -930,6 +838,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.26.5" +"@babel/plugin-transform-typescript@^7.25.9", "@babel/plugin-transform-typescript@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz#2e9caa870aa102f50d7125240d9dbf91334b0950" + integrity sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/plugin-syntax-typescript" "^7.25.9" + "@babel/plugin-transform-unicode-escapes@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" @@ -961,10 +880,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/preset-env@^7.23.9": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.8.tgz#7af0090829b606d2046db99679004731e1dc364d" - integrity sha512-um7Sy+2THd697S4zJEfv/U5MHGJzkN2xhtsR3T/SWRbVSic62nbISh51VVfU9JiO/L/Z97QczHTaFVkOU8IzNg== +"@babel/preset-env@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" + integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== dependencies: "@babel/compat-data" "^7.26.8" "@babel/helper-compilation-targets" "^7.26.5" @@ -995,7 +914,7 @@ "@babel/plugin-transform-dynamic-import" "^7.25.9" "@babel/plugin-transform-exponentiation-operator" "^7.26.3" "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.25.9" + "@babel/plugin-transform-for-of" "^7.26.9" "@babel/plugin-transform-function-name" "^7.25.9" "@babel/plugin-transform-json-strings" "^7.25.9" "@babel/plugin-transform-literals" "^7.25.9" @@ -1045,7 +964,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.23.3": +"@babel/preset-react@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== @@ -1057,39 +976,50 @@ "@babel/plugin-transform-react-jsx-development" "^7.25.9" "@babel/plugin-transform-react-pure-annotations" "^7.25.9" +"@babel/preset-typescript@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" + integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + "@babel/plugin-syntax-jsx" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.25.9" + "@babel/plugin-transform-typescript" "^7.25.9" + "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.25.0", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.26.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.26.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.7.tgz#f4e7fe527cd710f8dc0618610b61b4b060c3c341" - integrity sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ== + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433" + integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.25.9", "@babel/template@^7.26.8", "@babel/template@^7.3.3": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.8.tgz#db3898f47a17bab2f4c78ec1d0de38527c2ffe19" - integrity sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q== +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.25.9", "@babel/template@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2" + integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== dependencies: "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.26.8" - "@babel/types" "^7.26.8" + "@babel/parser" "^7.26.9" + "@babel/types" "^7.26.9" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.8.tgz#0a8a9c2b7cc9519eed14275f4fd2278ad46e8cc9" - integrity sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.9.tgz#4398f2394ba66d05d988b2ad13c219a2c857461a" + integrity sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg== dependencies: "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.8" - "@babel/parser" "^7.26.8" - "@babel/template" "^7.26.8" - "@babel/types" "^7.26.8" + "@babel/generator" "^7.26.9" + "@babel/parser" "^7.26.9" + "@babel/template" "^7.26.9" + "@babel/types" "^7.26.9" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.7", "@babel/types@^7.26.8", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.8.tgz#97dcdc190fab45be7f3dc073e3c11160d677c127" - integrity sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA== +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.9", "@babel/types@^7.4.4": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce" + integrity sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw== dependencies: "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" @@ -1106,18 +1036,27 @@ prop-types "^15.8.1" use-sync-external-store "^1.4.0" -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@bundled-es-modules/cookie@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507" + integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw== + dependencies: + cookie "^0.7.2" -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== +"@bundled-es-modules/statuses@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872" + integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" + statuses "^2.0.1" + +"@bundled-es-modules/tough-cookie@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz#fa9cd3cedfeecd6783e8b0d378b4a99e52bde5d3" + integrity sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw== + dependencies: + "@types/tough-cookie" "^4.0.5" + tough-cookie "^4.1.4" "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -1126,23 +1065,23 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@csstools/color-helpers@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.1.tgz#829f1c76f5800b79c51c709e2f36821b728e0e10" - integrity sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== +"@csstools/color-helpers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" + integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== -"@csstools/css-calc@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.1.tgz#a7dbc66627f5cf458d42aed14bda0d3860562383" - integrity sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag== +"@csstools/css-calc@^2.1.1", "@csstools/css-calc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.2.tgz#bffd55f002dab119b76d4023f95cd943e6c8c11e" + integrity sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw== "@csstools/css-color-parser@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz#442d61d58e54ad258d52c309a787fceb33906484" - integrity sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz#5fe9322920851450bf5e065c2b0e731b9e165394" + integrity sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ== dependencies: - "@csstools/color-helpers" "^5.0.1" - "@csstools/css-calc" "^2.1.1" + "@csstools/color-helpers" "^5.0.2" + "@csstools/css-calc" "^2.1.2" "@csstools/css-parser-algorithms@^3.0.4": version "3.0.4" @@ -1290,145 +1229,145 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== -"@envelop/core@^5.0.2": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.0.3.tgz#d359dd45853a4d3ab23e9d12187e544cde9ffa9b" - integrity sha512-SE3JxL7odst8igN6x77QWyPpXKXz/Hs5o5Y27r+9Br6WHIhkW90lYYVITWIJQ/qYgn5PkpbaVgeFY9rgqQaZ/A== +"@envelop/core@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.1.0.tgz#36ba35fd6663d291c81534ac4ec6ca120dc6eb8f" + integrity sha512-tH5bntVdGaV9ZKFI0a2U4bn6HgtkBscCPdvLqZRlXR2XRWKe+AAUjkYo4vQ4iZTAzBaKJlRe/hVWuad/vcftPw== dependencies: - "@envelop/types" "5.0.0" + "@envelop/types" "^5.1.0" tslib "^2.5.0" -"@envelop/types@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.0.0.tgz#3ae59b50ec31d4bdcc7bd0b47e9c8cf2ac44b0ff" - integrity sha512-IPjmgSc4KpQRlO4qbEDnBEixvtb06WDmjKfi/7fkZaryh5HuOmTtixe1EupQI5XfXO8joc3d27uUZ0QdC++euA== +"@envelop/types@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.1.0.tgz#bf495ab9bed499a33a3cbfea3e38f204990e41c9" + integrity sha512-E6axHyHK8RALJ7+GRVQ3wQ44rP9enVaRc5JiYHIkyfKWKPeHGmTz6Pe/kbtHC5fjuD2QwYCVcCfCoUlw3Xf4xw== dependencies: tslib "^2.5.0" -"@esbuild/aix-ppc64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" - integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== - -"@esbuild/android-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" - integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== - -"@esbuild/android-arm@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" - integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== - -"@esbuild/android-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" - integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== - -"@esbuild/darwin-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" - integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== - -"@esbuild/darwin-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" - integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== - -"@esbuild/freebsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" - integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== - -"@esbuild/freebsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" - integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== - -"@esbuild/linux-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" - integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== - -"@esbuild/linux-arm@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" - integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== - -"@esbuild/linux-ia32@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" - integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== - -"@esbuild/linux-loong64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" - integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== - -"@esbuild/linux-mips64el@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" - integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== - -"@esbuild/linux-ppc64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" - integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== - -"@esbuild/linux-riscv64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" - integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== - -"@esbuild/linux-s390x@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" - integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== - -"@esbuild/linux-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f" - integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q== - -"@esbuild/netbsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" - integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== - -"@esbuild/netbsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40" - integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw== - -"@esbuild/openbsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" - integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== - -"@esbuild/openbsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" - integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== - -"@esbuild/sunos-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" - integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== - -"@esbuild/win32-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" - integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== - -"@esbuild/win32-ia32@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" - integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== - -"@esbuild/win32-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b" - integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== +"@esbuild/aix-ppc64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" + integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== + +"@esbuild/android-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" + integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== + +"@esbuild/android-arm@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" + integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== + +"@esbuild/android-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" + integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== + +"@esbuild/darwin-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" + integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== + +"@esbuild/darwin-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" + integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== + +"@esbuild/freebsd-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" + integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== + +"@esbuild/freebsd-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" + integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== + +"@esbuild/linux-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" + integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== + +"@esbuild/linux-arm@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" + integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== + +"@esbuild/linux-ia32@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" + integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== + +"@esbuild/linux-loong64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" + integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== + +"@esbuild/linux-mips64el@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" + integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== + +"@esbuild/linux-ppc64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" + integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== + +"@esbuild/linux-riscv64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" + integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== + +"@esbuild/linux-s390x@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" + integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== + +"@esbuild/linux-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" + integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== + +"@esbuild/netbsd-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" + integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== + +"@esbuild/netbsd-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" + integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== + +"@esbuild/openbsd-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" + integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== + +"@esbuild/openbsd-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" + integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== + +"@esbuild/sunos-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" + integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== + +"@esbuild/win32-arm64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" + integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== + +"@esbuild/win32-ia32@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" + integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== + +"@esbuild/win32-x64@0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" + integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.1" @@ -1437,7 +1376,7 @@ dependencies: eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== @@ -1589,19 +1528,19 @@ yargs "^17.0.0" "@graphql-codegen/client-preset@^4.6.0": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-4.6.2.tgz#b3bb28af6c694185aafa2ae884fc2ab66edb7bee" - integrity sha512-C7BihcGMSZq95ppLGi2HI0zt4w+n2FDoXzrP1/SUS32zbJlvb3Vod/fHdHTWcFZzlAZFCue7MNU3DbiuRjGYQg== + version "4.6.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-4.6.4.tgz#3fbbb0fe69ba105bc116d7b6f4b099073956e534" + integrity sha512-xV9jovI3zpyJfXYm6gc9YBSmMQViRp5GF7EkLS0XOPwo8YO8P40fX363p/SVwG8tYKhGNcnUq+yCzBuwVPV7Fg== dependencies: "@babel/helper-plugin-utils" "^7.20.2" "@babel/template" "^7.20.7" "@graphql-codegen/add" "^5.0.3" - "@graphql-codegen/gql-tag-operations" "4.0.14" + "@graphql-codegen/gql-tag-operations" "4.0.16" "@graphql-codegen/plugin-helpers" "^5.1.0" - "@graphql-codegen/typed-document-node" "^5.0.13" - "@graphql-codegen/typescript" "^4.1.3" - "@graphql-codegen/typescript-operations" "^4.4.1" - "@graphql-codegen/visitor-plugin-common" "^5.6.1" + "@graphql-codegen/typed-document-node" "^5.0.15" + "@graphql-codegen/typescript" "^4.1.5" + "@graphql-codegen/typescript-operations" "^4.5.1" + "@graphql-codegen/visitor-plugin-common" "^5.7.1" "@graphql-tools/documents" "^1.0.0" "@graphql-tools/utils" "^10.0.0" "@graphql-typed-document-node/core" "3.2.0" @@ -1625,13 +1564,13 @@ "@graphql-codegen/plugin-helpers" "^5.0.3" tslib "~2.6.0" -"@graphql-codegen/gql-tag-operations@4.0.14": - version "4.0.14" - resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.14.tgz#c965f147c7159cedb45140ea2df22a64314a3866" - integrity sha512-/jyW6zbIt9xiLAmkLsLwJDegeFytg6n5yf79dEbkhOflclIM2t1YhEAXQxIuqgDgM/PQ34Zfu3wtgWSgUOReXg== +"@graphql-codegen/gql-tag-operations@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.16.tgz#3538df9898bf7d8990e343d923297b989876e76e" + integrity sha512-+R9OC2P0fS025VlCIKfjTR53cijMY3dPfbleuD4+wFaLY2rx0bYghU2YO5Y7AyqPNJLrw6p/R4ecnSkJ0odBDQ== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" - "@graphql-codegen/visitor-plugin-common" "5.6.1" + "@graphql-codegen/visitor-plugin-common" "5.7.1" "@graphql-tools/utils" "^10.0.0" auto-bind "~4.0.0" tslib "~2.6.0" @@ -1681,25 +1620,25 @@ "@graphql-tools/utils" "^10.0.0" tslib "~2.6.0" -"@graphql-codegen/typed-document-node@^5.0.13": - version "5.0.13" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.13.tgz#40adbfa8d03c93e8fa8216afaa1854d63024f772" - integrity sha512-/r23W1WF9PKymIET3SdCDfyuZ6tHeflvbZF3mL3cMp4849M1fe1J2eWefeqn2MMbKATstNqRVxtrq6peJ3A/Ew== +"@graphql-codegen/typed-document-node@^5.0.15": + version "5.0.15" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.15.tgz#7e86f04bd49612919328b94958ce9732d852a6de" + integrity sha512-zU6U/96NeZKdGdMb4OKQURIkBS4qOK28NwP1UB2cbCMcsrAm/IOt18ihaqu8USVdC5knuMjpZ63vPjsHDX77dw== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" - "@graphql-codegen/visitor-plugin-common" "5.6.1" + "@graphql-codegen/visitor-plugin-common" "5.7.1" auto-bind "~4.0.0" change-case-all "1.0.15" tslib "~2.6.0" -"@graphql-codegen/typescript-operations@^4.0.1", "@graphql-codegen/typescript-operations@^4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-4.4.1.tgz#a3d10ff2f0cc7c016493c035cc8f00fad38485b4" - integrity sha512-iqAdEe4wfxGPT9s/VD+EhehBzaTxvWdisbsqiM6dMfk+8FfjrOj8SDBsHzKwmkRcrpMK6h9gLr3XcuBPu0JoFg== +"@graphql-codegen/typescript-operations@^4.0.1", "@graphql-codegen/typescript-operations@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-4.5.1.tgz#59995370aa257daf517e3419265ed587522b44df" + integrity sha512-KL+sYPm7GWHwVvFPVaaWSOv9WF7PDxkmOX8DEBtzqTYez5xCWqtCz7LIrwzmtDd7XoJGkRpWlyrHdpuw5VakhA== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" - "@graphql-codegen/typescript" "^4.1.3" - "@graphql-codegen/visitor-plugin-common" "5.6.1" + "@graphql-codegen/typescript" "^4.1.5" + "@graphql-codegen/visitor-plugin-common" "5.7.1" auto-bind "~4.0.0" tslib "~2.6.0" @@ -1715,25 +1654,25 @@ tslib "~2.6.0" "@graphql-codegen/typescript-resolvers@^4.0.1": - version "4.4.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-4.4.2.tgz#b0886e33d0d6d2354d3a2b92af44f4bf228ead40" - integrity sha512-+/wzLYzUDKPKe5p3JYUXszSlLH46oD8w+8+U7c1ttJYItZV/duFE2D3TgF2aBkfYwFiYZ1thnEMI1Jm17vAR3w== + version "4.4.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-4.4.4.tgz#948037bc7bbd24a2ed469110d2732ef5d94d060e" + integrity sha512-MOngdWxBV1ZqVc7t9cVNU+XPnaA3bls2pWfmUrJDzYZqFN7gijlcOLFGftipWb/U30q7JrYkxGjbNz0ILXI8aw== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" - "@graphql-codegen/typescript" "^4.1.3" - "@graphql-codegen/visitor-plugin-common" "5.6.1" + "@graphql-codegen/typescript" "^4.1.5" + "@graphql-codegen/visitor-plugin-common" "5.7.1" "@graphql-tools/utils" "^10.0.0" auto-bind "~4.0.0" tslib "~2.6.0" -"@graphql-codegen/typescript@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-4.1.3.tgz#fc16ab6a1c439e1e4ce375aeba2b2335704f824e" - integrity sha512-/7qNPj+owhxBZB3Kv0FuUILZq9A6Gl5P5wiIZGAmw500n6Vc8ceOFLRXeVkyvDccxTGWS/vJv+sUnl94T2Pu+A== +"@graphql-codegen/typescript@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-4.1.5.tgz#ae0c33334feb647db5bfb0a97e7b0f996ddcdc1a" + integrity sha512-BmbXcS8hv75qDIp4LCFshFXXDq0PCd48n8WLZ5Qf4XCOmHYGSxMn49dp/eKeApMqXWYTkAZuNt8z90zsRSQeOg== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" "@graphql-codegen/schema-ast" "^4.0.2" - "@graphql-codegen/visitor-plugin-common" "5.6.1" + "@graphql-codegen/visitor-plugin-common" "5.7.1" auto-bind "~4.0.0" tslib "~2.6.0" @@ -1753,10 +1692,10 @@ parse-filepath "^1.0.2" tslib "~2.4.0" -"@graphql-codegen/visitor-plugin-common@5.6.1", "@graphql-codegen/visitor-plugin-common@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.6.1.tgz#492ed514530e43a38d875cdbc8b312a565ac8ce0" - integrity sha512-q+DkGWWS7pvSc1c4Hw1xD0RI+EplTe2PCyTCT0WuaswnodBytteKTqFOVVGadISLX0xhO25aANTFB4+TLwTBSA== +"@graphql-codegen/visitor-plugin-common@5.7.1", "@graphql-codegen/visitor-plugin-common@^5.7.1": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.7.1.tgz#45852ff994d6fba9aa24c84bea199663b159e8a9" + integrity sha512-jnBjDN7IghoPy1TLqIE1E4O0XcoRc7dJOHENkHvzGhu0SnvPL6ZgJxkQiADI4Vg2hj/4UiTGqo8q/GRoZz22lQ== dependencies: "@graphql-codegen/plugin-helpers" "^5.1.0" "@graphql-tools/optimize" "^2.0.0" @@ -1770,11 +1709,11 @@ tslib "~2.6.0" "@graphql-tools/apollo-engine-loader@^8.0.0": - version "8.0.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.15.tgz#9803eba1a16ac0d10d54dd610b9c98decbb57a41" - integrity sha512-4Y3gmTrC9nK8Zb19VSvPGecncUV7nFnRg9CpsdsSvjS2N98wmUhFwH9jCYQzLyDKgvlJV5PEHhAeVQPQgKGFeg== + version "8.0.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.16.tgz#0b3912460fbadab331317459006796624e947729" + integrity sha512-Ee/41PVC/N8foLs6k/kwI2LAvGCyELIHJAa9eSYRqIUZVaOrPZDGkTkSe2SBQvGo706sL8VCcXDD9OpmiO6e5Q== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" "@whatwg-node/fetch" "^0.10.0" sync-fetch "0.6.0-2" tslib "^2.4.0" @@ -1789,20 +1728,20 @@ tslib "^2.8.1" "@graphql-tools/code-file-loader@^8.0.0": - version "8.1.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-8.1.15.tgz#b7cdb1e0674f91218f11d46c644fa1b3877bb92d" - integrity sha512-XlrzWfuoBRfpx/5Uw8VBP5rmMJyQVv8HMd6k/7TxFT/cXU34rcQfmRk6f3J7gD5+3ueqgwPcmaIn3CRp+Z0r0w== + version "8.1.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-8.1.16.tgz#d6e7fe0471feaa39ac32d1ebc7a9c42b0d1c4798" + integrity sha512-cf5P9sDAUD1PG3a68WIWyZVuT/XTsA+kYw0/RzZO/KJUMNLns2TrbCwi2q5arMlpAfpMFgfOPrC4p7jy5IdU2A== dependencies: - "@graphql-tools/graphql-tag-pluck" "8.3.14" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/graphql-tag-pluck" "8.3.15" + "@graphql-tools/utils" "^10.8.2" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@^10.2.12": - version "10.2.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.2.12.tgz#cf7e300bf9dd32d8ddf8e7284819f6053c84c349" - integrity sha512-vyPjy7znb5wZd7OsKgK77dHJVt3RhSiq4sqdDL5d55jkIuekcJQdBoLlKN6hsakSGV31YneNGiiOPpw0kWRu3Q== +"@graphql-tools/delegate@^10.2.13": + version "10.2.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.2.13.tgz#7017f233c32ae62b9aa3fbd3af4e27c8075b6d27" + integrity sha512-FpxbNZ5OA3LYlU1CFMlHvNLyBgSKlDu/D1kffVbd4PhY82F6YnKKobAwwwA8ar8BhGOIf+XGw3+ybZa0hZs7WA== dependencies: "@graphql-tools/batch-execute" "^9.0.12" "@graphql-tools/executor" "^1.3.10" @@ -1821,20 +1760,20 @@ lodash.sortby "^4.7.0" tslib "^2.4.0" -"@graphql-tools/executor-common@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-common/-/executor-common-0.0.2.tgz#8991744048973d4f574cbfd434d084f80e9191c3" - integrity sha512-FD3QYYzypurGESKJ9vjKXmsmC3UuZEghHcADSGGW8NcZB66vNN557zdJ3+lwVSdYuIjiyXhyLVp1mn59w2eMQQ== +"@graphql-tools/executor-common@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-common/-/executor-common-0.0.3.tgz#f8a25a7d8f3f9cb21935817bc99f2bf84e6b870b" + integrity sha512-DKp6Ut4WXVB6FJIey2ajacQO1yTv4sbLtvTRxdytCunFFWFSF3NNtfGWoULE6pNBAVYUY4a981u+X0A70mK1ew== dependencies: - "@envelop/core" "^5.0.2" + "@envelop/core" "^5.1.0" "@graphql-tools/utils" "^10.8.1" "@graphql-tools/executor-graphql-ws@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-2.0.2.tgz#53483431208f8fb0fba866673dd2b6f733f2e79d" - integrity sha512-P5Z8K9h4H/eNMgMMZ9gQmRDYCb2yMERc+Eaag3EJ0ifeBXZS54uhAFB3All/YzY6zy0B8BUzjHb+w+/Zan6XOg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-2.0.3.tgz#894cafea1ad622932d6d27476f59c0a6b6320e5a" + integrity sha512-IIhENlCZ/5MdpoRSOM30z4hlBT4uOT1J2n6VI67/N1PI2zjxu7RWXlG2ZvmHl83XlVHu3yce5vE02RpS7Y+c4g== dependencies: - "@graphql-tools/executor-common" "^0.0.2" + "@graphql-tools/executor-common" "^0.0.3" "@graphql-tools/utils" "^10.8.1" "@whatwg-node/disposablestack" "^0.0.5" graphql-ws "^6.0.3" @@ -1843,37 +1782,37 @@ ws "^8.17.1" "@graphql-tools/executor-http@^1.1.9": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.2.7.tgz#8658f054abd850e2e5367c139f5569ff42933b76" - integrity sha512-2zPcin33Ea3GlU2p6enn2ByGh1+nfivbI2+TJLROUByjfseTH6IuAiBK0R7p0ajQevysYQw2Gh+749i4RFA3WA== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.2.8.tgz#e00784960224c7b5262775e5d4fd137a15eb25e7" + integrity sha512-hrlNqBm7M13HEVouNeJ8D9aPNMtoq8YlbiDdkQYq4LbNOTMpuFB13fRR9+6158l3VHKSHm9pRXDWFwfVZ3r1Xg== dependencies: - "@graphql-tools/executor-common" "^0.0.2" + "@graphql-tools/executor-common" "^0.0.3" "@graphql-tools/utils" "^10.8.1" "@repeaterjs/repeater" "^3.0.4" "@whatwg-node/disposablestack" "^0.0.5" - "@whatwg-node/fetch" "^0.10.1" + "@whatwg-node/fetch" "^0.10.4" extract-files "^11.0.0" meros "^1.2.1" tslib "^2.8.1" value-or-promise "^1.0.12" -"@graphql-tools/executor-legacy-ws@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.12.tgz#4f0e55e7825e6899010cace18d304b552f2f7706" - integrity sha512-thZTsx4rGbekMdJxpv0r4ettUsGRpkhSx1z86bn/WEAItn2GjPL/lR508OtP8o/BHFGrQOEIURhwtSpetdINGA== +"@graphql-tools/executor-legacy-ws@^1.1.13": + version "1.1.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.13.tgz#761ee5b6757277f402b6f18b15ca7a5b063007d2" + integrity sha512-WTLmc37QEzLef7Hes+HKeTBacuPmcrn+PiOpbwaexdoqei/+FvEM3TT02qWEzUMtlw+t9igqqO6y7DppdrnIAQ== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" "@types/ws" "^8.0.0" isomorphic-ws "^5.0.0" tslib "^2.4.0" ws "^8.17.1" "@graphql-tools/executor@^1.3.10": - version "1.3.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.3.14.tgz#0f6f776c4ba621b2f314b737593018c3db046fbe" - integrity sha512-tDk8bYIgbVmGNh7cYewi5/yNCq6UoVl9ugDU4rF//+E1R5TxkXNe9nu6AonE+j6XkA/z+FofVawOqCCiJhJ40g== + version "1.4.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.4.1.tgz#2f2450593224b3b04e10583fb4832cfecd532f11" + integrity sha512-OuO9I7OFs9HEiVN23twWCV+nXmrqoGWcOCCO/f1eatZSbsXZSEc5hsCK5MDmNGDY3gtRWN03s/C1m47x1UXTog== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" "@graphql-typed-document-node/core" "^3.2.0" "@repeaterjs/repeater" "^3.0.4" "@whatwg-node/disposablestack" "^0.0.5" @@ -1881,88 +1820,88 @@ value-or-promise "^1.0.12" "@graphql-tools/git-loader@^8.0.0": - version "8.0.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-8.0.19.tgz#c255df938604e9c0235631f8d17b92a88ba44386" - integrity sha512-jOJ4memazxOmPK+rebhQ99fShKibGr+WSkbsMdwWzU149fuQ7nSj4opNRkhYvDsB6ZYw3wriSlPzSlpaBTLMJQ== + version "8.0.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-8.0.20.tgz#0cb2fdfe819e08ff626dcc5dc7bad8c957913a75" + integrity sha512-2HMSHpfk2pU6j+QEuLOQlI+gSrZV6vO0FBZ1JVyoJ6n/UXmrNNdienM3GsmE+24FBc6QcDCMuwQs9h5qIDOuvg== dependencies: - "@graphql-tools/graphql-tag-pluck" "8.3.14" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/graphql-tag-pluck" "8.3.15" + "@graphql-tools/utils" "^10.8.2" is-glob "4.0.3" micromatch "^4.0.8" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/github-loader@^8.0.0": - version "8.0.15" - resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-8.0.15.tgz#f1a7b90f9528155d9f33fae615e2142e8d6a2e49" - integrity sha512-XPrkc8YotQybbyJ6kiCNlpyCIFzsmmhwnSoqMaZrgL5RRsKbRD4CR8KTmfvMGzZmvt+u4n/te4x1QSZPLnvLqA== + version "8.0.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-8.0.16.tgz#509fc450d8fbf65b39a16ca56cd55a2e9633d63f" + integrity sha512-tOo+LhuQp4q6w9859jNEpq8TqIYop4vzW8bAWcWKTgSrm0oDpfkPVsGwyKF3dTQ3QKTkZMVVAl/UvZ0f8FiqiQ== dependencies: "@graphql-tools/executor-http" "^1.1.9" - "@graphql-tools/graphql-tag-pluck" "^8.3.14" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/graphql-tag-pluck" "^8.3.15" + "@graphql-tools/utils" "^10.8.2" "@whatwg-node/fetch" "^0.10.0" sync-fetch "0.6.0-2" tslib "^2.4.0" "@graphql-tools/graphql-file-loader@^8.0.0": - version "8.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.14.tgz#17d1fc4a77d0fdefcf4fc19826b1ad8c352400ee" - integrity sha512-Mlcd8u1u6WMRgvvERKfFRL0txTLKtmbmq0x8DzIZ7BACrYCv2rwtV79J51LbFUNBO6cMzu8rzoxTneqYm6dRNg== + version "8.0.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.15.tgz#f64e6cb71bb6f07e89852fb7204fbaf69a39028f" + integrity sha512-oqPzLWZPOlbWkZMjrcr+b0T5uzcSE8rNFwzRKkoZajWSjqeERimS7OgRtgVHEXvf3hjeOww8lsAoxOpvRwH2Tg== dependencies: - "@graphql-tools/import" "7.0.13" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/import" "7.0.14" + "@graphql-tools/utils" "^10.8.2" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@8.3.14", "@graphql-tools/graphql-tag-pluck@^8.3.14": - version "8.3.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.14.tgz#d4928837a954bfbe23523c3e4df3c97043507d8d" - integrity sha512-dRo5f5/VwLI8bHRfgxl0q11fGFB/K+0/8Z8goPRQOT/Olik1RYnHVPhnK5BGSTLAMVpE3E7F+5jntkXLmuHuRA== +"@graphql-tools/graphql-tag-pluck@8.3.15", "@graphql-tools/graphql-tag-pluck@^8.3.15": + version "8.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.15.tgz#d7e07511217fbafd28072ec7bacd55fdc55a2c47" + integrity sha512-tEHbzeozEnbeFOtpzsjYcIR7vaJiEQNx2AlI2zWoFxspCWo7k0vdgPFfQxL+V6TMsvrwcLN51LsV3VWy7LPWug== dependencies: "@babel/core" "^7.22.9" "@babel/parser" "^7.16.8" "@babel/plugin-syntax-import-assertions" "^7.20.0" "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" tslib "^2.4.0" -"@graphql-tools/import@7.0.13": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-7.0.13.tgz#4d7820925921888c24e1981a06d991256c32a279" - integrity sha512-END2Bg0bvLnXDHi8WUbD7xrnf8komlIkKMOzSexFLeGpEYPlMsBOM6m0RW31Zk8zdN01gLPAyyT4tQXSIzCGIw== +"@graphql-tools/import@7.0.14": + version "7.0.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-7.0.14.tgz#997cfa426ca1a2645fd873375c5fe71d16b0008d" + integrity sha512-PStpbgng1XFtIG4UDVwLQwZNNzClhyqG+v52ogAT7/X3l2l2MQVg0km3GjcYUSE6mWpuL+/78Uu3Ib0JxvXaVA== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" resolve-from "5.0.0" tslib "^2.4.0" "@graphql-tools/json-file-loader@^8.0.0": - version "8.0.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-8.0.13.tgz#10d6cfca4b34be625e71b53a0178c9f37dee18af" - integrity sha512-T8s05fcWvwkB9iM77RQ8WBGylkzZQ+aFzYZabg51jXvusiXWLCN3BSKPsEvSPpb3Y7JJBAK4e+Hu7UmZxqolkA== + version "8.0.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-8.0.14.tgz#52fac6cbe38c5544c85bce9917b964b535892d23" + integrity sha512-b8rmNdr5l2IXPDxAGT3kNIg3fM0HEZsmKwFcfoOTzfz7XZECN+mnQBkxbZ7hwCPjVDnhtVR20z2Ic1dQ44mACw== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/load@^8.0.0": - version "8.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.14.tgz#087341d33684f8024a9a3f51b0d024df441e94ac" - integrity sha512-ECdc/hoSs455B6ksO25mEK/FWDPQqWXQ5aMUgjqaApiPasipOfdsZEINHc8ikm/T+hF++/h6+9PDJNsIideWuQ== + version "8.0.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.15.tgz#cb6fe25660103b30012f52d271e2d58da8ba1741" + integrity sha512-VLSJKmSg3yxpGF2OUCpXkLXZuR5T5whjGXs6ZEhwewDlB0VsdzKOMZ+xElnHCiEQAzNqjXpRXI1iEraaYL0Q0w== dependencies: - "@graphql-tools/schema" "^10.0.18" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/schema" "^10.0.19" + "@graphql-tools/utils" "^10.8.2" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.19": - version "9.0.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.19.tgz#a8c1634c707b61138767a9ec6eaee24d2255ad98" - integrity sha512-iJP3Xke+vgnST58A1Q/1+y3bzfbYalIMnegUNupYHNvHHSE0PXoq8YieqQF8JYzWVACMxiq/M4Y1vW75mS2UVg== +"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.20": + version "9.0.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.20.tgz#c99824b6bc3af141d92507bdcd09b604b3dcbcd7" + integrity sha512-bJ+rudkkhYaiWzRV3vCyu6CD6bJsrBV1e+L4MOor7p5wSBQBAs8IAW05IktQq1RH1KPvyZ62z77P0/VsapnSKA== dependencies: - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" tslib "^2.4.0" "@graphql-tools/optimize@^1.3.0": @@ -2011,32 +1950,32 @@ tslib "^2.4.0" "@graphql-tools/relay-operation-optimizer@^7.0.0": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.14.tgz#1b504a0526ce7c32c1b2019ecdc81d213615e931" - integrity sha512-sHrWbqwXxiYq10stPuFEGjDTz/BQbf+ujfW3xcm5hpkSJp3LjwdFFmFaQU42w3xYWLszbp7lR29dYnhCWpegJA== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.15.tgz#ab4ca0e7cd179ad1265e411a7ad02a2d9c7a94d9" + integrity sha512-4epkPTWbXBH7OrA3wvjcWtqHirBAkgga3rLt0ehUzhN9dbAEpD53DtkN0P+WIofSIJtAiN46217PdB+O27EuSg== dependencies: "@ardatan/relay-compiler" "^12.0.1" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/utils" "^10.8.2" tslib "^2.4.0" -"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.11", "@graphql-tools/schema@^10.0.18": - version "10.0.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.18.tgz#1bbf0d94ec5e1f45be430f53f27cea8764da8a9c" - integrity sha512-6j2O/07v1zbGvASizMSO7YZdGt/9HfPDx8s9n75sD2xoGfeJ2aRSmI4LkyuvqOpi0ecaa9xErnMEEvUaKBqMbw== +"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.11", "@graphql-tools/schema@^10.0.19": + version "10.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.19.tgz#480078db9c1ee708b0bae2b25780dec5e4e8314d" + integrity sha512-8osBrTWG9c0ya7sse2fpKlDqi0EAto8Qq9A/PlSZ5J5SY0EE1W9lUcTIVaHc79cOKdh++z4ZHoukzZXrxC8UIg== dependencies: - "@graphql-tools/merge" "^9.0.19" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/merge" "^9.0.20" + "@graphql-tools/utils" "^10.8.2" tslib "^2.4.0" "@graphql-tools/url-loader@^8.0.0", "@graphql-tools/url-loader@^8.0.15": - version "8.0.26" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.26.tgz#0e37ab1e4bc5e05c4fe0528180d384894a162af0" - integrity sha512-oX8WWpiHHhLvxYUoo0QVN0Jjn2x2Tx9EvfccH+r7Mmgr4QpDU+t5Kpzr7qCRt9kO1SNW1ns1MeiXVWXPjoT6MQ== + version "8.0.27" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.27.tgz#e0228b41910131f325a18d7d2112519fe15f8eb1" + integrity sha512-SWf1x+pw7/eNbSwRWVwrJedGaTpCPnQIucBMEYjKbMOpYV61f3ei4UKCnhgczQEuYM5+bTVRmC1C44V1oJXzbQ== dependencies: "@graphql-tools/executor-graphql-ws" "^2.0.1" "@graphql-tools/executor-http" "^1.1.9" - "@graphql-tools/executor-legacy-ws" "^1.1.12" - "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/executor-legacy-ws" "^1.1.13" + "@graphql-tools/utils" "^10.8.2" "@graphql-tools/wrap" "^10.0.16" "@types/ws" "^8.0.0" "@whatwg-node/fetch" "^0.10.0" @@ -2045,10 +1984,10 @@ tslib "^2.4.0" ws "^8.17.1" -"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.5.6", "@graphql-tools/utils@^10.8.1": - version "10.8.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.8.1.tgz#701e35d3214ce5e7d95c38b745e9e9720014e96b" - integrity sha512-fI5NNuqeEAHyp7NuCDjvxWR5PTUXM4AqY9BoC59ZcX4nePAJje27ZsFHbAMS6EKDosY1K/D4ADxsO0P5+FH07A== +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.5.6", "@graphql-tools/utils@^10.8.1", "@graphql-tools/utils@^10.8.2": + version "10.8.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.8.2.tgz#8f1238f2efba0861ce192220c7258beeeb927172" + integrity sha512-JjWpf9Dj2LXFccAB7CON6jUcXduJlE5XcJfLmKTWBk46Ei2dhDntVAmvIa97YPdLanrgFN5SRt3hSAe3qo/FYg== dependencies: "@graphql-typed-document-node/core" "^3.1.1" cross-inspect "1.0.1" @@ -2071,11 +2010,11 @@ tslib "^2.4.0" "@graphql-tools/wrap@^10.0.16": - version "10.0.30" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.30.tgz#da57a5f9cbe322c296c8d765bc2e5d31be643344" - integrity sha512-zzG7ol4DdbRtvEe2QdPkDucRT99gfvQtPnMqUEOIEjwfHWTbjGFCh/E4nynOSpEc2MiR0xaZIPAaIptAho/uoQ== + version "10.0.31" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.31.tgz#2cc33a0596808228cf681f96aed9fe04a6f58207" + integrity sha512-W4sPLcvc4ZAPLpHifZQJQabL6WoXyzUWMh4n/NwI8mXAJrU4JAKKbJqONS8WC31i0gN+VCkBaSwssgbtbUz1Qw== dependencies: - "@graphql-tools/delegate" "^10.2.12" + "@graphql-tools/delegate" "^10.2.13" "@graphql-tools/schema" "^10.0.11" "@graphql-tools/utils" "^10.8.1" tslib "^2.8.1" @@ -2104,6 +2043,38 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@inquirer/confirm@^5.0.0": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.6.tgz#e5a959676716860c26560b33997b38bd65bf96ad" + integrity sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw== + dependencies: + "@inquirer/core" "^10.1.7" + "@inquirer/type" "^3.0.4" + +"@inquirer/core@^10.1.7": + version "10.1.7" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.7.tgz#04260b59e0343e86f76da0a4e1fbe4975aca03ca" + integrity sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA== + dependencies: + "@inquirer/figures" "^1.0.10" + "@inquirer/type" "^3.0.4" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + mute-stream "^2.0.0" + signal-exit "^4.1.0" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.10.tgz#e3676a51c9c51aaabcd6ba18a28e82b98417db37" + integrity sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw== + +"@inquirer/type@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.4.tgz#fa5f9e91a0abf3c9e93d3e1990ecb891d8195cf2" + integrity sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA== + "@internationalized/date@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.7.0.tgz#23a4956308ee108e308517a7137c69ab8f5f2ad9" @@ -2133,258 +2104,6 @@ dependencies: "@swc/helpers" "^0.5.0" -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jridgewell/gen-mapping@^0.3.5": version "0.3.8" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" @@ -2404,7 +2123,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== @@ -2417,7 +2136,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -2435,25 +2154,37 @@ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.4.tgz#4d4ff677e1609214fc71c580125ddddd86abcabf" integrity sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w== -"@mui/core-downloads-tracker@^6.4.4": - version "6.4.4" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.4.tgz#7ea43a1185e9cb1dbec77b9fc543b3d8a338d1f0" - integrity sha512-r+J0EditrekkTtO2CnCBCOGpNaDYwJqz8lH4rj6o/anDcskZFJodBlG8aCJkS8DL/CF/9EHS+Gz53EbmYEnQbw== +"@mswjs/interceptors@^0.37.0": + version "0.37.6" + resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.37.6.tgz#2635319b7a81934e1ef1b5593ef7910347e2b761" + integrity sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w== + dependencies: + "@open-draft/deferred-promise" "^2.2.0" + "@open-draft/logger" "^0.3.0" + "@open-draft/until" "^2.0.0" + is-node-process "^1.2.0" + outvariant "^1.4.3" + strict-event-emitter "^0.5.1" + +"@mui/core-downloads-tracker@^6.4.5": + version "6.4.5" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.5.tgz#7d3ed23ed3d8e5febb968dd9c5fe5dda80a20766" + integrity sha512-zoXvHU1YuoodgMlPS+epP084Pqv9V+Vg+5IGv9n/7IIFVQ2nkTngYHYxElCq8pdTTbDcgji+nNh0lxri2abWgA== "@mui/icons-material@^6.4.2": - version "6.4.4" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.4.4.tgz#cbc2c9e9c9bbb66f4062085dc69c0b886cd7f888" - integrity sha512-uF1chGaoFmYdRUomK6f8kgJfWosk9A3HXWiVD0vQm+2mE7f25eTQ1E8RRO11LXpnUBqu8Rbv/uGlpnjT/u1Ksg== + version "6.4.5" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.4.5.tgz#30f5397b559de28e52d37095d6a7f231fe9f6861" + integrity sha512-4A//t8Nrc+4u4pbVhGarIFU98zpuB5AV9hTNzgXx1ySZJ1tWtx+i/1SbQ8PtGJxWeXlljhwimZJNPQ3x0CiIFw== dependencies: "@babel/runtime" "^7.26.0" "@mui/material@^6.4.2": - version "6.4.4" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.4.4.tgz#fd2879cae5f3ed8a13b6257dbc051e0bbeefa8ee" - integrity sha512-ISVPrIsPQsxnwvS40C4u03AuNSPigFeS2+n1qpuEZ94hDsdMi19dQM2JcC9CHEhXecSIQjP1RTyY0mPiSpSrFQ== + version "6.4.5" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.4.5.tgz#83bdcaf2ffee22f873c036c13012932f823d8e5c" + integrity sha512-5eyEgSXocIeV1JkXs8mYyJXU0aFyXZIWI5kq2g/mCnIgJe594lkOBNAKnCIaGVfQTu2T6TTEHF8/hHIqpiIRGA== dependencies: "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.4.4" + "@mui/core-downloads-tracker" "^6.4.5" "@mui/system" "^6.4.3" "@mui/types" "^7.2.21" "@mui/utils" "^6.4.3" @@ -2529,9 +2260,9 @@ react-is "^19.0.0" "@mui/x-date-pickers@^7.25.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.26.0.tgz#f6d928db771a81d2e53e79ec7ff5b134b60a908b" - integrity sha512-bhSDce1b5MBYYlCdHQJBThe10LGTE3D/u53TDQ41+IRj+iiNCun8jivw3DxKhmoBxlB+hVdkcltpTtIGlPjQZQ== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.27.0.tgz#d5c90d76d9aeb2bbc9a0d5088927e9db42d41751" + integrity sha512-wSx8JGk4WQ2hTObfQITc+zlmUKNleQYoH1hGocaQlpWpo1HhauDtcQfX6sDN0J0dPT2eeyxDWGj4uJmiSfQKcw== dependencies: "@babel/runtime" "^7.25.7" "@mui/utils" "^5.16.6 || ^6.0.0" @@ -2588,6 +2319,24 @@ resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== +"@open-draft/deferred-promise@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" + integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== + +"@open-draft/logger@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954" + integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== + dependencies: + is-node-process "^1.2.0" + outvariant "^1.4.0" + +"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda" + integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== + "@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" @@ -2718,100 +2467,100 @@ resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.6.tgz#be23df0143ceec3c69f8b6c2517971a5578fdaa2" integrity sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA== -"@rollup/rollup-android-arm-eabi@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.7.tgz#e554185b1afa5509a7a4040d15ec0c3b4435ded1" - integrity sha512-l6CtzHYo8D2TQ3J7qJNpp3Q1Iye56ssIAtqbM2H8axxCEEwvN7o8Ze9PuIapbxFL3OHrJU2JBX6FIIVnP/rYyw== - -"@rollup/rollup-android-arm64@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.7.tgz#b1ee64bb413b2feba39803b0a1bebf2a9f3d70e1" - integrity sha512-KvyJpFUueUnSp53zhAa293QBYqwm94TgYTIfXyOTtidhm5V0LbLCJQRGkQClYiX3FXDQGSvPxOTD/6rPStMMDg== - -"@rollup/rollup-darwin-arm64@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.7.tgz#bfdce3e07a345dd1bd628f3b796050f39629d7f0" - integrity sha512-jq87CjmgL9YIKvs8ybtIC98s/M3HdbqXhllcy9EdLV0yMg1DpxES2gr65nNy7ObNo/vZ/MrOTxt0bE5LinL6mA== - -"@rollup/rollup-darwin-x64@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.7.tgz#781a94a537c57bdf0a500e47a25ab5985e5e8dff" - integrity sha512-rSI/m8OxBjsdnMMg0WEetu/w+LhLAcCDEiL66lmMX4R3oaml3eXz3Dxfvrxs1FbzPbJMaItQiksyMfv1hoIxnA== - -"@rollup/rollup-freebsd-arm64@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.7.tgz#7a028357cbd12c5869c446ad18177c89f3405102" - integrity sha512-oIoJRy3ZrdsXpFuWDtzsOOa/E/RbRWXVokpVrNnkS7npz8GEG++E1gYbzhYxhxHbO2om1T26BZjVmdIoyN2WtA== - -"@rollup/rollup-freebsd-x64@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.7.tgz#f24836a6371cccc4408db74f0fd986dacf098950" - integrity sha512-X++QSLm4NZfZ3VXGVwyHdRf58IBbCu9ammgJxuWZYLX0du6kZvdNqPwrjvDfwmi6wFdvfZ/s6K7ia0E5kI7m8Q== - -"@rollup/rollup-linux-arm-gnueabihf@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.7.tgz#95f27e96f0eb9b9ae9887739a8b6dffc90c1237f" - integrity sha512-Z0TzhrsNqukTz3ISzrvyshQpFnFRfLunYiXxlCRvcrb3nvC5rVKI+ZXPFG/Aa4jhQa1gHgH3A0exHaRRN4VmdQ== - -"@rollup/rollup-linux-arm-musleabihf@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.7.tgz#677b34fba9d070877736c3fe8b02aacb5e142d97" - integrity sha512-nkznpyXekFAbvFBKBy4nNppSgneB1wwG1yx/hujN3wRnhnkrYVugMTCBXED4+Ni6thoWfQuHNYbFjgGH0MBXtw== - -"@rollup/rollup-linux-arm64-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.7.tgz#32d3d19dedde54e91574a098f22ea43a09cf63dd" - integrity sha512-KCjlUkcKs6PjOcxolqrXglBDcfCuUCTVlX5BgzgoJHw+1rWH1MCkETLkLe5iLLS9dP5gKC7mp3y6x8c1oGBUtA== - -"@rollup/rollup-linux-arm64-musl@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.7.tgz#a58dff44a18696df65ed8c0ad68a2945cf900484" - integrity sha512-uFLJFz6+utmpbR313TTx+NpPuAXbPz4BhTQzgaP0tozlLnGnQ6rCo6tLwaSa6b7l6gRErjLicXQ1iPiXzYotjw== - -"@rollup/rollup-linux-loongarch64-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.7.tgz#a7488ab078233111e8aeb370d1ecf107ec7e1716" - integrity sha512-ws8pc68UcJJqCpneDFepnwlsMUFoWvPbWXT/XUrJ7rWUL9vLoIN3GAasgG+nCvq8xrE3pIrd+qLX/jotcLy0Qw== - -"@rollup/rollup-linux-powerpc64le-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.7.tgz#e9b9c0d6bd248a92b2d6ec01ebf99c62ae1f2e9a" - integrity sha512-vrDk9JDa/BFkxcS2PbWpr0C/LiiSLxFbNOBgfbW6P8TBe9PPHx9Wqbvx2xgNi1TOAyQHQJ7RZFqBiEohm79r0w== - -"@rollup/rollup-linux-riscv64-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.7.tgz#0df84ce2bea48ee686fb55060d76ab47aff45c4c" - integrity sha512-rB+ejFyjtmSo+g/a4eovDD1lHWHVqizN8P0Hm0RElkINpS0XOdpaXloqM4FBkF9ZWEzg6bezymbpLmeMldfLTw== - -"@rollup/rollup-linux-s390x-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.7.tgz#73df374c57d036856e33dbd2715138922e91e452" - integrity sha512-nNXNjo4As6dNqRn7OrsnHzwTgtypfRA3u3AKr0B3sOOo+HkedIbn8ZtFnB+4XyKJojIfqDKmbIzO1QydQ8c+Pw== - -"@rollup/rollup-linux-x64-gnu@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.7.tgz#f27af0b55f0cdd84e182e6cd44a6d03da0458149" - integrity sha512-9kPVf9ahnpOMSGlCxXGv980wXD0zRR3wyk8+33/MXQIpQEOpaNe7dEHm5LMfyRZRNt9lMEQuH0jUKj15MkM7QA== - -"@rollup/rollup-linux-x64-musl@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.7.tgz#c7981ad5cfb8c3cd5d643d33ca54e4d2802b9201" - integrity sha512-7wJPXRWTTPtTFDFezA8sle/1sdgxDjuMoRXEKtx97ViRxGGkVQYovem+Q8Pr/2HxiHp74SSRG+o6R0Yq0shPwQ== - -"@rollup/rollup-win32-arm64-msvc@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.7.tgz#06cedc0ef3cbf1cbd8abcf587090712e40ae6941" - integrity sha512-MN7aaBC7mAjsiMEZcsJvwNsQVNZShgES/9SzWp1HC9Yjqb5OpexYnRjF7RmE4itbeesHMYYQiAtUAQaSKs2Rfw== - -"@rollup/rollup-win32-ia32-msvc@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.7.tgz#90b39b977b14961a769be6ea61238e7fc668dd4d" - integrity sha512-aeawEKYswsFu1LhDM9RIgToobquzdtSc4jSVqHV8uApz4FVvhFl/mKh92wc8WpFc6aYCothV/03UjY6y7yLgbg== - -"@rollup/rollup-win32-x64-msvc@4.34.7": - version "4.34.7" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.7.tgz#6531d61e7141091eaab0461ee8e0380c10e4ca57" - integrity sha512-4ZedScpxxIrVO7otcZ8kCX1mZArtH2Wfj3uFCxRJ9NO80gg1XV0U/b2f/MKaGwj2X3QopHfoWiDQ917FRpwY3w== +"@rollup/rollup-android-arm-eabi@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz#731df27dfdb77189547bcef96ada7bf166bbb2fb" + integrity sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw== + +"@rollup/rollup-android-arm64@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz#4bea6db78e1f6927405df7fe0faf2f5095e01343" + integrity sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q== + +"@rollup/rollup-darwin-arm64@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz#a7aab77d44be3c44a20f946e10160f84e5450e7f" + integrity sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q== + +"@rollup/rollup-darwin-x64@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz#c572c024b57ee8ddd1b0851703ace9eb6cc0dd82" + integrity sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw== + +"@rollup/rollup-freebsd-arm64@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz#cf74f8113b5a83098a5c026c165742277cbfb88b" + integrity sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA== + +"@rollup/rollup-freebsd-x64@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz#39561f3a2f201a4ad6a01425b1ff5928154ecd7c" + integrity sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q== + +"@rollup/rollup-linux-arm-gnueabihf@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz#980d6061e373bfdaeb67925c46d2f8f9b3de537f" + integrity sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g== + +"@rollup/rollup-linux-arm-musleabihf@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz#f91a90f30dc00d5a64ac2d9bbedc829cd3cfaa78" + integrity sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA== + +"@rollup/rollup-linux-arm64-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz#fac700fa5c38bc13a0d5d34463133093da4c92a0" + integrity sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A== + +"@rollup/rollup-linux-arm64-musl@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz#f50ecccf8c78841ff6df1706bc4782d7f62bf9c3" + integrity sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q== + +"@rollup/rollup-linux-loongarch64-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz#5869dc0b28242da6553e2b52af41374f4038cd6e" + integrity sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz#5cdd9f851ce1bea33d6844a69f9574de335f20b1" + integrity sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw== + +"@rollup/rollup-linux-riscv64-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz#ef5dc37f4388f5253f0def43e1440ec012af204d" + integrity sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw== + +"@rollup/rollup-linux-s390x-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz#7dbc3ccbcbcfb3e65be74538dfb6e8dd16178fde" + integrity sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA== + +"@rollup/rollup-linux-x64-gnu@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz#5783fc0adcab7dc069692056e8ca8d83709855ce" + integrity sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA== + +"@rollup/rollup-linux-x64-musl@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz#00b6c29b298197a384e3c659910b47943003a678" + integrity sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ== + +"@rollup/rollup-win32-arm64-msvc@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz#cbfee01f1fe73791c35191a05397838520ca3cdd" + integrity sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ== + +"@rollup/rollup-win32-ia32-msvc@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz#95cdbdff48fe6c948abcf6a1d500b2bd5ce33f62" + integrity sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w== + +"@rollup/rollup-win32-x64-msvc@4.34.8": + version "4.34.8" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz#4cdb2cfae69cdb7b1a3cc58778e820408075e928" + integrity sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -2873,25 +2622,6 @@ "@sentry/core" "8.55.0" hoist-non-react-statics "^3.3.2" -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@swc/helpers@^0.5.0": version "0.5.15" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7" @@ -2906,10 +2636,10 @@ dependencies: "@typescript-eslint/utils" "^8.18.1" -"@tanstack/query-core@5.66.0": - version "5.66.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.66.0.tgz#163f670b3b4e3b3cdbff6698ad44b2edfcaed185" - integrity sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw== +"@tanstack/query-core@5.66.4": + version "5.66.4" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.66.4.tgz#44b87bff289466adbfa0de8daa5756cbd2d61c61" + integrity sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA== "@tanstack/query-devtools@5.65.0": version "5.65.0" @@ -2917,18 +2647,18 @@ integrity sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg== "@tanstack/react-query-devtools@^5.28.8": - version "5.66.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.66.0.tgz#d54ba345cecf259181565699af1f80e0b284e714" - integrity sha512-uB57wA2YZaQ2fPcFW0E9O1zAGDGSbRKRx84uMk/86VyU9jWVxvJ3Uzp+zNm+nZJYsuekCIo2opTdgNuvM3cKgA== + version "5.66.9" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.66.9.tgz#5cb69b874682289e5014bcf9b6460a2d35df129f" + integrity sha512-70G6AR35he53SYUcUK6EdqNR18zejCv1rM6900gjZP408EAex56YLwVSeijzk9lWeU2J42G9Fjh0i1WngUTsgw== dependencies: "@tanstack/query-devtools" "5.65.0" "@tanstack/react-query@^5.28.8": - version "5.66.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.66.0.tgz#9f7aa1b3e844ea6a0ad2ee61fccaed76e614b865" - integrity sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw== + version "5.66.9" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.66.9.tgz#1c8be303adae59e9cee877490fbb2c23dfa26927" + integrity sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A== dependencies: - "@tanstack/query-core" "5.66.0" + "@tanstack/query-core" "5.66.4" "@testing-library/dom@^10.4.0": version "10.4.0" @@ -2944,7 +2674,7 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.4.1": +"@testing-library/jest-dom@^6.6.3": version "6.6.3" resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz#26ba906cf928c0f8172e182c6fe214eb4f9f2bd2" integrity sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA== @@ -2964,16 +2694,6 @@ dependencies: "@babel/runtime" "^7.12.5" -"@testing-library/user-event@^14.5.2": - version "14.6.1" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.6.1.tgz#13e09a32d7a8b7060fe38304788ebf4197cd2149" - integrity sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw== - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - "@tsconfig/node10@^1.0.7": version "1.0.11" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" @@ -2999,7 +2719,7 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7", "@types/babel__core@^7.20.5": +"@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -3025,7 +2745,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*": version "7.20.6" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== @@ -3039,23 +2759,16 @@ dependencies: clipboard "*" -"@types/estree@1.0.6": +"@types/cookie@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" + integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== + +"@types/estree@1.0.6", "@types/estree@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/gensync@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/gensync/-/gensync-1.0.4.tgz#7122d8f0cd3bf437f9725cc95b180197190cf50b" - integrity sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA== - -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - "@types/hoist-non-react-statics@^3.3.1", "@types/hoist-non-react-statics@^3.3.6": version "3.3.6" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz#6bba74383cdab98e8db4e20ce5b4a6b98caed010" @@ -3064,33 +2777,6 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.12": - version "29.5.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" - integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - "@types/js-cookie@^2.2.6": version "2.2.7" resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" @@ -3101,16 +2787,7 @@ resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.15": +"@types/json-schema@^7.0.15": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -3126,9 +2803,9 @@ integrity sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw== "@types/node@*", "@types/node@^22.13.1": - version "22.13.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.2.tgz#6f401c5ccadac75354f5652128e9fcc3b0cf23b7" - integrity sha512-Z+r8y3XL9ZpI2EY52YYygAFmo2/oWfNSj4BCpAXE2McAexDk8VcnBMGC9Djn9gTKt4d2T/hhXqmPzo4hfIXtTg== + version "22.13.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.5.tgz#23add1d71acddab2c6a4d31db89c0f98d330b511" + integrity sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg== dependencies: undici-types "~6.20.0" @@ -3142,39 +2819,34 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2" integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== -"@types/react-dom@^19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.3.tgz#0804dfd279a165d5a0ad8b53a5b9e65f338050a4" - integrity sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA== +"@types/react-dom@^19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.4.tgz#bedba97f9346bd4c0fe5d39e689713804ec9ac89" + integrity sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg== "@types/react-transition-group@^4.4.11", "@types/react-transition-group@^4.4.12": version "4.4.12" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== -"@types/react@*", "@types/react@^19.0.8": - version "19.0.8" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.8.tgz#7098e6159f2a61e4f4cef2c1223c044a9bec590e" - integrity sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw== +"@types/react@*", "@types/react@^19.0.10": + version "19.0.10" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.10.tgz#d0c66dafd862474190fe95ce11a68de69ed2b0eb" + integrity sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g== dependencies: csstype "^3.0.2" -"@types/semver@^7.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== +"@types/statuses@^2.0.4": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.5.tgz#f61ab46d5352fd73c863a1ea4e1cef3b0b51ae63" + integrity sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A== "@types/stylis@4.2.5": version "4.2.5" resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df" integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw== -"@types/tough-cookie@*": +"@types/tough-cookie@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== @@ -3186,110 +2858,89 @@ dependencies: "@types/node" "*" -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^15.0.0": - version "15.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" - integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== +"@typescript-eslint/eslint-plugin@^7.0.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@6.x": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@6.x": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^7.0.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== + dependencies: + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/scope-manager@8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz#2e34b3eb2ce768f2ffb109474174ced5417002b1" - integrity sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw== +"@typescript-eslint/scope-manager@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz#ac3805077aade898e98ca824294c998545597df3" + integrity sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg== dependencies: - "@typescript-eslint/types" "8.24.0" - "@typescript-eslint/visitor-keys" "8.24.0" + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/types@8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.24.0.tgz#694e7fb18d70506c317b816de9521300b0f72c8e" - integrity sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw== +"@typescript-eslint/types@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.25.0.tgz#f91512c2f532b1d6a8826cadd0b0e5cd53cf97e0" + integrity sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz#0487349be174097bb329a58273100a9629e03c6c" - integrity sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ== +"@typescript-eslint/typescript-estree@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz#d8409c63abddd4cf5b93c031b24b9edc1c7c1299" + integrity sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q== dependencies: - "@typescript-eslint/types" "8.24.0" - "@typescript-eslint/visitor-keys" "8.24.0" + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -3297,43 +2948,40 @@ semver "^7.6.0" ts-api-utils "^2.0.1" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" - -"@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/utils@^8.18.1": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.24.0.tgz#21cb1195ae79230af825bfeed59574f5cb70a749" - integrity sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ== + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + +"@typescript-eslint/utils@^8.18.1": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.25.0.tgz#3ea2f9196a915ef4daa2c8eafd44adbd7d56d08a" + integrity sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.24.0" - "@typescript-eslint/types" "8.24.0" - "@typescript-eslint/typescript-estree" "8.24.0" + "@typescript-eslint/scope-manager" "8.25.0" + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/typescript-estree" "8.25.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" -"@typescript-eslint/visitor-keys@8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz#36ecf0b9b1d819ad88a3bd4157ab7d594cb797c9" - integrity sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg== +"@typescript-eslint/visitor-keys@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz#e8646324cd1793f96e02669cb717a05319403164" + integrity sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ== dependencies: - "@typescript-eslint/types" "8.24.0" + "@typescript-eslint/types" "8.25.0" eslint-visitor-keys "^4.2.0" "@ungap/structured-clone@^1.2.0": @@ -3352,6 +3000,65 @@ "@types/babel__core" "^7.20.5" react-refresh "^0.14.2" +"@vitest/expect@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.0.7.tgz#3490936bc1e97fc21d53441518d51cb7116c698a" + integrity sha512-QP25f+YJhzPfHrHfYHtvRn+uvkCFCqFtW9CktfBxmB+25QqWsx7VB2As6f4GmwllHLDhXNHvqedwhvMmSnNmjw== + dependencies: + "@vitest/spy" "3.0.7" + "@vitest/utils" "3.0.7" + chai "^5.2.0" + tinyrainbow "^2.0.0" + +"@vitest/mocker@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.0.7.tgz#49a99e300bcb64dc514a43a92325fce51cd88099" + integrity sha512-qui+3BLz9Eonx4EAuR/i+QlCX6AUZ35taDQgwGkK/Tw6/WgwodSrjN1X2xf69IA/643ZX5zNKIn2svvtZDrs4w== + dependencies: + "@vitest/spy" "3.0.7" + estree-walker "^3.0.3" + magic-string "^0.30.17" + +"@vitest/pretty-format@3.0.7", "@vitest/pretty-format@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.0.7.tgz#1780516ebb4e40dd89e60b9fc7ffcbd9cba0fc22" + integrity sha512-CiRY0BViD/V8uwuEzz9Yapyao+M9M008/9oMOSQydwbwb+CMokEq3XVaF3XK/VWaOK0Jm9z7ENhybg70Gtxsmg== + dependencies: + tinyrainbow "^2.0.0" + +"@vitest/runner@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.0.7.tgz#65b64ba5f3291fdca4670bf9e50627200ea33b7b" + integrity sha512-WeEl38Z0S2ZcuRTeyYqaZtm4e26tq6ZFqh5y8YD9YxfWuu0OFiGFUbnxNynwLjNRHPsXyee2M9tV7YxOTPZl2g== + dependencies: + "@vitest/utils" "3.0.7" + pathe "^2.0.3" + +"@vitest/snapshot@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.0.7.tgz#df34e3c5820bdd54bba8919291a182df5c6b8c6f" + integrity sha512-eqTUryJWQN0Rtf5yqCGTQWsCFOQe4eNz5Twsu21xYEcnFJtMU5XvmG0vgebhdLlrHQTSq5p8vWHJIeJQV8ovsA== + dependencies: + "@vitest/pretty-format" "3.0.7" + magic-string "^0.30.17" + pathe "^2.0.3" + +"@vitest/spy@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.0.7.tgz#6fcc100c23fb50b5e2d1d09a333245586364f67b" + integrity sha512-4T4WcsibB0B6hrKdAZTM37ekuyFZt2cGbEGd2+L0P8ov15J1/HUsUaqkXEQPNAWr4BtPPe1gI+FYfMHhEKfR8w== + dependencies: + tinyspy "^3.0.2" + +"@vitest/utils@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.0.7.tgz#56268acac1027ead938150eceb2527c61d2fa204" + integrity sha512-xePVpCRfooFX3rANQjwoditoXgWb1MaFbzmGuPP59MK6i13mrnDw/yEIyJudLeW6/38mCNcwCiJIGmpDPibAIg== + dependencies: + "@vitest/pretty-format" "3.0.7" + loupe "^3.1.3" + tinyrainbow "^2.0.0" + "@whatwg-node/disposablestack@^0.0.5": version "0.0.5" resolved "https://registry.yarnpkg.com/@whatwg-node/disposablestack/-/disposablestack-0.0.5.tgz#cd646b1ef60a36972e018ab21f412a3539c6deec" @@ -3359,18 +3066,18 @@ dependencies: tslib "^2.6.3" -"@whatwg-node/fetch@^0.10.0", "@whatwg-node/fetch@^0.10.1": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.10.3.tgz#b19883b8a1568c5ae09abd550589ec597e685f4b" - integrity sha512-jCTL/qYcIW2GihbBRHypQ/Us7saWMNZ5fsumsta+qPY0Pmi1ccba/KRQvgctmQsbP69FWemJSs8zVcFaNwdL0w== +"@whatwg-node/fetch@^0.10.0", "@whatwg-node/fetch@^0.10.4": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.10.5.tgz#8537e50d32bac0f2e9cecff206588ca41d836df5" + integrity sha512-+yFJU3hmXPAHJULwx0VzCIsvr/H0lvbPvbOH3areOH3NAuCxCwaJsQ8w6/MwwMcvEWIynSsmAxoyaH04KeosPg== dependencies: - "@whatwg-node/node-fetch" "^0.7.7" + "@whatwg-node/node-fetch" "^0.7.11" urlpattern-polyfill "^10.0.0" -"@whatwg-node/node-fetch@^0.7.7": - version "0.7.9" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.7.9.tgz#101f358df7692f9659be201b3e3291e3944684ca" - integrity sha512-rp4/lzxK5DDxFFdXcCR3gG4OyWPHqmN1GrKostx2NEy7sHUQA/B3j0M2z+qfMQVg5SC4RRm0eFwD73e+GgAM3A== +"@whatwg-node/node-fetch@^0.7.11": + version "0.7.11" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.7.11.tgz#e77cd697287cc53f7c906b91dd9359560546d8f7" + integrity sha512-UQXJyaFxThqE/br5aiey+pJgRSq+YHH01cHs7rCJ7HQcuuCMpMhrLmCvT1sTJeDQmMljQGESs1P6vmEEptPR5w== dependencies: "@whatwg-node/disposablestack" "^0.0.5" busboy "^1.6.0" @@ -3409,43 +3116,23 @@ resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.0.2, acorn-walk@^8.1.1: +acorn-walk@^8.1.1: version "8.3.4" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" @@ -3469,28 +3156,18 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" -ansi-escapes@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" - integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -3503,27 +3180,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - apollo-cache-persist@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/apollo-cache-persist/-/apollo-cache-persist-0.1.1.tgz#e6cfe1983b998982a679aaf05241d3ed395edb1e" @@ -3546,13 +3202,6 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3688,6 +3337,11 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3708,11 +3362,6 @@ async-function@^1.0.0: resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== -async@^3.2.3: - version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3750,64 +3399,6 @@ axobject-query@^4.1.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-macros@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" @@ -3846,27 +3437,6 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-preset-current-node-syntax@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" - integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - babel-preset-fbjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" @@ -3900,22 +3470,6 @@ babel-preset-fbjs@^3.4.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -3970,7 +3524,7 @@ braces@3.0.3, braces@^3.0.3: dependencies: fill-range "^7.1.1" -braces@^2.3.0, braces@^2.3.1: +braces@^2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -3996,13 +3550,6 @@ browserslist@^4.24.0, browserslist@^4.24.3: node-releases "^2.0.19" update-browserslist-db "^1.1.1" -bs-logger@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -4010,11 +3557,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -4030,6 +3572,11 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -4045,7 +3592,7 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== @@ -4084,12 +3631,12 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -4105,9 +3652,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001688: - version "1.0.30001699" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz#a102cf330d153bf8c92bfb5be3cd44c0a89c8c12" - integrity sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w== + version "1.0.30001700" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz#26cd429cf09b4fd4e745daf4916039c794d720f6" + integrity sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ== capital-case@^1.0.4: version "1.0.4" @@ -4118,12 +3665,16 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== +chai@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.2.0.tgz#1358ee106763624114addf84ab02697e411c9c05" + integrity sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw== dependencies: - rsvp "^4.8.4" + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" chalk@^3.0.0: version "3.0.0" @@ -4133,7 +3684,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4141,11 +3692,6 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" - integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== - change-case-all@1.0.14: version "1.0.14" resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" @@ -4196,25 +3742,15 @@ change-case@^4.1.2: snake-case "^3.0.4" tslib "^2.0.3" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -char-regex@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.2.tgz#81385bb071af4df774bff8721d0ca15ef29ea0bb" - integrity sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg== - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chart.js@^4.4.7: - version "4.4.7" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.7.tgz#7a01ee0b4dac3c03f2ab0589af888db296d896fa" - integrity sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw== +chart.js@^4.4.8: + version "4.4.8" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.8.tgz#54645b638e9d585099bc16b892947b5e6cd2a552" + integrity sha512-IkGZlVpXP+83QpMm4uxEiGqSI7jFizwVtF3+n5Pc3k7sMO+tkd0qxh2OzLhenM0K80xtmAONWGBn082EiBQSDA== dependencies: "@kurkle/color" "^0.3.0" @@ -4228,20 +3764,10 @@ chartjs-plugin-datalabels@^2.2.0: resolved "https://registry.yarnpkg.com/chartjs-plugin-datalabels/-/chartjs-plugin-datalabels-2.2.0.tgz#369578e131d743c2e34b5fbe2d3f9335f6639b8f" integrity sha512-14ZU30lH7n89oq+A4bWaJPnAG8a7ZTk7dKf48YAzMvJjQtjrgg5Dpk9f+LbjCF6bpx3RAGTeL13IXpKQYyRvlw== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cjs-module-lexer@^1.0.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" - integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== class-utils@^0.3.5: version "0.3.6" @@ -4283,6 +3809,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + clipboard@*, clipboard@^2.0.0: version "2.0.11" resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" @@ -4320,16 +3851,6 @@ clsx@^2.0.0, clsx@^2.1.0, clsx@^2.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -4345,7 +3866,7 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.1.4, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -4396,7 +3917,7 @@ constant-case@^3.0.4: tslib "^2.0.3" upper-case "^2.0.2" -convert-source-map@^1.4.0, convert-source-map@^1.5.0: +convert-source-map@^1.5.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -4406,6 +3927,11 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +cookie@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -4446,19 +3972,6 @@ cosmiconfig@^8.1.0, cosmiconfig@^8.1.3: parse-json "^5.2.0" path-type "^4.0.0" -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -4478,18 +3991,7 @@ cross-inspect@1.0.1: dependencies: tslib "^2.4.0" -cross-spawn@^6.0.0: - version "6.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" - integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -4532,28 +4034,6 @@ css.escape@^1.5.1: resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== -cssfontparser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" - integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - cssstyle@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.2.1.tgz#5142782410fea95db66fb68147714a652a7c2381" @@ -4577,15 +4057,6 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - data-urls@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" @@ -4636,7 +4107,7 @@ debounce@^1.2.0: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== @@ -4662,7 +4133,7 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@10, decimal.js@^10.4.2, decimal.js@^10.4.3: +decimal.js@10, decimal.js@^10.4.3: version "10.5.0" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== @@ -4672,10 +4143,10 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -dedent@^1.0.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" - integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-is@^0.1.3: version "0.1.4" @@ -4687,11 +4158,6 @@ deepmerge@^2.1.1: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -4764,16 +4230,6 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4818,13 +4274,6 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -4852,27 +4301,10 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ejs@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - electron-to-chromium@^1.5.73: - version "1.5.98" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.98.tgz#bdd59c95042fa8f6483893602b1530c8752baebc" - integrity sha512-bI/LbtRBxU2GzK7KK5xxFd2y9Lf9XguHooPYbcXWy6wUoT8NMnffsvRhPmSeUHLSDKAEtKuTaEtK4Ms15zkIEA== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + version "1.5.104" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.104.tgz#e92a1ec54f279d8fc60eb7e8cf6add9631631f38" + integrity sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g== emoji-regex@^8.0.0: version "8.0.0" @@ -4884,13 +4316,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - enhanced-resolve@^5.15.0: version "5.18.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" @@ -5007,7 +4432,12 @@ es-iterator-helpers@^1.2.1: iterator.prototype "^1.1.4" safe-array-concat "^1.1.3" -es-object-atoms@^1.0.0: +es-module-lexer@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== @@ -5040,45 +4470,36 @@ es-to-primitive@^1.3.0: is-date-object "^1.0.5" is-symbol "^1.0.4" -esbuild-jest@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/esbuild-jest/-/esbuild-jest-0.5.0.tgz#7a9964bfdecafca3b675a8aeb08193bcdba8b9d7" - integrity sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ== - dependencies: - "@babel/core" "^7.12.17" - "@babel/plugin-transform-modules-commonjs" "^7.12.13" - babel-jest "^26.6.3" - -esbuild@0.24.2, esbuild@^0.24.2: - version "0.24.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d" - integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== +esbuild@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" + integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== optionalDependencies: - "@esbuild/aix-ppc64" "0.24.2" - "@esbuild/android-arm" "0.24.2" - "@esbuild/android-arm64" "0.24.2" - "@esbuild/android-x64" "0.24.2" - "@esbuild/darwin-arm64" "0.24.2" - "@esbuild/darwin-x64" "0.24.2" - "@esbuild/freebsd-arm64" "0.24.2" - "@esbuild/freebsd-x64" "0.24.2" - "@esbuild/linux-arm" "0.24.2" - "@esbuild/linux-arm64" "0.24.2" - "@esbuild/linux-ia32" "0.24.2" - "@esbuild/linux-loong64" "0.24.2" - "@esbuild/linux-mips64el" "0.24.2" - "@esbuild/linux-ppc64" "0.24.2" - "@esbuild/linux-riscv64" "0.24.2" - "@esbuild/linux-s390x" "0.24.2" - "@esbuild/linux-x64" "0.24.2" - "@esbuild/netbsd-arm64" "0.24.2" - "@esbuild/netbsd-x64" "0.24.2" - "@esbuild/openbsd-arm64" "0.24.2" - "@esbuild/openbsd-x64" "0.24.2" - "@esbuild/sunos-x64" "0.24.2" - "@esbuild/win32-arm64" "0.24.2" - "@esbuild/win32-ia32" "0.24.2" - "@esbuild/win32-x64" "0.24.2" + "@esbuild/aix-ppc64" "0.25.0" + "@esbuild/android-arm" "0.25.0" + "@esbuild/android-arm64" "0.25.0" + "@esbuild/android-x64" "0.25.0" + "@esbuild/darwin-arm64" "0.25.0" + "@esbuild/darwin-x64" "0.25.0" + "@esbuild/freebsd-arm64" "0.25.0" + "@esbuild/freebsd-x64" "0.25.0" + "@esbuild/linux-arm" "0.25.0" + "@esbuild/linux-arm64" "0.25.0" + "@esbuild/linux-ia32" "0.25.0" + "@esbuild/linux-loong64" "0.25.0" + "@esbuild/linux-mips64el" "0.25.0" + "@esbuild/linux-ppc64" "0.25.0" + "@esbuild/linux-riscv64" "0.25.0" + "@esbuild/linux-s390x" "0.25.0" + "@esbuild/linux-x64" "0.25.0" + "@esbuild/netbsd-arm64" "0.25.0" + "@esbuild/netbsd-x64" "0.25.0" + "@esbuild/openbsd-arm64" "0.25.0" + "@esbuild/openbsd-x64" "0.25.0" + "@esbuild/sunos-x64" "0.25.0" + "@esbuild/win32-arm64" "0.25.0" + "@esbuild/win32-ia32" "0.25.0" + "@esbuild/win32-x64" "0.25.0" escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" @@ -5090,27 +4511,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - eslint-config-airbnb-base@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" @@ -5121,14 +4526,14 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-airbnb-typescript@^18.0.0: +eslint-config-airbnb-typescript@18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz#b1646db4134858d704b1d2bee47e1d72c180315f" integrity sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg== dependencies: eslint-config-airbnb-base "^15.0.0" -eslint-config-airbnb@^19.0.4: +eslint-config-airbnb@19.0.4: version "19.0.4" resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== @@ -5152,18 +4557,17 @@ eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-import-resolver-typescript@^3.6.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz#e69925936a771a9cb2de418ccebc4cdf6c0818aa" - integrity sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow== + version "3.8.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.8.3.tgz#1721a1e4417e57a8fe6bf9463d0db8e220285eef" + integrity sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ== dependencies: "@nolyfill/is-core-module" "1.0.39" debug "^4.3.7" enhanced-resolve "^5.15.0" - fast-glob "^3.3.2" - get-tsconfig "^4.7.5" + get-tsconfig "^4.10.0" is-bun-module "^1.0.2" - is-glob "^4.0.3" stable-hash "^0.0.4" + tinyglobby "^0.2.12" eslint-module-utils@^2.12.0: version "2.12.0" @@ -5197,13 +4601,6 @@ eslint-plugin-import@^2.31.0: string.prototype.trimend "^1.0.8" tsconfig-paths "^3.15.0" -eslint-plugin-jest@^28.11.0: - version "28.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz#2641ecb4411941bbddb3d7cf8a8ff1163fbb510e" - integrity sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig== - dependencies: - "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" - eslint-plugin-jsx-a11y@^6.8.0: version "6.10.2" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" @@ -5225,10 +4622,10 @@ eslint-plugin-jsx-a11y@^6.8.0: safe-regex-test "^1.0.3" string.prototype.includes "^2.0.1" -eslint-plugin-react-hooks@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz#3d34e37d5770866c34b87d5b499f5f0b53bf0854" - integrity sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw== +eslint-plugin-react-hooks@^4.3.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== eslint-plugin-react@^7.37.4: version "7.37.4" @@ -5325,11 +4722,6 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esquery@^1.4.2: version "1.6.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" @@ -5349,49 +4741,18 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -5405,16 +4766,10 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" +expect-type@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.1.0.tgz#a146e414250d13dfc49eafcfd1344a4060fa4c75" + integrity sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA== extend-shallow@^2.0.1: version "2.0.1" @@ -5440,7 +4795,7 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^2.0.2, extglob@^2.0.4: +extglob@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== @@ -5466,6 +4821,11 @@ extract-files@^13.0.0: dependencies: is-plain-obj "^4.1.0" +faker@^6.6.6: + version "6.6.6" + resolved "https://registry.yarnpkg.com/faker/-/faker-6.6.6.tgz#e9529da0109dca4c7c5dbfeaadbd9234af943033" + integrity sha512-9tCqYEDHI5RYFQigXFwF1hnCwcWCOJl/hmll0lr5D2Ljjb0o4wphb69wikeJDz5qCEzXCoPvG6ss5SDP6IfOdg== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5482,7 +4842,7 @@ fast-glob@^3.2.9, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.8" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -5534,6 +4894,11 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^1.0.35" +fdir@^6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" + integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -5563,13 +4928,6 @@ file-selector@^2.1.0: dependencies: tslib "^2.7.0" -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -5592,7 +4950,7 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -5618,9 +4976,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" - integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== for-each@^0.3.3: version "0.3.5" @@ -5634,21 +4992,14 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^4.0.0, form-data@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" - integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== +form-data@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" mime-types "^2.1.12" formdata-polyfill@^4.0.10: @@ -5693,7 +5044,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -5731,26 +5082,21 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" - integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: - call-bind-apply-helpers "^1.0.1" + call-bind-apply-helpers "^1.0.2" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - get-proto "^1.0.0" + get-proto "^1.0.1" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" math-intrinsics "^1.1.0" -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-proto@^1.0.0, get-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" @@ -5759,18 +5105,6 @@ get-proto@^1.0.0, get-proto@^1.0.1: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" @@ -5780,7 +5114,7 @@ get-symbol-description@^1.1.0: es-errors "^1.3.0" get-intrinsic "^1.2.6" -get-tsconfig@^4.7.5: +get-tsconfig@^4.10.0: version "4.10.0" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb" integrity sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A== @@ -5806,19 +5140,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.1.tgz#1c3aef9a59d680e611b53dcd24bb8639cef064d9" - integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== - dependencies: - foreground-child "^3.1.0" - jackspeak "^4.0.1" - minimatch "^10.0.0" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^2.0.0" - -glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -5830,6 +5152,16 @@ glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^9.0.0: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -5884,7 +5216,7 @@ gopd@^1.0.1, gopd@^1.2.0: resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -5927,9 +5259,9 @@ graphql-tag@^2.11.0, graphql-tag@^2.12.6: tslib "^2.1.0" graphql-ws@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-6.0.3.tgz#8f20ee60f900650411be476f507bda5ff9b0844e" - integrity sha512-mvLRHihMg0llF74vo16063HufZHMGaiMxAjzyj0ARYueIikGzj1khlbPNl7vUc2h9rxbq9pGpQYbqypgq1fAXA== + version "6.0.4" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-6.0.4.tgz#f0376170965f9535576b2d3e897db38b463a31f0" + integrity sha512-8b4OZtNOvv8+NZva8HXamrc0y1jluYC0+13gdh7198FKjVzXyTvVc95DCwGzaKEfn3YuWZxUqjJlHe3qKM/F2g== graphql@^16.8.1: version "16.10.0" @@ -6030,6 +5362,11 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" +headers-polyfill@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07" + integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ== + helmet@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/helmet/-/helmet-8.0.0.tgz#05370fb1953aa7b81bd0ddfa459221247be6ea5c" @@ -6042,13 +5379,6 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react- dependencies: react-is "^16.7.0" -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - html-encoding-sniffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" @@ -6056,11 +5386,6 @@ html-encoding-sniffer@^4.0.0: dependencies: whatwg-encoding "^3.1.1" -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - html-parse-stringify@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" @@ -6068,15 +5393,6 @@ html-parse-stringify@^3.0.1: dependencies: void-elements "3.1.0" -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" @@ -6085,14 +5401,6 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.2: agent-base "^7.1.0" debug "^4.3.4" -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" @@ -6101,11 +5409,6 @@ https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.6: agent-base "^7.1.2" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - hyphenate-style-name@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" @@ -6137,7 +5440,7 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -6165,14 +5468,6 @@ import-from@4.0.0: resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -6327,13 +5622,6 @@ is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" @@ -6410,11 +5698,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-generator-function@^1.0.10: version "1.1.0" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" @@ -6449,6 +5732,11 @@ is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-node-process@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" + integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== + is-number-object@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" @@ -6520,16 +5808,6 @@ is-shared-array-buffer@^1.0.4: dependencies: call-bound "^1.0.3" -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-string@^1.0.7, is-string@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" @@ -6554,11 +5832,6 @@ is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: dependencies: which-typed-array "^1.1.16" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" @@ -6635,59 +5908,6 @@ isomorphic-ws@^5.0.0: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - iterator.prototype@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" @@ -6698,472 +5918,7 @@ iterator.prototype@^1.1.4: get-intrinsic "^1.2.6" get-proto "^1.0.0" has-symbols "^1.1.0" - set-function-name "^2.0.2" - -jackspeak@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.3.tgz#8a21082b8c019e7a0a8187ad8b736609bc85ab18" - integrity sha512-oSwM7q8PTHQWuZAlp995iPpPJ4Vkl7qT0ZRD+9duL9j2oBy6KcTfyxc8mEuHJYC+z/kbps80aJLkaNzTOrf/kw== - dependencies: - "@isaacs/cliui" "^8.0.2" - -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jest-canvas-mock@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" - integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== - dependencies: - cssfontparser "^1.2.1" - moo-color "^1.0.2" - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-jsdom@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-regex-util@^29.0.0, jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watch-typeahead@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-2.2.2.tgz#5516d3cd006485caa5cfc9bd1de40f1f8b136abf" - integrity sha512-+QgOFW4o5Xlgd6jGS5X37i08tuuXNW8X0CV9WNFi+3n8ExCIP+E1melYhvYLjv5fE6D0yyzk74vsSO8I6GqtvQ== - dependencies: - ansi-escapes "^6.0.0" - chalk "^5.2.0" - jest-regex-util "^29.0.0" - jest-watcher "^29.0.0" - slash "^5.0.0" - string-length "^5.0.1" - strip-ansi "^7.0.1" - -jest-watcher@^29.0.0, jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" + set-function-name "^2.0.2" jiti@^1.17.1: version "1.21.7" @@ -7176,9 +5931,9 @@ jiti@^2.0.0: integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A== jose@^5.0.0: - version "5.9.6" - resolved "https://registry.yarnpkg.com/jose/-/jose-5.9.6.tgz#77f1f901d88ebdc405e57cce08d2a91f47521883" - integrity sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/jose/-/jose-5.10.0.tgz#c37346a099d6467c401351a9a0c2161e0f52c4be" + integrity sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg== js-cookie@^2.2.1: version "2.2.1" @@ -7190,14 +5945,6 @@ js-cookie@^2.2.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -7205,38 +5952,6 @@ js-yaml@^4.0.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - jsdom@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-26.0.0.tgz#446dd1ad8cfc50df7e714e58f1f972c1763b354c" @@ -7359,11 +6074,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - language-subtag-registry@^0.3.20: version "0.3.23" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" @@ -7376,11 +6086,6 @@ language-tags@^1.0.9: dependencies: language-subtag-registry "^0.3.20" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -7446,11 +6151,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -7491,6 +6191,11 @@ loose-envify@^1.0.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +loupe@^3.1.0, loupe@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.3.tgz#042a8f7986d77f3d0f98ef7990a2b2fef18b0fd2" + integrity sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug== + lower-case-first@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" @@ -7505,16 +6210,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lru-cache@^10.4.3: +lru-cache@^10.2.0, lru-cache@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -lru-cache@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" - integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -7527,25 +6227,18 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== +magic-string@^0.30.17: + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== dependencies: - semver "^7.5.3" + "@jridgewell/sourcemap-codec" "^1.5.0" -make-error@^1.1.1, make-error@^1.3.6: +make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7568,11 +6261,6 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -7602,26 +6290,7 @@ micromatch@3.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: +micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -7651,31 +6320,17 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" - integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== dependencies: brace-expansion "^2.0.1" @@ -7686,12 +6341,17 @@ minimatch@^9.0.4, minimatch@^9.0.5: dependencies: brace-expansion "^2.0.1" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^7.1.2: +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -7709,13 +6369,6 @@ moment@^2.30.1: resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== -moo-color@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" - integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== - dependencies: - color-name "^1.1.4" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -7726,11 +6379,40 @@ ms@^2.1.1, ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msw@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/msw/-/msw-2.7.3.tgz#5ad569fae7c7cdb8be2eeba3d041c185600b25a0" + integrity sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw== + dependencies: + "@bundled-es-modules/cookie" "^2.0.1" + "@bundled-es-modules/statuses" "^1.0.1" + "@bundled-es-modules/tough-cookie" "^0.1.6" + "@inquirer/confirm" "^5.0.0" + "@mswjs/interceptors" "^0.37.0" + "@open-draft/deferred-promise" "^2.2.0" + "@open-draft/until" "^2.1.0" + "@types/cookie" "^0.6.0" + "@types/statuses" "^2.0.4" + graphql "^16.8.1" + headers-polyfill "^4.0.2" + is-node-process "^1.2.0" + outvariant "^1.4.3" + path-to-regexp "^6.3.0" + picocolors "^1.1.1" + strict-event-emitter "^0.5.1" + type-fest "^4.26.1" + yargs "^17.7.2" + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== + nano-css@^5.6.2: version "5.6.2" resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.6.2.tgz#584884ddd7547278f6d6915b6805069742679a32" @@ -7750,7 +6432,7 @@ nanoid@^3.3.7, nanoid@^3.3.8: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== -nanomatch@^1.2.5, nanomatch@^1.2.9: +nanomatch@^1.2.5: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== @@ -7777,11 +6459,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -7828,31 +6505,12 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -nwsapi@^2.2.16, nwsapi@^2.2.2: +nwsapi@^2.2.16: version "2.2.16" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.16.tgz#177760bba02c351df1d2644e220c31dfec8cdb43" integrity sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ== @@ -7945,14 +6603,14 @@ object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1: define-properties "^1.2.1" es-object-atoms "^1.0.0" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -8012,6 +6670,11 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== +outvariant@^1.4.0, outvariant@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873" + integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== + own-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" @@ -8021,12 +6684,7 @@ own-keys@^1.0.1: object-keys "^1.1.1" safe-push-apply "^1.0.0" -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@3.1.0, p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -8066,11 +6724,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -8105,7 +6758,7 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^7.0.0, parse5@^7.1.1, parse5@^7.2.1: +parse5@^7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== @@ -8143,12 +6796,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -8170,13 +6818,18 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" -path-scurry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" - integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== +path-scurry@^1.6.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^11.0.0" - minipass "^7.1.2" + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" + integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== path-type@^4.0.0: version "4.0.0" @@ -8191,27 +6844,30 @@ path@^0.12.7: process "^0.11.1" util "^0.10.3" +pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pirates@^4.0.1, pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== posix-character-classes@^0.1.0: version "0.1.1" @@ -8237,10 +6893,10 @@ postcss@8.4.49: picocolors "^1.1.1" source-map-js "^1.2.1" -postcss@^8.5.1: - version "8.5.2" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.2.tgz#e7b99cb9d2ec3e8dd424002e7c16517cb2b846bd" - integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA== +postcss@^8.5.3: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: nanoid "^3.3.8" picocolors "^1.1.1" @@ -8265,15 +6921,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - process@^0.11.1: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -8286,14 +6933,6 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.0, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -8315,24 +6954,11 @@ psl@^1.1.33: dependencies: punycode "^2.3.1" -pump@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -pure-rand@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -8365,9 +6991,9 @@ react-dom@^19.0.0: scheduler "^0.25.0" react-dropzone@^14.2.3: - version "14.3.5" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.3.5.tgz#1a8bd312c8a353ec78ef402842ccb3589c225add" - integrity sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ== + version "14.3.8" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.3.8.tgz#a7eab118f8a452fe3f8b162d64454e81ba830582" + integrity sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug== dependencies: attr-accept "^2.2.4" file-selector "^2.1.0" @@ -8379,9 +7005,9 @@ react-fast-compare@^2.0.1: integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== react-i18next@^15.4.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-15.4.0.tgz#87c755fb6d7a567eec134e4759b022a0baacb19e" - integrity sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw== + version "15.4.1" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-15.4.1.tgz#33f3e89c2f6c68e2bfcbf9aa59986ad42fe78758" + integrity sha512-ahGab+IaSgZmNPYXdV1n+OYky95TGpFwnKRflX/16dY04DsYYKHtVLjeny7sBSCREEcoMbAgSkFiGLF5g5Oofw== dependencies: "@babel/runtime" "^7.25.0" html-parse-stringify "^3.0.1" @@ -8401,11 +7027,6 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - react-is@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.0.0.tgz#d6669fd389ff022a9684f708cf6fa4962d1fea7a" @@ -8431,14 +7052,6 @@ react-router@6.29.0: dependencies: "@remix-run/router" "1.22.0" -react-test-renderer@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-19.0.0.tgz#ca6fa322c58d4bfa34635788fe242a8c3daa4c7d" - integrity sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA== - dependencies: - react-is "^19.0.0" - scheduler "^0.25.0" - react-transition-group@^4.4.5: version "4.4.5" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" @@ -8608,9 +7221,9 @@ remove-trailing-separator@^1.0.1: integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== remove-trailing-spaces@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" - integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + version "1.0.9" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.9.tgz#39c270a309ea16fda84253ffbdeb1b5afa0aa271" + integrity sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA== repeat-element@^1.1.2: version "1.1.4" @@ -8642,14 +7255,7 @@ resize-observer-polyfill@^1.5.1: resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@5.0.0, resolve-from@^5.0.0: +resolve-from@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== @@ -8669,12 +7275,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve.exports@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" - integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== - -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.4: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -8723,31 +7324,31 @@ rimraf@^3.0.2: glob "^7.1.3" rollup@^4.30.1: - version "4.34.7" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.7.tgz#e00d8550688a616a3481c6446bb688d4c753ba8f" - integrity sha512-8qhyN0oZ4x0H6wmBgfKxJtxM7qS98YJ0k0kNh5ECVtuchIJ7z9IVVvzpmtQyT10PXKMtBxYr1wQ5Apg8RS8kXQ== + version "4.34.8" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.8.tgz#e859c1a51d899aba9bcf451d4eed1d11fb8e2a6e" + integrity sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ== dependencies: "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.34.7" - "@rollup/rollup-android-arm64" "4.34.7" - "@rollup/rollup-darwin-arm64" "4.34.7" - "@rollup/rollup-darwin-x64" "4.34.7" - "@rollup/rollup-freebsd-arm64" "4.34.7" - "@rollup/rollup-freebsd-x64" "4.34.7" - "@rollup/rollup-linux-arm-gnueabihf" "4.34.7" - "@rollup/rollup-linux-arm-musleabihf" "4.34.7" - "@rollup/rollup-linux-arm64-gnu" "4.34.7" - "@rollup/rollup-linux-arm64-musl" "4.34.7" - "@rollup/rollup-linux-loongarch64-gnu" "4.34.7" - "@rollup/rollup-linux-powerpc64le-gnu" "4.34.7" - "@rollup/rollup-linux-riscv64-gnu" "4.34.7" - "@rollup/rollup-linux-s390x-gnu" "4.34.7" - "@rollup/rollup-linux-x64-gnu" "4.34.7" - "@rollup/rollup-linux-x64-musl" "4.34.7" - "@rollup/rollup-win32-arm64-msvc" "4.34.7" - "@rollup/rollup-win32-ia32-msvc" "4.34.7" - "@rollup/rollup-win32-x64-msvc" "4.34.7" + "@rollup/rollup-android-arm-eabi" "4.34.8" + "@rollup/rollup-android-arm64" "4.34.8" + "@rollup/rollup-darwin-arm64" "4.34.8" + "@rollup/rollup-darwin-x64" "4.34.8" + "@rollup/rollup-freebsd-arm64" "4.34.8" + "@rollup/rollup-freebsd-x64" "4.34.8" + "@rollup/rollup-linux-arm-gnueabihf" "4.34.8" + "@rollup/rollup-linux-arm-musleabihf" "4.34.8" + "@rollup/rollup-linux-arm64-gnu" "4.34.8" + "@rollup/rollup-linux-arm64-musl" "4.34.8" + "@rollup/rollup-linux-loongarch64-gnu" "4.34.8" + "@rollup/rollup-linux-powerpc64le-gnu" "4.34.8" + "@rollup/rollup-linux-riscv64-gnu" "4.34.8" + "@rollup/rollup-linux-s390x-gnu" "4.34.8" + "@rollup/rollup-linux-x64-gnu" "4.34.8" + "@rollup/rollup-linux-x64-musl" "4.34.8" + "@rollup/rollup-win32-arm64-msvc" "4.34.8" + "@rollup/rollup-win32-ia32-msvc" "4.34.8" + "@rollup/rollup-win32-x64-msvc" "4.34.8" fsevents "~2.3.2" rrweb-cssom@^0.8.0: @@ -8755,11 +7356,6 @@ rrweb-cssom@^0.8.0: resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - rtl-css-js@^1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz#4b48b4354b0ff917a30488d95100fbf7219a3e80" @@ -8780,9 +7376,9 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^7.5.5: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.1.0" @@ -8831,21 +7427,6 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - saxes@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" @@ -8873,17 +7454,12 @@ select@^1.1.2: resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: +semver@^7.6.0, semver@^7.6.3: version "7.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== @@ -8958,13 +7534,6 @@ shallowequal@1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -8972,11 +7541,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -9027,12 +7591,17 @@ side-channel@^1.1.0: side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: +signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -9042,21 +7611,11 @@ signedsource@^1.0.0: resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" - integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -9129,14 +7688,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" @@ -9152,7 +7703,7 @@ source-map@^0.5.6, source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -9171,11 +7722,6 @@ sponge-case@^1.0.1: dependencies: tslib "^2.0.3" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - stable-hash@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.4.tgz#55ae7dadc13e4b3faed13601587cec41859b42f7" @@ -9188,12 +7734,10 @@ stack-generator@^2.0.5: dependencies: stackframe "^1.3.4" -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== stackframe@^1.3.4: version "1.3.4" @@ -9225,41 +7769,31 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +statuses@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" + integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== + streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +strict-event-emitter@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" + integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== + string-env-interpolation@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-length@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" - integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== - dependencies: - char-regex "^2.0.0" - strip-ansi "^7.0.1" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -9269,15 +7803,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.includes@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" @@ -9367,13 +7892,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -9381,33 +7899,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -9450,20 +7946,13 @@ stylis@^4.3.0: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -9505,15 +7994,6 @@ tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -9549,6 +8029,39 @@ tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinybench@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== + +tinyglobby@^0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5" + integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww== + dependencies: + fdir "^6.4.3" + picomatch "^4.0.2" + +tinypool@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" + integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA== + +tinyrainbow@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" + integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== + +tinyspy@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" + integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== + title-case@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" @@ -9556,17 +8069,17 @@ title-case@^3.0.3: dependencies: tslib "^2.0.3" -tldts-core@^6.1.77: - version "6.1.77" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.77.tgz#0fa4563163a7a61d72c4b05650fb66fc7e815500" - integrity sha512-bCaqm24FPk8OgBkM0u/SrEWJgHnhBWYqeBo6yUmcZJDCHt/IfyWBb+14CXdGi4RInMv4v7eUAin15W0DoA+Ytg== +tldts-core@^6.1.78: + version "6.1.78" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.78.tgz#47b477d9742870daa01dbd5ff9a598a48379728c" + integrity sha512-jS0svNsB99jR6AJBmfmEWuKIgz91Haya91Z43PATaeHJ24BkMoNRb/jlaD37VYjb0mYf6gRL/HOnvS1zEnYBiw== tldts@^6.1.32: - version "6.1.77" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.77.tgz#714e3d1989e562886f2ed97b65e95a8e9f9e92d9" - integrity sha512-lBpoWgy+kYmuXWQ83+R7LlJCnsd9YW8DGpZSHhrMl4b8Ly/1vzOie3OdtmUJDkKxcgRGOehDu5btKkty+JEe+g== + version "6.1.78" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.78.tgz#ee94576653a60d421ff94162c4e9060f2e62467b" + integrity sha512-fSgYrW0ITH0SR/CqKMXIruYIPpNu5aDgUp22UhYoSrnUQwc7SBqifEBFNce7AAcygUPBo6a/gbtcguWdmko4RQ== dependencies: - tldts-core "^6.1.77" + tldts-core "^6.1.78" tmp@^0.0.33: version "0.0.33" @@ -9575,11 +8088,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -9602,7 +8110,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: +to-regex@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== @@ -9622,7 +8130,7 @@ toposort@^2.0.2: resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== -tough-cookie@^4.1.2: +tough-cookie@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -9639,13 +8147,6 @@ tough-cookie@^5.0.0, tough-cookie@^5.1.0: dependencies: tldts "^6.1.32" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - tr46@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" @@ -9658,7 +8159,7 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.4.3" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== @@ -9680,21 +8181,6 @@ ts-invariant@^0.10.3: dependencies: tslib "^2.1.0" -ts-jest@^29.1.2: - version "29.2.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" - integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== - dependencies: - bs-logger "^0.2.6" - ejs "^3.1.10" - fast-json-stable-stringify "^2.1.0" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "^4.1.2" - make-error "^1.3.6" - semver "^7.6.3" - yargs-parser "^21.1.1" - ts-log@^2.2.3: version "2.2.7" resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.7.tgz#4f4512144898b77c9984e91587076fcb8518688e" @@ -9766,11 +8252,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -9786,6 +8267,11 @@ type-fest@^2.19.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== +type-fest@^4.26.1: + version "4.35.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.35.0.tgz#007ed74d65c2ca0fb3b564b3dc8170d5c872d665" + integrity sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A== + typed-array-buffer@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" @@ -9831,17 +8317,10 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@~5.3.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ua-parser-js@^1.0.35: version "1.0.40" @@ -10009,29 +8488,31 @@ util@^0.10.3: inherits "2.0.3" uuid@^11.0.5: - version "11.0.5" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.0.5.tgz#07b46bdfa6310c92c3fb3953a8720f170427fc62" - integrity sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA== + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-to-istanbul@^9.0.1: - version "9.3.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" - integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== +vite-node@3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.0.7.tgz#f15bc1e0c343ac00115a52c7e110471a5a315c72" + integrity sha512-2fX0QwX4GkkkpULXdT1Pf4q0tC1i1lFOyseKoonavXUNlQ77KpW2XqBGGNIm/J4Ows4KxgGJzDguYVPKwG/n5A== + dependencies: + cac "^6.7.14" + debug "^4.4.0" + es-module-lexer "^1.6.0" + pathe "^2.0.3" + vite "^5.0.0 || ^6.0.0" + vite-tsconfig-paths@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz#321f02e4b736a90ff62f9086467faf4e2da857a9" @@ -10041,29 +8522,48 @@ vite-tsconfig-paths@^4.3.1: globrex "^0.1.2" tsconfck "^3.0.3" -vite@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.1.0.tgz#00a4e99a23751af98a2e4701c65ba89ce23858a6" - integrity sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ== +"vite@^5.0.0 || ^6.0.0", vite@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.0.tgz#9dcb543380dab18d8384eb840a76bf30d78633f0" + integrity sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ== dependencies: - esbuild "^0.24.2" - postcss "^8.5.1" + esbuild "^0.25.0" + postcss "^8.5.3" rollup "^4.30.1" optionalDependencies: fsevents "~2.3.3" +vitest@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.0.7.tgz#ed8f42e1b0e09e2179eaefd966cb58a8b75f0f6a" + integrity sha512-IP7gPK3LS3Fvn44x30X1dM9vtawm0aesAa2yBIZ9vQf+qB69NXC5776+Qmcr7ohUXIQuLhk7xQR0aSUIDPqavg== + dependencies: + "@vitest/expect" "3.0.7" + "@vitest/mocker" "3.0.7" + "@vitest/pretty-format" "^3.0.7" + "@vitest/runner" "3.0.7" + "@vitest/snapshot" "3.0.7" + "@vitest/spy" "3.0.7" + "@vitest/utils" "3.0.7" + chai "^5.2.0" + debug "^4.4.0" + expect-type "^1.1.0" + magic-string "^0.30.17" + pathe "^2.0.3" + std-env "^3.8.0" + tinybench "^2.9.0" + tinyexec "^0.3.2" + tinypool "^1.0.2" + tinyrainbow "^2.0.0" + vite "^5.0.0 || ^6.0.0" + vite-node "3.0.7" + why-is-node-running "^2.3.0" + void-elements@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - w3c-xmlserializer@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" @@ -10076,13 +8576,6 @@ waait@^1.0.5: resolved "https://registry.yarnpkg.com/waait/-/waait-1.0.5.tgz#6a3c7aaa88bd0a1a545e9d47890b9595bebf9aa7" integrity sha512-wp+unA4CpqxvBUKHHv8D86fK4jWByHAWyhEXXVHfVUZfK+16ylpj7hjQ58Z8j9ntu8XNukRQT8Fi5qbyJ8rkyw== -walker@^1.0.7, walker@^1.0.8, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -10105,13 +8598,6 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - whatwg-encoding@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" @@ -10119,24 +8605,11 @@ whatwg-encoding@^3.1.1: dependencies: iconv-lite "0.6.3" -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - whatwg-mimetype@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-url@^14.0.0, whatwg-url@^14.1.0: version "14.1.1" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.1.1.tgz#ce71e240c61541315833b5cdafd139a479e47058" @@ -10210,13 +8683,6 @@ which-typed-array@^1.1.16, which-typed-array@^1.1.18: gopd "^1.2.0" has-tostringtag "^1.0.2" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -10224,6 +8690,14 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" @@ -10234,15 +8708,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -10261,47 +8726,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^8.11.0, ws@^8.17.1, ws@^8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +ws@^8.17.1, ws@^8.18.0: + version "8.18.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== xml-name-validator@^5.0.0: version "5.0.0" @@ -10373,7 +8806,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.0, yargs@^17.3.1: +yargs@^17.0.0, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -10396,6 +8829,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== + yup@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/yup/-/yup-1.6.1.tgz#8defcff9daaf9feac178029c0e13b616563ada4b" diff --git a/src/hct_mis_api/api/admin.py b/src/hct_mis_api/api/admin.py index c819bfca46..da6b8dcbc4 100644 --- a/src/hct_mis_api/api/admin.py +++ b/src/hct_mis_api/api/admin.py @@ -80,14 +80,16 @@ class Meta: def __init__(self, *args: Any, instance: Optional[Any] = None, **kwargs: Any) -> None: super().__init__(*args, instance=instance, **kwargs) if instance: - self.fields["valid_for"].queryset = BusinessArea.objects.filter(user_roles__user=instance.user).distinct() + self.fields["valid_for"].queryset = BusinessArea.objects.filter( + role_assignments__user=instance.user + ).distinct() def clean(self) -> None: if self.instance and hasattr(self.instance, "user"): user = self.instance.user else: user = self.cleaned_data["user"] - if not BusinessArea.objects.filter(user_roles__user=user).exists(): + if not BusinessArea.objects.filter(role_assignments__user=user).exists(): raise ValidationError("This user does not have any Business Areas assigned to him") @@ -167,7 +169,7 @@ def log_addition(self, request: HttpRequest, object: Any, message: str) -> LogEn @atomic() def save_model(self, request: HttpRequest, obj: Any, form: Form, change: bool) -> None: obj.save() - obj.valid_for.set(BusinessArea.objects.filter(user_roles__user=obj.user)) + obj.valid_for.set(BusinessArea.objects.filter(role_assignments__user=obj.user)) obj.save() if change: self._send_token_email(request, obj, TOKEN_UPDATED_EMAIL) diff --git a/src/hct_mis_api/api/urls.py b/src/hct_mis_api/api/urls.py index 826d40363b..c219988af0 100644 --- a/src/hct_mis_api/api/urls.py +++ b/src/hct_mis_api/api/urls.py @@ -10,6 +10,7 @@ from hct_mis_api.api.endpoints.base import ConstanceSettingsAPIView from hct_mis_api.api.endpoints.program.views import ProgramGlobalListView from hct_mis_api.api.router import APIRouter +from hct_mis_api.apps.account.api.views import UserProfileView from hct_mis_api.contrib.aurora.views import ( OrganizationListView, ProjectListView, @@ -38,6 +39,7 @@ path("lookups/sex/", endpoints.lookups.Sex().as_view(), name="sex-list"), path("lookups/program-statuses/", endpoints.lookups.ProgramStatuses().as_view(), name="program-statuses-list"), path("business_areas/", endpoints.core.BusinessAreaListView.as_view(), name="business-area-list"), + path("profile/", UserProfileView.as_view(), name="profile-data"), path("programs/", ProgramGlobalListView.as_view(), name="program-global-list"), path("", include("hct_mis_api.apps.program.api.urls.beneficiary_group", namespace="beneficiary-group")), path("dashboard/", include("hct_mis_api.apps.dashboard.urls")), diff --git a/src/hct_mis_api/apps/account/admin/__init__.py b/src/hct_mis_api/apps/account/admin/__init__.py index 20288e67cd..127e89c413 100644 --- a/src/hct_mis_api/apps/account/admin/__init__.py +++ b/src/hct_mis_api/apps/account/admin/__init__.py @@ -2,4 +2,4 @@ from .partner import PartnerAdmin # noqa from .role import IncompatibleRolesAdmin, RoleAdmin # noqa from .user import UserAdmin # noqa -from .user_role import UserRoleAdmin # noqa +from .user_role import RoleAssignmentAdmin # noqa diff --git a/src/hct_mis_api/apps/account/admin/ad.py b/src/hct_mis_api/apps/account/admin/ad.py index a88c152173..e03dc7b292 100644 --- a/src/hct_mis_api/apps/account/admin/ad.py +++ b/src/hct_mis_api/apps/account/admin/ad.py @@ -157,7 +157,7 @@ def load_ad_users(self, request: HttpRequest) -> TemplateResponse: basic_role = account_models.Role.objects.filter(name="Basic User").first() if global_business_area and basic_role: users_role_to_bulk_create.append( - account_models.UserRole( + account_models.RoleAssignment( business_area=global_business_area, user=user, role=basic_role, @@ -166,7 +166,7 @@ def load_ad_users(self, request: HttpRequest) -> TemplateResponse: results.created.append(user) users_role_to_bulk_create.append( - account_models.UserRole(role=role, business_area=business_area, user=user) + account_models.RoleAssignment(role=role, business_area=business_area, user=user) ) except HTTPError as e: if e.response.status_code != 404: @@ -175,7 +175,7 @@ def load_ad_users(self, request: HttpRequest) -> TemplateResponse: except Http404: results.missing.append(email) account_models.User.objects.bulk_create(users_to_bulk_create) - account_models.UserRole.objects.bulk_create(users_role_to_bulk_create, ignore_conflicts=True) + account_models.RoleAssignment.objects.bulk_create(users_role_to_bulk_create, ignore_conflicts=True) ctx["results"] = results return TemplateResponse(request, "admin/load_users.html", ctx) except Exception as e: diff --git a/src/hct_mis_api/apps/account/admin/filters.py b/src/hct_mis_api/apps/account/admin/filters.py index f8e9f3cd5e..7790773045 100644 --- a/src/hct_mis_api/apps/account/admin/filters.py +++ b/src/hct_mis_api/apps/account/admin/filters.py @@ -35,10 +35,10 @@ class BusinessAreaFilter(SimpleListFilter): template = "adminfilters/combobox.html" def lookups(self, request: HttpRequest, model_admin: "ModelAdmin[Any]") -> List: - return BusinessArea.objects.filter(user_roles__isnull=False).values_list("id", "name").distinct() + return BusinessArea.objects.filter(role_assignments__user__isnull=False).values_list("id", "name").distinct() def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet: - return queryset.filter(user_roles__business_area=self.value()).distinct() if self.value() else queryset + return queryset.filter(role_assignments__business_area=self.value()).distinct() if self.value() else queryset class PermissionFilter(SimpleListFilter): diff --git a/src/hct_mis_api/apps/account/admin/forms.py b/src/hct_mis_api/apps/account/admin/forms.py index b8ea6f4382..d0bc943f96 100644 --- a/src/hct_mis_api/apps/account/admin/forms.py +++ b/src/hct_mis_api/apps/account/admin/forms.py @@ -28,16 +28,16 @@ class RoleAdminForm(forms.ModelForm): ) class Meta: - model = account_models.UserRole + model = account_models.RoleAssignment fields = "__all__" -class UserRoleAdminForm(forms.ModelForm): +class RoleAssignmentAdminForm(forms.ModelForm): role = forms.ModelChoiceField(account_models.Role.objects.order_by("name")) business_area = forms.ModelChoiceField(BusinessArea.objects.filter(is_split=False)) class Meta: - model = account_models.UserRole + model = account_models.RoleAssignment fields = "__all__" def clean(self) -> None: @@ -51,14 +51,12 @@ def clean(self) -> None: account_models.IncompatibleRoles.objects.validate_user_role(user, business_area, role) -class UserRoleInlineFormSet(forms.BaseInlineFormSet): - model = account_models.UserRole +class RoleAssignmentInlineFormSet(forms.BaseInlineFormSet): + model = account_models.RoleAssignment def add_fields(self, form: "forms.Form", index: Optional[int]) -> None: super().add_fields(form, index) - form.fields["business_area"].choices = [ - (str(x.id), str(x)) for x in BusinessArea.objects.filter(is_split=False) - ] + form.fields["role"].required = True def clean(self) -> None: super().clean() diff --git a/src/hct_mis_api/apps/account/admin/partner.py b/src/hct_mis_api/apps/account/admin/partner.py index 43cc4b4ec0..cabe3337d8 100644 --- a/src/hct_mis_api/apps/account/admin/partner.py +++ b/src/hct_mis_api/apps/account/admin/partner.py @@ -1,45 +1,27 @@ -from collections import defaultdict -from typing import TYPE_CHECKING, Any, Optional, Sequence, Type, Union +from typing import Any, Optional, Sequence, Type from django import forms -from django.contrib import admin, messages -from django.forms import CheckboxSelectMultiple, ModelForm, formset_factory -from django.http import HttpRequest, HttpResponseRedirect -from django.template.response import TemplateResponse +from django.contrib import admin +from django.forms import CheckboxSelectMultiple, ModelForm +from django.http import HttpRequest from django.urls import reverse from django.utils.html import format_html -from admin_extra_buttons.decorators import button from adminfilters.autocomplete import AutoCompleteFilter from hct_mis_api.apps.account import models as account_models -from hct_mis_api.apps.account.models import IncompatibleRoles, Role -from hct_mis_api.apps.core.models import BusinessArea, BusinessAreaPartnerThrough +from hct_mis_api.apps.account.admin.user_role import RoleAssignmentInline +from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.geo.models import Area from hct_mis_api.apps.program.models import Program from hct_mis_api.apps.utils.admin import HopeModelAdminMixin from mptt.forms import TreeNodeMultipleChoiceField -if TYPE_CHECKING: - from django.db.models.query import QuerySet - def can_add_business_area_to_partner(request: Any, *args: Any, **kwargs: Any) -> bool: return request.user.can_add_business_area_to_partner() -def business_area_role_form_custom_query(queryset: "QuerySet") -> Any: - class BusinessAreaRoleForm(forms.Form): - business_area = forms.ModelChoiceField(queryset=BusinessArea.objects.all(), required=True) - roles = forms.ModelMultipleChoiceField(queryset=Role.objects.all(), required=True) - - def __init__(self, *args: Any, **kwargs: Any) -> None: - super().__init__(*args, **kwargs) - self.fields["business_area"].queryset = queryset - - return BusinessAreaRoleForm - - class ProgramAreaForm(forms.Form): business_area = forms.ModelChoiceField(queryset=BusinessArea.objects.all(), required=True) program = forms.ModelChoiceField(queryset=Program.objects.all(), required=True) @@ -57,7 +39,13 @@ class PartnerAdmin(HopeModelAdminMixin, admin.ModelAdmin): "sub_partners", "is_un", ) - filter_horizontal = ("allowed_business_areas",) + exclude = ("allowed_business_areas",) + inlines = (RoleAssignmentInline,) + + def get_inline_instances(self, request: Any, obj: Optional[account_models.Partner] = None) -> list: + if obj is None: # if object is being created now, disable the inlines + return [] + return super().get_inline_instances(request, obj) def sub_partners(self, obj: Any) -> Optional[str]: return self.links_to_objects(obj.get_children()) if obj else None @@ -75,10 +63,8 @@ def links_to_objects(cls, objects: Any) -> str: def get_readonly_fields(self, request: HttpRequest, obj: Optional[account_models.Partner] = None) -> Sequence[str]: additional_fields = [] - if obj and obj.is_unicef: - additional_fields.append("name") - if not request.user.has_perm("account.can_change_allowed_business_areas"): - additional_fields.append("allowed_business_areas") + if obj and (obj.is_unicef or obj.is_unicef_subpartner): + additional_fields.extend(["name", "parent"]) return list(super().get_readonly_fields(request, obj)) + additional_fields def get_form( @@ -86,85 +72,13 @@ def get_form( ) -> Type[ModelForm]: form = super().get_form(request, obj, **kwargs) - queryset = account_models.Partner.objects.filter(level=0) - if obj: - if obj.is_parent: - queryset = account_models.Partner.objects.none() - else: - queryset = queryset.exclude(id=obj.id) + if not (obj and (obj.is_unicef_subpartner or obj.is_unicef)): + queryset = account_models.Partner.objects.filter(level=0) + if obj: + if obj.is_parent: + queryset = account_models.Partner.objects.none() + else: + queryset = queryset.exclude(id=obj.id) - form.base_fields["parent"].queryset = queryset + form.base_fields["parent"].queryset = queryset return form - - @button(enabled=lambda obj: obj.original.is_editable, permission="auth.view_permission") - def permissions(self, request: HttpRequest, pk: int) -> Union[TemplateResponse, HttpResponseRedirect]: - context = self.get_common_context(request, pk, title="Partner permissions") - partner: account_models.Partner = context["original"] - user_can_add_ba_to_partner = request.user.can_add_business_area_to_partner() - permissions_list = partner.business_area_partner_through.all() - context["can_add_business_area_to_partner"] = user_can_add_ba_to_partner - - BusinessAreaRoleFormSet = formset_factory( - business_area_role_form_custom_query(partner.allowed_business_areas.all()), - extra=0, - can_delete=True, - ) - if request.method == "GET": - business_area_role_data = [] - for permission in permissions_list: - if permission.roles: - business_area_role_data.append( - {"business_area": permission.business_area_id, "roles": permission.roles.all()} - ) - business_area_role_form_set = BusinessAreaRoleFormSet( - initial=business_area_role_data, prefix="business_area_role" - ) - else: - business_area_role_form_set = BusinessAreaRoleFormSet(request.POST or None, prefix="business_area_role") - incompatible_roles = defaultdict(list) - ba_partner_through_data = {} - ba_partner_through_to_be_deleted = [] - - business_area_role_form_set_is_valid = business_area_role_form_set.is_valid() - if user_can_add_ba_to_partner and business_area_role_form_set_is_valid: - for form in business_area_role_form_set.cleaned_data: - if form and not form["DELETE"]: - business_area_id = str(form["business_area"].id) - role_ids = list(map(lambda role: str(role.id), form["roles"])) - - if incompatible_role := IncompatibleRoles.objects.filter( - role_one__in=role_ids, role_two__in=role_ids - ).first(): - incompatible_roles[form["business_area"]].append(str(incompatible_role)) - else: - ba_partner, _ = BusinessAreaPartnerThrough.objects.get_or_create( - partner=partner, - business_area_id=business_area_id, - ) - ba_partner_through_data[ba_partner] = form["roles"] - elif form["DELETE"]: - ba_partner_through_to_be_deleted.append( - BusinessAreaPartnerThrough.objects.filter( - partner=partner, business_area=form["business_area"] - ) - .first() - .id - ) - - if incompatible_roles: - for business_area, roles in incompatible_roles.items(): - self.message_user( - request, f"Roles in {business_area} are incompatible: {', '.join(roles)}", messages.ERROR - ) - - if business_area_role_form_set_is_valid and not incompatible_roles: - if ba_partner_through_to_be_deleted: - BusinessAreaPartnerThrough.objects.filter(pk__in=ba_partner_through_to_be_deleted).delete() - for ba_partner_through, areas in ba_partner_through_data.items(): - ba_partner_through.roles.add(*areas) - - return HttpResponseRedirect(reverse("admin:account_partner_change", args=[pk])) - - context["business_area_role_formset"] = business_area_role_form_set - - return TemplateResponse(request, "admin/account/parent/permissions.html", context) diff --git a/src/hct_mis_api/apps/account/admin/user.py b/src/hct_mis_api/apps/account/admin/user.py index 1c92bb8f34..40ca6bf85a 100644 --- a/src/hct_mis_api/apps/account/admin/user.py +++ b/src/hct_mis_api/apps/account/admin/user.py @@ -28,7 +28,7 @@ ImportCSVForm, ) from hct_mis_api.apps.account.admin.mixins import KoboAccessMixin -from hct_mis_api.apps.account.admin.user_role import UserRoleInline +from hct_mis_api.apps.account.admin.user_role import RoleAssignmentInline from hct_mis_api.apps.utils.admin import HopeModelAdminMixin if TYPE_CHECKING: @@ -122,7 +122,7 @@ class UserAdmin(HopeModelAdminMixin, KoboAccessMixin, BaseUserAdmin, ADUSerMixin }, ), ) - inlines = (UserRoleInline,) + inlines = (RoleAssignmentInline,) actions = ["create_kobo_user_qs", "add_business_area_role"] formfield_overrides = { JSONField: {"widget": JSONEditor}, @@ -175,10 +175,10 @@ def privileges(self, request: HttpRequest, pk: "UUID") -> TemplateResponse: context["permissions"] = [p.split(".") for p in sorted(all_perms)] ba_perms = defaultdict(list) ba_roles = defaultdict(list) - for role in user.user_roles.all(): + for role in user.role_assignments.all(): ba_roles[role.business_area.slug].append(role.role) - for role in user.user_roles.values_list("business_area__slug", flat=True).distinct("business_area"): + for role in user.role_assignments.values_list("business_area__slug", flat=True).distinct("business_area"): ba_perms[role].extend(user.permissions_in_business_area(role)) context["business_ares_permissions"] = dict(ba_perms) @@ -211,14 +211,14 @@ def add_business_area_role(self, request: HttpRequest, queryset: QuerySet) -> Ht if crud == "ADD": try: account_models.IncompatibleRoles.objects.validate_user_role(u, ba, role) - ur, is_new = u.user_roles.get_or_create(business_area=ba, role=role) + ur, is_new = u.role_assignments.get_or_create(business_area=ba, role=role) if is_new: added += 1 self.log_addition(request, ur, "Role added") except ValidationError as e: self.message_user(request, str(e), messages.ERROR) elif crud == "REMOVE": - to_delete = u.user_roles.filter(business_area=ba, role=role).first() + to_delete = u.role_assignments.filter(business_area=ba, role=role).first() if to_delete: removed += 1 self.log_deletion(request, to_delete, str(to_delete)) @@ -297,7 +297,7 @@ def import_csv(self, request: HttpRequest) -> TemplateResponse: defaults={"username": username}, ) if isnew: - ur = u.user_roles.create(business_area=business_area, role=role) + ur = u.role_assignments.create(business_area=business_area, role=role) self.log_addition(request, u, "User imported by CSV") self.log_addition(request, ur, "User Role added") else: # check role validity @@ -305,7 +305,7 @@ def import_csv(self, request: HttpRequest) -> TemplateResponse: account_models.IncompatibleRoles.objects.validate_user_role( u, business_area, role ) - u.user_roles.get_or_create(business_area=business_area, role=role) + u.role_assignments.get_or_create(business_area=business_area, role=role) self.log_addition(request, ur, "User Role added") except ValidationError as e: self.message_user( diff --git a/src/hct_mis_api/apps/account/admin/user_role.py b/src/hct_mis_api/apps/account/admin/user_role.py index 18023dff9e..02d3580ef4 100644 --- a/src/hct_mis_api/apps/account/admin/user_role.py +++ b/src/hct_mis_api/apps/account/admin/user_role.py @@ -5,32 +5,76 @@ from django.db.models import QuerySet from django.http import HttpRequest -from adminactions.export import ForeignKeysCollector from adminfilters.autocomplete import AutoCompleteFilter from adminfilters.combo import AllValuesComboFilter from hct_mis_api.apps.account import models as account_models from hct_mis_api.apps.account.admin.forms import ( - UserRoleAdminForm, - UserRoleInlineFormSet, + RoleAssignmentAdminForm, + RoleAssignmentInlineFormSet, ) -from hct_mis_api.apps.account.models import Role +from hct_mis_api.apps.account.models import Partner, Role +from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.utils.admin import HOPEModelAdminBase logger = logging.getLogger(__name__) -class UserRoleInline(admin.TabularInline): - model = account_models.UserRole +class RoleAssignmentInline(admin.TabularInline): + model = account_models.RoleAssignment + fields = ["business_area", "program", "role", "expiry_date"] extra = 0 - formset = UserRoleInlineFormSet - raw_id_fields = ("business_area", "role") + formset = RoleAssignmentInlineFormSet + def formfield_for_foreignkey(self, db_field: Any, request: Any = None, **kwargs: Any) -> Any: + partner_id = request.resolver_match.kwargs.get("object_id") -@admin.register(account_models.UserRole) -class UserRoleAdmin(HOPEModelAdminBase): - list_display = ("user", "role", "business_area", "expiry_date") - form = UserRoleAdminForm + if db_field.name == "business_area": + if partner_id and partner_id.isdigit(): + partner = Partner.objects.get(id=partner_id) + kwargs["queryset"] = BusinessArea.objects.filter( + id__in=partner.allowed_business_areas.all().values("id"), + is_split=False, + ) + else: + kwargs["queryset"] = BusinessArea.objects.filter(is_split=False) + + elif db_field.name == "role": + if partner_id and partner_id.isdigit(): + kwargs["queryset"] = Role.objects.filter( + is_available_for_partner=True, + ) + else: + kwargs["queryset"] = Role.objects.all() + + return super().formfield_for_foreignkey(db_field, request, **kwargs) + + def has_add_permission(self, request: HttpRequest, obj: Optional[Any] = None) -> bool: + if isinstance(obj, Partner): + if obj.is_parent or obj.is_unicef_subpartner: + return False # Disable adding if Partner is a parent or is a UNICEF subpartner + return request.user.can_add_business_area_to_partner() + return True + + def has_change_permission(self, request: HttpRequest, obj: Optional[Any] = None) -> bool: + if isinstance(obj, Partner): + if obj.is_unicef_subpartner: + return False # Disable editing if Partner is a parent or is a UNICEF subpartner + return request.user.can_add_business_area_to_partner() + return True + + def has_delete_permission(self, request: HttpRequest, obj: Optional[Any] = None) -> bool: + if isinstance(obj, Partner): + if obj.is_unicef_subpartner: + return False # Disable deleting if Partner is a parent or is a UNICEF subpartner + return request.user.can_add_business_area_to_partner() + return True + + +@admin.register(account_models.RoleAssignment) +class RoleAssignmentAdmin(HOPEModelAdminBase): + list_display = ("user", "partner", "role", "business_area", "program") + form = RoleAssignmentAdminForm autocomplete_fields = ("role",) raw_id_fields = ("user", "business_area", "role") search_fields = ( @@ -40,6 +84,7 @@ class UserRoleAdmin(HOPEModelAdminBase): ) list_filter = ( ("business_area", AutoCompleteFilter), + ("program", AutoCompleteFilter), ("role", AutoCompleteFilter), ("role__subsystem", AllValuesComboFilter), ) @@ -50,7 +95,9 @@ def get_queryset(self, request: HttpRequest) -> QuerySet: .get_queryset(request) .select_related( "business_area", + "program", "user", + "partner", "role", ) ) @@ -63,16 +110,3 @@ def check_sync_permission(self, request: HttpRequest, obj: Optional[Any] = None) def check_publish_permission(self, request: HttpRequest, obj: Optional[Any] = None) -> bool: return False - - def _get_data(self, record: Any) -> str: - roles = Role.objects.all() - collector = ForeignKeysCollector(None) - objs = [] - for qs in [roles]: - objs.extend(qs) - objs.extend(account_models.UserRole.objects.filter(pk=record.pk)) - collector.collect(objs) - serializer = self.get_serializer("json") - return serializer.serialize( - collector.data, use_natural_foreign_keys=True, use_natural_primary_keys=True, indent=3 - ) diff --git a/src/hct_mis_api/apps/account/api/serializers.py b/src/hct_mis_api/apps/account/api/serializers.py new file mode 100644 index 0000000000..6323fadbf6 --- /dev/null +++ b/src/hct_mis_api/apps/account/api/serializers.py @@ -0,0 +1,83 @@ +from django.contrib.auth import get_user_model + +from flags.state import flag_state +from rest_framework import serializers +from rest_framework.utils.serializer_helpers import ReturnDict + +from hct_mis_api.apps.account.models import Role, User +from hct_mis_api.apps.core.models import BusinessArea +from hct_mis_api.apps.core.utils import get_program_id_from_headers + + +class UserBusinessAreaSerializer(serializers.ModelSerializer): + permissions = serializers.SerializerMethodField() + is_accountability_applicable = serializers.SerializerMethodField() + + def get_permissions(self, obj: BusinessArea) -> list: + user = self.context["request"].user + if user: + return user.permissions_in_business_area(obj.slug) + return [] + + def get_is_accountability_applicable(self, obj: BusinessArea) -> bool: + return all([bool(flag_state("ALLOW_ACCOUNTABILITY_MODULE")), obj.is_accountability_applicable]) + + class Meta: + model = BusinessArea + fields = ( + "id", + "name", + "slug", + "permissions", + "is_accountability_applicable", + ) + + +class RoleSerializer(serializers.ModelSerializer): + class Meta: + model = Role + exclude = ("id",) + + +class ProfileSerializer(serializers.ModelSerializer): + permissions_in_scope = serializers.SerializerMethodField() + business_areas = serializers.SerializerMethodField() + partner_roles = serializers.SerializerMethodField() + user_roles = serializers.SerializerMethodField() + + class Meta: + model = get_user_model() + fields = ( + "id", + "username", + "email", + "first_name", + "last_name", + "is_superuser", + "business_areas", + "permissions_in_scope", + "user_roles", + "partner_roles", + ) + + def get_business_areas(self, user: User) -> ReturnDict: + return UserBusinessAreaSerializer( + user.business_areas, many=True, context={"request": self.context.get("request", {})} + ).data + + @staticmethod + def get_partner_roles(user: User) -> ReturnDict: + role_ids = list(user.partner.role_assignments.order_by("business_area__slug").values_list("role_id", flat=True)) + return RoleSerializer(Role.objects.filter(id__in=role_ids), many=True).data + + @staticmethod + def get_user_roles(user: User) -> ReturnDict: + role_ids = list(user.role_assignments.order_by("business_area__slug").values_list("role_id", flat=True)) + return RoleSerializer(Role.objects.filter(id__in=role_ids), many=True).data + + def get_permissions_in_scope(self, user: User) -> set: + request = self.context.get("request", {}) + headers = request.headers if request else {} + program_id = get_program_id_from_headers(headers) + business_area_slug = headers.get("Business-Area", "") + return user.permissions_in_business_area(business_area_slug, program_id) diff --git a/src/hct_mis_api/apps/account/api/views.py b/src/hct_mis_api/apps/account/api/views.py new file mode 100644 index 0000000000..b48496a285 --- /dev/null +++ b/src/hct_mis_api/apps/account/api/views.py @@ -0,0 +1,20 @@ +from typing import TYPE_CHECKING, Any + +from rest_framework.exceptions import PermissionDenied +from rest_framework.response import Response +from rest_framework.views import APIView + +from hct_mis_api.apps.account.api.serializers import ProfileSerializer + +if TYPE_CHECKING: + from rest_framework.request import Request + + +class UserProfileView(APIView): + def get(self, request: "Request", *args: Any, **kwargs: Any) -> Response: + user = request.user + if not user.is_authenticated: + raise PermissionDenied("Permission Denied: User is not authenticated.") + + serializer = ProfileSerializer(user, context={"request": request}) + return Response(serializer.data) diff --git a/src/hct_mis_api/apps/account/authentication.py b/src/hct_mis_api/apps/account/authentication.py index 5c4841e18f..b07e514fc6 100644 --- a/src/hct_mis_api/apps/account/authentication.py +++ b/src/hct_mis_api/apps/account/authentication.py @@ -9,7 +9,7 @@ from social_core.pipeline import user as social_core_user from hct_mis_api.apps.account.microsoft_graph import MicrosoftGraphAPI -from hct_mis_api.apps.account.models import ACTIVE, Role, User, UserRole +from hct_mis_api.apps.account.models import ACTIVE, Role, RoleAssignment, User from hct_mis_api.apps.core.models import BusinessArea logger = logging.getLogger(__name__) @@ -80,7 +80,7 @@ def create_user( user.set_unusable_password() user.save() if business_area_code: - basic_user_role = UserRole() + basic_user_role = RoleAssignment() basic_user_role.role = Role.objects.filter(name="Basic User").first() basic_user_role.business_area = BusinessArea.objects.get(code=business_area_code) basic_user_role.user = user diff --git a/src/hct_mis_api/apps/account/caches.py b/src/hct_mis_api/apps/account/caches.py new file mode 100644 index 0000000000..90cf40bd50 --- /dev/null +++ b/src/hct_mis_api/apps/account/caches.py @@ -0,0 +1,15 @@ +from typing import Optional + +from hct_mis_api.apps.account.models import User +from hct_mis_api.apps.core.models import BusinessArea +from hct_mis_api.apps.program.models import Program + + +def get_user_permissions_version_key(user: "User") -> str: + return f"user:{str(user.id)}:version" + + +def get_user_permissions_cache_key( + user: "User", user_version: int, business_area: Optional["BusinessArea"], program: Optional["Program"] +) -> str: + return f"permissions:{str(user.id)}:{user_version}:{business_area.slug if business_area else 'None'}:{program.id if program else 'None'}" diff --git a/src/hct_mis_api/apps/account/celery_tasks.py b/src/hct_mis_api/apps/account/celery_tasks.py new file mode 100644 index 0000000000..916af9b3ec --- /dev/null +++ b/src/hct_mis_api/apps/account/celery_tasks.py @@ -0,0 +1,27 @@ +import datetime +import logging +from typing import Any + +from django.db.models import Q +from django.utils import timezone + +from hct_mis_api.apps.account.models import User +from hct_mis_api.apps.account.signals import _invalidate_user_permissions_cache +from hct_mis_api.apps.core.celery import app +from hct_mis_api.apps.utils.logs import log_start_and_end +from hct_mis_api.apps.utils.sentry import sentry_tags + +logger = logging.getLogger(__name__) + + +@app.task(bind=True, default_retry_delay=60, max_retries=3) +@log_start_and_end +@sentry_tags +def invalidate_permissions_cache_for_user_if_expired_role(self: Any) -> bool: + # Invalidate permissions cache for users with roles that expired a day before + day_ago = timezone.now() - datetime.timedelta(days=1) + users = User.objects.filter( + Q(role_assignments__expiry_date=day_ago.date()) | Q(partner__role_assignments__expiry_date=day_ago.date()) + ).distinct() + _invalidate_user_permissions_cache(users) + return True diff --git a/src/hct_mis_api/apps/account/export_users_xlsx.py b/src/hct_mis_api/apps/account/export_users_xlsx.py index 8517876e99..7f95469218 100644 --- a/src/hct_mis_api/apps/account/export_users_xlsx.py +++ b/src/hct_mis_api/apps/account/export_users_xlsx.py @@ -25,9 +25,9 @@ def value(self, user: User, business_area: str) -> str: return user.partner.name -class UserRoleField(GenericField): +class RoleAssignmentField(GenericField): def value(self, user: User, business_area: str) -> str: - all_roles = user.user_roles.filter(business_area__slug=business_area) + all_roles = user.role_assignments.filter(business_area__slug=business_area) return ", ".join([f"{role.business_area.name}-{role.role.name}" for role in all_roles]) @@ -39,7 +39,7 @@ class ExportUsersXlsx: "email": GenericField("email", "E-MAIL"), "status": GenericField("status", "ACCOUNT STATUS"), "partner": PartnerField("partner", "PARTNER"), - "user_roles": UserRoleField("user_roles", "USER ROLES"), + "user_roles": RoleAssignmentField("user_roles", "USER ROLES"), } ) @@ -61,7 +61,7 @@ def get_exported_users_file(self) -> Optional[Workbook]: users = ( User.objects.prefetch_related("user_roles") .select_related("partner") - .filter(is_superuser=False, user_roles__business_area__slug=self.business_area_slug) + .filter(is_superuser=False, role_assignments__business_area__slug=self.business_area_slug) ) if users.exists() is False: return None diff --git a/src/hct_mis_api/apps/account/filters.py b/src/hct_mis_api/apps/account/filters.py index 858c990e5e..b668ca397c 100644 --- a/src/hct_mis_api/apps/account/filters.py +++ b/src/hct_mis_api/apps/account/filters.py @@ -8,6 +8,7 @@ from hct_mis_api.apps.account.models import USER_STATUS_CHOICES, Partner, Role from hct_mis_api.apps.core.utils import CustomOrderingFilter, decode_id_string +from hct_mis_api.apps.program.models import Program if TYPE_CHECKING: from uuid import UUID @@ -66,11 +67,19 @@ def search_filter(self, qs: "QuerySet", name: str, value: str) -> "QuerySet[User return qs.filter(q_obj) def business_area_filter(self, qs: "QuerySet", name: str, value: str) -> "QuerySet[User]": - return qs.filter(Q(user_roles__business_area__slug=value) | Q(partner__business_areas__slug=value)) + return qs.filter( + Q(role_assignments__business_area__slug=value) | Q(partner__role_assignments__business_area__slug=value) + ) def program_filter(self, qs: "QuerySet", name: str, value: str) -> "QuerySet[User]": program_id = decode_id_string(value) - return qs.filter(partner__programs__id=program_id) + business_area = Program.objects.get(id=program_id).business_area + return qs.filter( + Q(partner__role_assignments__program__id=program_id) + | Q(partner__role_assignments__program=None, partner__role_assignments__business_area=business_area) + | Q(role_assignments__program__id=program_id) + | Q(role_assignments__program=None, role_assignments__business_area=business_area) + ) def partners_filter(self, qs: "QuerySet", name: str, values: List["UUID"]) -> "QuerySet[User]": q_obj = Q() @@ -83,10 +92,10 @@ def roles_filter(self, qs: "QuerySet", name: str, values: List) -> "QuerySet[Use q_obj = Q() for value in values: q_obj |= Q( - user_roles__role__id=value, - user_roles__business_area__slug=business_area_slug, + role_assignments__role__id=value, + role_assignments__business_area__slug=business_area_slug, ) | Q( - partner__business_area_partner_through__roles__id=value, - partner__business_areas__slug=business_area_slug, + partner__role_assignments__role__id=value, + partner__role_assignments__business_area__slug=business_area_slug, ) return qs.filter(q_obj) diff --git a/src/hct_mis_api/apps/account/fixtures.py b/src/hct_mis_api/apps/account/fixtures.py index d7939600dc..4393a1d95c 100644 --- a/src/hct_mis_api/apps/account/fixtures.py +++ b/src/hct_mis_api/apps/account/fixtures.py @@ -1,23 +1,37 @@ import random import time -from typing import Any +from typing import Any, List +from django.conf import settings from django.contrib.auth import get_user_model import factory from factory.django import DjangoModelFactory -from hct_mis_api.apps.account.models import Partner, Role, User, UserRole +from hct_mis_api.apps.account.models import ( + AdminAreaLimitedTo, + Partner, + Role, + RoleAssignment, + User, +) from hct_mis_api.apps.core.models import BusinessArea +from hct_mis_api.apps.program.fixtures import ProgramFactory class PartnerFactory(DjangoModelFactory): - name = "UNICEF" + name = settings.UNICEF_HQ_PARTNER class Meta: model = Partner django_get_or_create = ("name",) + @factory.lazy_attribute + def parent(self) -> Any: + if self.name == settings.UNICEF_HQ_PARTNER: + return PartnerFactory(name="UNICEF") + return None + class BusinessAreaFactory(DjangoModelFactory): name = factory.Sequence(lambda x: "BusinessArea{}".format(x)) @@ -64,11 +78,40 @@ class Meta: django_get_or_create = ("name", "subsystem") -class UserRoleFactory(DjangoModelFactory): - user = factory.SubFactory(UserFactory) +class RoleAssignmentFactory(DjangoModelFactory): role = factory.SubFactory(RoleFactory) business_area = factory.SubFactory(BusinessAreaFactory) + user = None + partner = None + + class Meta: + model = RoleAssignment + django_get_or_create = ("user", "partner", "role") + + @classmethod + def _create(cls, model_class: Any, *args: Any, **kwargs: Any) -> RoleAssignment: + partner = kwargs.get("partner") + user = kwargs.get("user") + if not user and not partner: + user = UserFactory() + kwargs["user"] = user + if partner: + partner.allowed_business_areas.add(kwargs["business_area"]) + return super()._create(model_class, *args, **kwargs) + + +class AdminAreaLimitedToFactory(DjangoModelFactory): + partner = factory.SubFactory(PartnerFactory) + program = factory.SubFactory(ProgramFactory) class Meta: - model = UserRole - django_get_or_create = ("user", "role") + model = AdminAreaLimitedTo + + @factory.post_generation + def areas(self, create: bool, extracted: List[Any], **kwargs: Any) -> None: + if not create: + return + + if extracted: + for area in extracted: + self.areas.add(area) diff --git a/src/hct_mis_api/apps/account/fixtures/data.json b/src/hct_mis_api/apps/account/fixtures/data.json index e2c350c346..81747c887e 100644 --- a/src/hct_mis_api/apps/account/fixtures/data.json +++ b/src/hct_mis_api/apps/account/fixtures/data.json @@ -1,19 +1,7 @@ [ { "model": "account.partner", - "pk": 1, - "fields": { - "name": "UNICEF", - "level": 0, - "lft": 1, - "rght": 2, - "tree_id": 1, - "is_un": true - } -}, -{ - "model": "account.partner", - "pk": 2, + "pk": 3, "fields": { "name": "UNHCR", "level": 0, @@ -28,7 +16,7 @@ }, { "model": "account.partner", - "pk": 3, + "pk": 4, "fields": { "name": "WFP", "is_un": true, @@ -43,17 +31,14 @@ }, { "model": "account.partner", - "pk": 4, + "pk": 5, "fields": { "name": "Default Empty Partner", "level": 0, "lft": 1, "rght": 2, "tree_id": 4, - "is_un": false, - "allowed_business_areas": [ - "c259b1a0-ae3a-494e-b343-f7c8eb060c68" - ] + "is_un": false } }, { @@ -70,7 +55,7 @@ "is_active": true, "date_joined": "2020-05-06 11:57:00-00:00", "status": "INVITED", - "partner": 1, + "partner": 2, "email": "root@root.com", "custom_fields": {}, "job_title": "", @@ -81,7 +66,7 @@ } }, { - "model": "account.userrole", + "model": "account.roleassignment", "pk": "bc46afbd-a0b7-48f3-abf9-8a4c4b033092", "fields": { "created_at": "2022-03-30 09:05:24.581-00:00", @@ -92,7 +77,7 @@ } }, { - "model": "account.userrole", + "model": "account.roleassignment", "pk": "ef880fed-cf92-4f97-b346-cc25fee1b4cd", "fields": { "created_at": "2022-03-30 09:08:03.635-00:00", @@ -322,17 +307,6 @@ "permissions": "[\"DASHBOARD_VIEW_COUNTRY\", \"DASHBOARD_EXPORT\", \"RDI_VIEW_LIST\", \"RDI_VIEW_DETAILS\", \"POPULATION_VIEW_HOUSEHOLDS_LIST\", \"POPULATION_VIEW_INDIVIDUALS_LIST\", \"PROGRAMME_VIEW_LIST_AND_DETAILS\", \"TARGETING_VIEW_LIST\", \"TARGETING_VIEW_DETAILS\", \"PAYMENT_VERIFICATION_VIEW_LIST\", \"PAYMENT_VERIFICATION_VIEW_DETAILS\", \"REPORTING_EXPORT\", \"USER_MANAGEMENT_VIEW_LIST\", \"ACTIVITY_LOG_VIEW\", \"ACTIVITY_LOG_DOWNLOAD\"]" } }, -{ - "model": "account.role", - "pk": "e9e8c91a-c711-45b7-be8c-501c14d46330", - "fields": { - "created_at": "2022-03-30 09:05:24.480-00:00", - "updated_at": "2022-03-30 09:05:24.480-00:00", - "name": "Role with all permissions", - "subsystem": "HOPE", - "permissions": "[\"RDI_VIEW_LIST\", \"RDI_VIEW_DETAILS\", \"RDI_IMPORT_DATA\", \"RDI_RERUN_DEDUPE\", \"RDI_MERGE_IMPORT\", \"RDI_REFUSE_IMPORT\", \"POPULATION_VIEW_HOUSEHOLDS_LIST\", \"POPULATION_VIEW_HOUSEHOLDS_DETAILS\", \"POPULATION_VIEW_INDIVIDUALS_LIST\", \"POPULATION_VIEW_INDIVIDUALS_DETAILS\", \"PROGRAMME_VIEW_LIST_AND_DETAILS\", \"PROGRAMME_MANAGEMENT_VIEW\", \"PROGRAMME_DUPLICATE\", \"PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS\", \"PROGRAMME_CREATE\", \"PROGRAMME_UPDATE\", \"PROGRAMME_REMOVE\", \"PROGRAMME_ACTIVATE\", \"PROGRAMME_FINISH\", \"TARGETING_VIEW_LIST\", \"TARGETING_VIEW_DETAILS\", \"TARGETING_CREATE\", \"TARGETING_UPDATE\", \"TARGETING_DUPLICATE\", \"TARGETING_REMOVE\", \"TARGETING_LOCK\", \"TARGETING_UNLOCK\", \"TARGETING_SEND\", \"PAYMENT_VERIFICATION_VIEW_LIST\", \"PAYMENT_VERIFICATION_VIEW_DETAILS\", \"PAYMENT_VERIFICATION_CREATE\", \"PAYMENT_VERIFICATION_UPDATE\", \"PAYMENT_VERIFICATION_ACTIVATE\", \"PAYMENT_VERIFICATION_DISCARD\", \"PAYMENT_VERIFICATION_FINISH\", \"PAYMENT_VERIFICATION_EXPORT\", \"PAYMENT_VERIFICATION_IMPORT\", \"PAYMENT_VERIFICATION_VERIFY\", \"PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS\", \"PAYMENT_VERIFICATION_DELETE\", \"PAYMENT_VERIFICATION_MARK_AS_FAILED\", \"USER_MANAGEMENT_VIEW_LIST\", \"DASHBOARD_VIEW_COUNTRY\", \"DASHBOARD_EXPORT\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_LIST_SENSITIVE\", \"GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER\", \"GRIEVANCES_CREATE\", \"GRIEVANCES_UPDATE\", \"GRIEVANCES_UPDATE_AS_CREATOR\", \"GRIEVANCES_UPDATE_AS_OWNER\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER\", \"GRIEVANCES_ADD_NOTE\", \"GRIEVANCES_ADD_NOTE_AS_CREATOR\", \"GRIEVANCES_ADD_NOTE_AS_OWNER\", \"GRIEVANCES_SET_IN_PROGRESS\", \"GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR\", \"GRIEVANCES_SET_IN_PROGRESS_AS_OWNER\", \"GRIEVANCES_SET_ON_HOLD\", \"GRIEVANCES_SET_ON_HOLD_AS_CREATOR\", \"GRIEVANCES_SET_ON_HOLD_AS_OWNER\", \"GRIEVANCES_SEND_FOR_APPROVAL\", \"GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR\", \"GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER\", \"GRIEVANCES_SEND_BACK\", \"GRIEVANCES_SEND_BACK_AS_CREATOR\", \"GRIEVANCES_SEND_BACK_AS_OWNER\", \"GRIEVANCES_APPROVE_DATA_CHANGE\", \"GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR\", \"GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER\", \"GRIEVANCE_ASSIGN\", \"REPORTING_EXPORT\", \"ALL_VIEW_PII_DATA_ON_LISTS\", \"ACTIVITY_LOG_VIEW\", \"ACTIVITY_LOG_DOWNLOAD\", \"PM_CREATE\", \"PM_VIEW_DETAILS\", \"PM_VIEW_LIST\", \"PM_EXPORT_XLSX_FOR_FSP\", \"PM_DOWNLOAD_XLSX_FOR_FSP\", \"PM_SENDING_PAYMENT_PLAN_TO_FSP\", \"PM_MARK_PAYMENT_AS_FAILED\", \"PM_EXPORT_PDF_SUMMARY\", \"PM_DOWNLOAD_FSP_AUTH_CODE\", \"PM_SEND_XLSX_PASSWORD\", \"PAYMENT_VERIFICATION_INVALID\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER\", \"GRIEVANCE_DOCUMENTS_UPLOAD\", \"PM_IMPORT_XLSX_WITH_ENTITLEMENTS\", \"PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS\", \"PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE\", \"PM_LOCK_AND_UNLOCK\", \"PM_LOCK_AND_UNLOCK_FSP\", \"PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP\", \"PM_SEND_FOR_APPROVAL\", \"PM_ACCEPTANCE_PROCESS_APPROVE\", \"PM_ACCEPTANCE_PROCESS_AUTHORIZE\", \"PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW\", \"PM_IMPORT_XLSX_WITH_RECONCILIATION\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR\", \"GRIEVANCES_FEEDBACK_VIEW_CREATE\", \"GRIEVANCES_FEEDBACK_VIEW_LIST\", \"GRIEVANCES_FEEDBACK_VIEW_DETAILS\", \"GRIEVANCES_FEEDBACK_VIEW_UPDATE\", \"ACCOUNTABILITY_SURVEY_VIEW_CREATE\", \"ACCOUNTABILITY_SURVEY_VIEW_LIST\", \"ACCOUNTABILITY_SURVEY_VIEW_DETAILS\", \"GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE\", \"CAN_ADD_BUSINESS_AREA_TO_PARTNER\", \"GRIEVANCES_CROSS_AREA_FILTER\", \"PAYMENT_VIEW_LIST_MANAGERIAL\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER\", \"PAYMENT_VIEW_LIST_MANAGERIAL\", \"PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED\", \"PDU_VIEW_LIST_AND_DETAILS\", \"PDU_TEMPLATE_CREATE\", \"PDU_TEMPLATE_DOWNLOAD\", \"PDU_UPLOAD\", \"GEO_VIEW_LIST\", \"PM_PROGRAMME_CYCLE_VIEW_LIST\", \"PM_PROGRAMME_CYCLE_VIEW_DETAILS\", \"PM_PROGRAMME_CYCLE_CREATE\", \"PM_PROGRAMME_CYCLE_UPDATE\", \"PM_PROGRAMME_CYCLE_DELETE\", \"PM_UPLOAD_SUPPORTING_DOCUMENT\", \"PM_DOWNLOAD_SUPPORTING_DOCUMENT\", \"PM_DELETE_SUPPORTING_DOCUMENT\"]" - } -}, { "model": "account.role", "pk": "f228a833-ada6-4012-bf08-9f914baa3f04", diff --git a/src/hct_mis_api/apps/account/fixtures/initial.json b/src/hct_mis_api/apps/account/fixtures/initial.json new file mode 100644 index 0000000000..b28668c5b8 --- /dev/null +++ b/src/hct_mis_api/apps/account/fixtures/initial.json @@ -0,0 +1,38 @@ +[ +{ + "model": "account.partner", + "pk": 1, + "fields": { + "name": "UNICEF", + "level": 0, + "lft": 1, + "rght": 4, + "tree_id": 1, + "is_un": true + } +}, +{ + "model": "account.partner", + "pk": 2, + "fields": { + "name": "UNICEF HQ", + "level": 1, + "lft": 2, + "rght": 3, + "tree_id": 1, + "is_un": true, + "parent": 1 + } +}, +{ + "model": "account.role", + "pk": "e9e8c91a-c711-45b7-be8c-501c14d46330", + "fields": { + "created_at": "2022-03-30 09:05:24.480-00:00", + "updated_at": "2022-03-30 09:05:24.480-00:00", + "name": "Role with all permissions", + "subsystem": "HOPE", + "permissions": "[\"RDI_VIEW_LIST\", \"RDI_VIEW_DETAILS\", \"RDI_IMPORT_DATA\", \"RDI_RERUN_DEDUPE\", \"RDI_MERGE_IMPORT\", \"RDI_REFUSE_IMPORT\", \"POPULATION_VIEW_HOUSEHOLDS_LIST\", \"POPULATION_VIEW_HOUSEHOLDS_DETAILS\", \"POPULATION_VIEW_INDIVIDUALS_LIST\", \"POPULATION_VIEW_INDIVIDUALS_DETAILS\", \"PROGRAMME_VIEW_LIST_AND_DETAILS\", \"PROGRAMME_MANAGEMENT_VIEW\", \"PROGRAMME_DUPLICATE\", \"PROGRAMME_VIEW_PAYMENT_RECORD_DETAILS\", \"PROGRAMME_CREATE\", \"PROGRAMME_UPDATE\", \"PROGRAMME_REMOVE\", \"PROGRAMME_ACTIVATE\", \"PROGRAMME_FINISH\", \"TARGETING_VIEW_LIST\", \"TARGETING_VIEW_DETAILS\", \"TARGETING_CREATE\", \"TARGETING_UPDATE\", \"TARGETING_DUPLICATE\", \"TARGETING_REMOVE\", \"TARGETING_LOCK\", \"TARGETING_UNLOCK\", \"TARGETING_SEND\", \"PAYMENT_VERIFICATION_VIEW_LIST\", \"PAYMENT_VERIFICATION_VIEW_DETAILS\", \"PAYMENT_VERIFICATION_CREATE\", \"PAYMENT_VERIFICATION_UPDATE\", \"PAYMENT_VERIFICATION_ACTIVATE\", \"PAYMENT_VERIFICATION_DISCARD\", \"PAYMENT_VERIFICATION_FINISH\", \"PAYMENT_VERIFICATION_EXPORT\", \"PAYMENT_VERIFICATION_IMPORT\", \"PAYMENT_VERIFICATION_VERIFY\", \"PAYMENT_VERIFICATION_VIEW_PAYMENT_RECORD_DETAILS\", \"PAYMENT_VERIFICATION_DELETE\", \"PAYMENT_VERIFICATION_MARK_AS_FAILED\", \"USER_MANAGEMENT_VIEW_LIST\", \"DASHBOARD_VIEW_COUNTRY\", \"DASHBOARD_EXPORT\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_LIST_SENSITIVE\", \"GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_CREATOR\", \"GRIEVANCES_VIEW_DETAILS_SENSITIVE_AS_OWNER\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_CREATOR\", \"GRIEVANCES_VIEW_HOUSEHOLD_DETAILS_AS_OWNER\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_CREATOR\", \"GRIEVANCES_VIEW_INDIVIDUALS_DETAILS_AS_OWNER\", \"GRIEVANCES_CREATE\", \"GRIEVANCES_UPDATE\", \"GRIEVANCES_UPDATE_AS_CREATOR\", \"GRIEVANCES_UPDATE_AS_OWNER\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_CREATOR\", \"GRIEVANCES_UPDATE_REQUESTED_DATA_CHANGE_AS_OWNER\", \"GRIEVANCES_ADD_NOTE\", \"GRIEVANCES_ADD_NOTE_AS_CREATOR\", \"GRIEVANCES_ADD_NOTE_AS_OWNER\", \"GRIEVANCES_SET_IN_PROGRESS\", \"GRIEVANCES_SET_IN_PROGRESS_AS_CREATOR\", \"GRIEVANCES_SET_IN_PROGRESS_AS_OWNER\", \"GRIEVANCES_SET_ON_HOLD\", \"GRIEVANCES_SET_ON_HOLD_AS_CREATOR\", \"GRIEVANCES_SET_ON_HOLD_AS_OWNER\", \"GRIEVANCES_SEND_FOR_APPROVAL\", \"GRIEVANCES_SEND_FOR_APPROVAL_AS_CREATOR\", \"GRIEVANCES_SEND_FOR_APPROVAL_AS_OWNER\", \"GRIEVANCES_SEND_BACK\", \"GRIEVANCES_SEND_BACK_AS_CREATOR\", \"GRIEVANCES_SEND_BACK_AS_OWNER\", \"GRIEVANCES_APPROVE_DATA_CHANGE\", \"GRIEVANCES_APPROVE_DATA_CHANGE_AS_CREATOR\", \"GRIEVANCES_APPROVE_DATA_CHANGE_AS_OWNER\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_CREATOR\", \"GRIEVANCES_CLOSE_TICKET_EXCLUDING_FEEDBACK_AS_OWNER\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_CREATOR\", \"GRIEVANCES_CLOSE_TICKET_FEEDBACK_AS_OWNER\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_CREATOR\", \"GRIEVANCES_APPROVE_FLAG_AND_DEDUPE_AS_OWNER\", \"GRIEVANCE_ASSIGN\", \"REPORTING_EXPORT\", \"ALL_VIEW_PII_DATA_ON_LISTS\", \"ACTIVITY_LOG_VIEW\", \"ACTIVITY_LOG_DOWNLOAD\", \"PM_CREATE\", \"PM_VIEW_DETAILS\", \"PM_VIEW_LIST\", \"PM_EXPORT_XLSX_FOR_FSP\", \"PM_DOWNLOAD_XLSX_FOR_FSP\", \"PM_SENDING_PAYMENT_PLAN_TO_FSP\", \"PM_MARK_PAYMENT_AS_FAILED\", \"PM_EXPORT_PDF_SUMMARY\", \"PM_DOWNLOAD_FSP_AUTH_CODE\", \"PM_SEND_XLSX_PASSWORD\", \"PAYMENT_VERIFICATION_INVALID\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_CREATOR\", \"GRIEVANCES_APPROVE_PAYMENT_VERIFICATION_AS_OWNER\", \"GRIEVANCE_DOCUMENTS_UPLOAD\", \"PM_IMPORT_XLSX_WITH_ENTITLEMENTS\", \"PM_APPLY_RULE_ENGINE_FORMULA_WITH_ENTITLEMENTS\", \"PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE\", \"PM_LOCK_AND_UNLOCK\", \"PM_LOCK_AND_UNLOCK_FSP\", \"PM_EXCLUDE_BENEFICIARIES_FROM_FOLLOW_UP_PP\", \"PM_SEND_FOR_APPROVAL\", \"PM_ACCEPTANCE_PROCESS_APPROVE\", \"PM_ACCEPTANCE_PROCESS_AUTHORIZE\", \"PM_ACCEPTANCE_PROCESS_FINANCIAL_REVIEW\", \"PM_IMPORT_XLSX_WITH_RECONCILIATION\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_LIST\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_CREATE\", \"ACCOUNTABILITY_COMMUNICATION_MESSAGE_VIEW_DETAILS_AS_CREATOR\", \"GRIEVANCES_FEEDBACK_VIEW_CREATE\", \"GRIEVANCES_FEEDBACK_VIEW_LIST\", \"GRIEVANCES_FEEDBACK_VIEW_DETAILS\", \"GRIEVANCES_FEEDBACK_VIEW_UPDATE\", \"ACCOUNTABILITY_SURVEY_VIEW_CREATE\", \"ACCOUNTABILITY_SURVEY_VIEW_LIST\", \"ACCOUNTABILITY_SURVEY_VIEW_DETAILS\", \"GRIEVANCES_FEEDBACK_MESSAGE_VIEW_CREATE\", \"CAN_ADD_BUSINESS_AREA_TO_PARTNER\", \"GRIEVANCES_CROSS_AREA_FILTER\", \"PAYMENT_VIEW_LIST_MANAGERIAL\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_CREATOR\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_OWNER\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_APPROVER\", \"PAYMENT_VIEW_LIST_MANAGERIAL_AS_AUTHORIZER\", \"PAYMENT_VIEW_LIST_MANAGERIAL\", \"PAYMENT_VIEW_LIST_MANAGERIAL_RELEASED\", \"PDU_VIEW_LIST_AND_DETAILS\", \"PDU_TEMPLATE_CREATE\", \"PDU_TEMPLATE_DOWNLOAD\", \"PDU_UPLOAD\", \"GEO_VIEW_LIST\", \"PM_PROGRAMME_CYCLE_VIEW_LIST\", \"PM_PROGRAMME_CYCLE_VIEW_DETAILS\", \"PM_PROGRAMME_CYCLE_CREATE\", \"PM_PROGRAMME_CYCLE_UPDATE\", \"PM_PROGRAMME_CYCLE_DELETE\", \"PM_UPLOAD_SUPPORTING_DOCUMENT\", \"PM_DOWNLOAD_SUPPORTING_DOCUMENT\", \"PM_DELETE_SUPPORTING_DOCUMENT\"]" + } +} +] \ No newline at end of file diff --git a/src/hct_mis_api/apps/account/migrations/0008_migration.py b/src/hct_mis_api/apps/account/migrations/0008_migration.py new file mode 100644 index 0000000000..32baf66451 --- /dev/null +++ b/src/hct_mis_api/apps/account/migrations/0008_migration.py @@ -0,0 +1,125 @@ +# Generated by Django 3.2.25 on 2025-02-20 13:40 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import model_utils.fields +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('geo', '0002_migration'), + ('program', '0003_migration'), + ('auth', '0012_alter_user_first_name_max_length'), + ('core', '0007_migration'), + ('account', '0007_migration'), + ] + + operations = [ + migrations.RenameModel( + old_name="UserRole", + new_name="RoleAssignment", + ), + migrations.CreateModel( + name='AdminAreaLimitedTo', + fields=[ + ('id', model_utils.fields.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)), + ('updated_at', models.DateTimeField(auto_now=True, db_index=True)), + ], + ), + migrations.AlterModelOptions( + name='user', + options={'permissions': (('can_load_from_ad', 'Can load users from ActiveDirectory'), ('can_sync_with_ad', 'Can synchronise user with ActiveDirectory'), ('can_create_kobo_user', 'Can create users in Kobo'), ('can_import_from_kobo', 'Can import and sync users from Kobo'), ('can_upload_to_kobo', 'Can upload CSV file to Kobo'), ('can_debug', 'Can access debug information'), ('can_inspect', 'Can inspect objects'), ('quick_links', 'Can see quick links in admin'), ('restrict_help_desk', 'Limit fields to be editable for help desk'), ('can_reindex_programs', 'Can reindex programs'), ('can_add_business_area_to_partner', 'Can add business area to partner'), ('can_change_allowed_partners', 'Can change allowed partners'), ('can_change_area_limits', 'Can change area limits'), ('can_import_fixture', 'Can import fixture'))}, + ), + migrations.AddField( + model_name='role', + name='is_available_for_partner', + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name='role', + name='is_visible_on_ui', + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name='roleassignment', + name='group', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to='auth.group'), + ), + migrations.AddField( + model_name='roleassignment', + name='partner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to='account.partner'), + ), + migrations.AddField( + model_name='roleassignment', + name='program', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to='program.program'), + ), + migrations.AlterField( + model_name='roleassignment', + name='business_area', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to='core.businessarea'), + ), + migrations.AlterField( + model_name='roleassignment', + name='expiry_date', + field=models.DateField(blank=True, help_text='After expiry date this Role Assignment will be inactive.', null=True), + ), + migrations.AlterField( + model_name='roleassignment', + name='role', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to='account.role'), + ), + migrations.AlterField( + model_name='roleassignment', + name='user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='role_assignments', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterUniqueTogether( + name='roleassignment', + unique_together=set(), + ), + migrations.AddConstraint( + model_name='roleassignment', + constraint=models.CheckConstraint(check=models.Q(models.Q(('partner__isnull', True), ('user__isnull', False)), models.Q(('partner__isnull', False), ('user__isnull', True)), _connector='OR'), name='user_or_partner_not_both'), + ), + migrations.AddConstraint( + model_name='roleassignment', + constraint=models.UniqueConstraint(condition=models.Q(('user__isnull', False)), fields=('user', 'role', 'business_area', 'program'), name='unique_user_role_business_area_program'), + ), + migrations.AddConstraint( + model_name='roleassignment', + constraint=models.UniqueConstraint(condition=models.Q(('program__isnull', True), ('user__isnull', False)), fields=('user', 'role', 'business_area'), name='unique_user_role_business_area_no_program'), + ), + migrations.AddConstraint( + model_name='roleassignment', + constraint=models.UniqueConstraint(condition=models.Q(('partner__isnull', False)), fields=('partner', 'role', 'business_area', 'program'), name='unique_partner_role_business_area_program'), + ), + migrations.AddConstraint( + model_name='roleassignment', + constraint=models.UniqueConstraint(condition=models.Q(('partner__isnull', False), ('program__isnull', True)), fields=('partner', 'role', 'business_area'), name='unique_partner_role_business_area_no_program'), + ), + migrations.AddField( + model_name='adminarealimitedto', + name='areas', + field=models.ManyToManyField(blank=True, related_name='admin_area_limits', to='geo.Area'), + ), + migrations.AddField( + model_name='adminarealimitedto', + name='partner', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='admin_area_limits', to='account.partner'), + ), + migrations.AddField( + model_name='adminarealimitedto', + name='program', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='admin_area_limits', to='program.program'), + ), + migrations.AlterUniqueTogether( + name='adminarealimitedto', + unique_together={('partner', 'program')}, + ), + ] diff --git a/src/hct_mis_api/apps/account/migrations/0009_migration.py b/src/hct_mis_api/apps/account/migrations/0009_migration.py new file mode 100644 index 0000000000..bc8b250b95 --- /dev/null +++ b/src/hct_mis_api/apps/account/migrations/0009_migration.py @@ -0,0 +1,338 @@ +# Generated by Django 3.2.25 on 2025-01-22 18:59 +from django.db import migrations + +from django.conf import settings +from django.db.models import Count, Q +from django.utils import timezone + +from hct_mis_api.apps.account.models import Role +from hct_mis_api.apps.account.permissions import ( + DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER, +) +from mptt import register + + +BATCH_SIZE = 1000 +BATCH_SIZE_SMALL = 20 + + +def create_constant_objects(apps, schema_editor): + """ + Create constant objects for the migration. This is necessary for tests but already present on all the environments. + """ + Role = apps.get_model("account", "Role") + Partner = apps.get_model("account", "Partner") + register(Partner) + + Role.objects.get_or_create( + name="Role with all permissions", + defaults={ + "is_visible_on_ui": False, + "is_available_for_partner": True, + "permissions": [], + } + ) + Partner.objects.get_or_create(name="UNICEF") + + +def migrate_user_roles(apps, schema_editor): + """ + Handle migration of user roles. + UserRole model was replaced with RoleAssignment model, which includes a program field. + After model update, existing UserRoles would have program=null, granting users access to all programs by default. + This migration will fetch the programs for specific Business Areas from UserRole + and create RoleAssignment entries for each program to preserve the original access. + """ + RoleAssignment = apps.get_model("account", "RoleAssignment") + ProgramPartnerThrough = apps.get_model("program", "ProgramPartnerThrough") + + expiration_time = timezone.now() + + # do not change UserRoles for Global as it can stay with program=None + user_roles = ( + RoleAssignment.objects.filter(user__isnull=False, program__isnull=True) + .exclude(business_area__slug="global") + .select_related("user__partner", "business_area") + ) + + + program_access_mapping = { + (partner_id, business_area_id): list( + ProgramPartnerThrough.objects.filter( + partner_id=partner_id, program__business_area_id=business_area_id + ).values_list("program_id", flat=True) + ) + for partner_id, business_area_id in user_roles.values_list("user__partner_id", "business_area_id").distinct() + } + user_roles_ids = list(user_roles.values_list("id", flat=True)) + user_roles_count = len(user_roles_ids) + + for batch_start in range(0, user_roles_count, BATCH_SIZE): + new_assignments = [] + updated_roles = [] + batch_end = batch_start + BATCH_SIZE + batched_user_roles_ids = user_roles_ids[batch_start:batch_end] + batched_user_roles = list( + RoleAssignment.objects.filter( + id__in=batched_user_roles_ids + ).select_related( + "user", + "user__partner", + "business_area", + ) + ) + for user_role in batched_user_roles: + user = user_role.user + partner = user.partner + business_area = user_role.business_area + + programs = program_access_mapping.get((partner.id, business_area.id), []) if partner else [] + + if programs: + user_role.program_id = programs[0] + updated_roles.append(user_role) + new_assignments.extend( + RoleAssignment( + user=user, + partner=None, + role=user_role.role, + business_area=business_area, + program_id=program, + expiry_date=user_role.expiry_date, + ) + for program in programs[1:] + ) + else: + # If user has no partner + # or their partner does not have access to any program in the UserRole's Business Area, + # make the user role inactive. + # In another case, the user would gain access to all programs. + user_role.expiry_date = expiration_time + updated_roles.append(user_role) + + if updated_roles: + RoleAssignment.objects.bulk_update(updated_roles, ["program", "expiry_date"]) + if new_assignments: + RoleAssignment.objects.bulk_create(new_assignments) + + +def migrate_partner_roles_and_access(apps, schema_editor): + """ + Handle migration of partner roles and access. + ProgramPartnerThrough and BusinessAreaPartnerThrough models need to be migrated into RoleAssignment model. + For each combination of role in the BusinessAreaPartnerThrough and a program in the ProgramPartnerThrough, + that partner has access to within the BA of the role -> the RoleAssignment entry needs to be created. + + Additionally, area access defined on areas filed in ProgramPartnerThrough needs to be moved to + AdminAreaLimitedTo model and the logic needs changing - create records in the AdminAreaLimitedTo only + if this is NOT a full-area-access - so if there are area limits applied. + """ + RoleAssignment = apps.get_model("account", "RoleAssignment") + ProgramPartnerThrough = apps.get_model("program", "ProgramPartnerThrough") + BusinessAreaPartnerThrough = apps.get_model("core", "BusinessAreaPartnerThrough") + AdminAreaLimitedTo = apps.get_model("account", "AdminAreaLimitedTo") + Partner = apps.get_model("account", "Partner") + register(Partner) + + # do not create RoleAssignments for partners that are parents or UNICEF + partner_roles = ( + BusinessAreaPartnerThrough.objects.exclude( + Q(partner_id__in=Partner.objects.filter(parent__isnull=False).values_list("parent_id", flat=True)) + | Q(partner__name="UNICEF") + ) + .select_related("partner", "business_area") + ) + + program_access_mapping = { + (partner_id, business_area_id): list( + ProgramPartnerThrough.objects.filter( + partner_id=partner_id, program__business_area_id=business_area_id + ).values_list("program_id", flat=True) + ) + for partner_id, business_area_id in partner_roles.values_list("partner_id", "business_area_id").distinct() + } + + partner_roles_ids = list(partner_roles.values_list("id", flat=True)) + partner_roles_count = len(partner_roles_ids) + + for batch_start in range(0, partner_roles_count, BATCH_SIZE): + new_assignments = [] + batch_end = batch_start + BATCH_SIZE + batched_partner_roles_ids = partner_roles_ids[batch_start:batch_end] + batched_partner_roles = list( + BusinessAreaPartnerThrough.objects.filter( + id__in=batched_partner_roles_ids + ) + .select_related("partner", "business_area") + .prefetch_related("roles") + ) + + for partner_role in batched_partner_roles: + partner = partner_role.partner + business_area = partner_role.business_area + roles = partner_role.roles.all() + + programs = program_access_mapping.get((partner.id, business_area.id), []) + + # Create RoleAssignments only if the partner has access to any program in the Business Area + # of the BusinessAreaPartnerThrough + if programs: + partner.allowed_business_areas.add(business_area) + new_assignments.extend( + RoleAssignment(user=None, partner=partner, role=role, business_area=business_area, program_id=program) + for role in roles + for program in programs + ) + + if new_assignments: + RoleAssignment.objects.bulk_create(new_assignments) + + # area limits - only for non-full-area-access; do not create records for partners that are parents + area_access = ( + ProgramPartnerThrough.objects.filter(full_area_access=False) + .exclude(partner_id__in=Partner.objects.filter(parent__isnull=False).values_list("parent_id", flat=True)) + ) + + area_access_ids = list(area_access.values_list("id", flat=True)) + area_access_count = len(area_access_ids) + + for batch_start in range(0, area_access_count, BATCH_SIZE_SMALL): + new_area_limits = [] + new_area_limit_through = [] + batch_end = batch_start + BATCH_SIZE_SMALL + + batched_area_access_ids = area_access_ids[batch_start:batch_end] + batched_area_access = list( + ProgramPartnerThrough.objects.filter( + id__in=batched_area_access_ids + ) + .select_related("partner", "program") + .prefetch_related("areas") + ) + + for access in batched_area_access: + new_area_limits.append(AdminAreaLimitedTo(partner=access.partner, program=access.program)) + + if new_area_limits: + AdminAreaLimitedTo.objects.bulk_create(new_area_limits) + + for new_area_limit, areas in zip(new_area_limits, [access.areas.all() for access in batched_area_access]): + for area in areas: + new_area_limit_through.append( + AdminAreaLimitedTo.areas.through(adminarealimitedto_id=new_area_limit.id, area_id=area.id) + ) + if new_area_limit_through: + AdminAreaLimitedTo.areas.through.objects.bulk_create(new_area_limit_through) + + +def migrate_unicef_partners(apps, schema_editor): + """ + Handle migration of UNICEF partner into UNICEF HQ and UNICEF Partners per BusinessArea. + UNICEF partner will become parent Partner for UNICEF HQ and UNICEF Partners per BusinessArea. + + UNICEF HQ will hold "Role with all permissions" for all Business Areas (with program=None so whole BA access) + UNICEF Partners per BusinessArea will hold role with permissions specified in DEFAULT_PERMISSIONS_IS_UNICEF_PARTNER + within the Business Area specific for them. Within this BA they will have access to all programs. + + Users currently assigned to UNICEF partner will be assigned to UNICEF HQ and UNICEF Partners per BusinessArea based on their roles. + If user holds roles in multiple Business Areas, they will be assigned to UNICEF HQ. + """ + RoleAssignment = apps.get_model("account", "RoleAssignment") + Partner = apps.get_model("account", "Partner") + BusinessArea = apps.get_model("core", "BusinessArea") + User = apps.get_model("account", "User") + register(Partner) + + new_assignments = [] + + unicef_partner = Partner.objects.filter(name="UNICEF").first() + + # update Role with all permissions with is_available_for_partner=False + role_with_all_permissions = Role.objects.get(name="Role with all permissions") + role_with_all_permissions.is_available_for_partner = False + role_with_all_permissions.save() + + role_for_unicef_subpartners, _ = Role.objects.get_or_create( + name="Role for UNICEF Partners", + is_visible_on_ui=False, + is_available_for_partner=False, + defaults={"permissions": DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER}, + ) + role_for_unicef_subpartners.refresh_from_db() + + unicef_hq, _ = Partner.objects.get_or_create(name=settings.UNICEF_HQ_PARTNER) + unicef_hq.allowed_business_areas.set(BusinessArea.objects.all()) + + for business_area in BusinessArea.objects.exclude(slug="global"): + unicef_subpartner , _ = Partner.objects.get_or_create( + name=f"UNICEF Partner for {business_area.slug}" + ) + unicef_subpartner.allowed_business_areas.add(business_area) + + new_assignments.append( + RoleAssignment( + user=None, + partner=unicef_subpartner, + role_id=role_for_unicef_subpartners.id, + business_area=business_area, + program=None, + ) + ) + + new_assignments.append( + RoleAssignment( + user=None, + partner=unicef_hq, + role_id=role_with_all_permissions.id, + business_area=business_area, + program=None, + ) + ) + + if new_assignments: + RoleAssignment.objects.bulk_create(new_assignments) + + # handle UNICEF users + + # UNICEF users with no roles or role only in GLOBAL will be assigned to default empty partner + empty_partner, _ = Partner.objects.get_or_create(name=settings.DEFAULT_EMPTY_PARTNER) + User.objects.filter(partner=unicef_partner).annotate( + ba_count=Count("role_assignments__business_area", distinct=True) + ).filter(Q(ba_count=0) | Q(ba_count=1, role_assignments__business_area__slug="global")).update(partner=empty_partner) + + # UNICEF users with roles in single Business Area will be assigned to UNICEF Sub-partner for that Business Area + unicef_users_in_single_ba = ( + User.objects.filter(partner=unicef_partner) + .annotate(ba_count=Count("role_assignments__business_area", distinct=True)) + .filter(Q(ba_count=1) | (Q(role_assignments__business_area__slug="global") & Q(ba_count=2))) + ) + + unicef_subpartners = { + ba.slug: Partner.objects.get(name=f"UNICEF Partner for {ba.slug}") for ba in BusinessArea.objects.exclude(slug="global") + } + for ba in RoleAssignment.objects.filter(user__in=unicef_users_in_single_ba).exclude(business_area__slug="global").values_list("business_area__slug", flat=True).distinct(): + unicef_users = unicef_users_in_single_ba.filter(role_assignments__business_area__slug=ba) + unicef_users.update(partner=unicef_subpartners[ba]) + + unicef_subpartners_ids = [unicef_subpartner.id for unicef_subpartner in unicef_subpartners.values()] + Partner.objects.filter(id__in=[unicef_hq.id, *unicef_subpartners_ids]).update(parent=unicef_partner) + + # UNICEF users with roles in multiple Business Areas will be assigned to UNICEF HQ + User.objects.filter(partner=unicef_partner).annotate( + ba_count=Count("role_assignments__business_area", distinct=True) + ).filter(ba_count__gt=1).update(partner=unicef_hq) + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0008_migration'), + ] + + operations = [ + migrations.RunPython(create_constant_objects, reverse_code=migrations.RunPython.noop), + migrations.RunPython(migrate_user_roles, reverse_code=migrations.RunPython.noop), + migrations.RunPython(migrate_partner_roles_and_access, reverse_code=migrations.RunPython.noop), + migrations.RunPython(migrate_unicef_partners, reverse_code=migrations.RunPython.noop), + ] + diff --git a/src/hct_mis_api/apps/account/models.py b/src/hct_mis_api/apps/account/models.py index 78a22b23e0..44fcf0be67 100644 --- a/src/hct_mis_api/apps/account/models.py +++ b/src/hct_mis_api/apps/account/models.py @@ -6,7 +6,7 @@ from django import forms from django.conf import settings from django.contrib.admin.widgets import FilteredSelectMultiple -from django.contrib.auth.models import AbstractUser, Group +from django.contrib.auth.models import AbstractUser, Group, Permission from django.contrib.postgres.fields import ArrayField, CICharField from django.core.exceptions import ValidationError from django.core.validators import ( @@ -23,13 +23,10 @@ from natural_keys import NaturalKeyModel from hct_mis_api.apps.account.fields import ChoiceArrayField -from hct_mis_api.apps.account.permissions import ( - DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER, - Permissions, -) +from hct_mis_api.apps.account.permissions import Permissions from hct_mis_api.apps.account.utils import test_conditional from hct_mis_api.apps.core.mixins import LimitBusinessAreaModelMixin -from hct_mis_api.apps.core.models import BusinessArea, BusinessAreaPartnerThrough +from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.geo.models import Area from hct_mis_api.apps.utils.mailjet import MailjetClient from hct_mis_api.apps.utils.models import TimeStampedUUIDModel @@ -62,23 +59,27 @@ class Partner(LimitBusinessAreaModelMixin, MPTTModel): verbose_name=_("Parent"), ) is_un = models.BooleanField(verbose_name="U.N.", default=False) - """ - permissions structure - { - "business_area_id": { - "roles": ["role_id_1", "role_id_2"], - "programs": {"program_id":["admin_id"]} - } - } - """ def __str__(self) -> str: return f"{self.name} [Sub-Partner of {self.parent.name}]" if self.parent else self.name + def save(self, *args: Any, **kwargs: Any) -> None: + # Partner cannot be a parent if it has RoleAssignments + if self.parent: + if RoleAssignment.objects.filter(partner=self.parent).exists(): + raise ValidationError(f"{self.parent} cannot become a parent as it has RoleAssignments.") + if self.parent.user_set.exists(): + raise ValidationError(f"{self.parent} cannot become a parent as it has users.") + super().save(*args, **kwargs) + @property def is_child(self) -> bool: return self.parent is None + @property + def is_unicef_subpartner(self) -> bool: + return self.parent and self.parent.is_unicef + @property def is_parent(self) -> bool: return self.id in Partner.objects.exclude(parent__isnull=True).values_list("parent", flat=True) @@ -89,19 +90,12 @@ def get_partners_as_choices(cls) -> List: @classmethod def get_partners_for_program_as_choices(cls, business_area_id: str, program_id: Optional[str] = None) -> List: - partners = cls.objects.exclude(name=settings.DEFAULT_EMPTY_PARTNER) + role_assignments = RoleAssignment.objects.filter(business_area_id=business_area_id) if program_id: - return [ - (partner.id, partner.name) - for partner in partners - if program_id in partner.get_program_ids_for_business_area(business_area_id) - ] - else: - return [ - (partner.id, partner.name) - for partner in partners - if partner.get_program_ids_for_business_area(business_area_id) - ] + role_assignments = role_assignments.filter(Q(program_id=program_id) | Q(program=None)) + partners = cls.objects.filter(role_assignments__in=role_assignments).distinct() + + return [(partner.id, partner.name) for partner in partners] @property def is_unicef(self) -> bool: @@ -115,49 +109,73 @@ def is_default(self) -> bool: def is_editable(self) -> bool: return not self.is_unicef and not self.is_default - def has_full_area_access_in_program(self, program_id: Union[str, UUID]) -> bool: - return self.is_unicef or ( - self.program_partner_through.filter(program_id=program_id).first() - and self.program_partner_through.filter(program_id=program_id).first().full_area_access - ) - def get_program_ids_for_business_area(self, business_area_id: str) -> List[str]: - return [ - str(program_id) - for program_id in self.programs.filter(business_area_id=business_area_id).values_list("id", flat=True) - ] + from hct_mis_api.apps.program.models import Program - def has_program_access(self, program_id: Union[str, UUID]) -> bool: - return self.is_unicef or self.programs.filter(id=program_id).exists() + if self.role_assignments.filter(business_area_id=business_area_id, program=None).exists(): + programs_ids = Program.objects.filter(business_area_id=business_area_id).values_list("id", flat=True) + else: + programs_ids = self.role_assignments.filter(business_area_id=business_area_id).values_list( + "program_id", flat=True + ) + return [str(program_id) for program_id in programs_ids] - def has_area_access(self, area_id: Union[str, UUID], program_id: Union[str, UUID]) -> bool: - return self.is_unicef or self.get_program_areas(program_id).filter(id=area_id).exists() + def get_program_ids_for_permission_in_business_area( + self, business_area_id: str, permissions: List[Permissions], one_of_permissions: bool + ) -> List[str]: + """ + Return list of program ids that the partner has permissions for in the given business area - + If one_of_permissions=True, the function will return programs in which the user has at least one of the permissions. + If one_of_permissions=False, the function will return programs in which the user has all of the permissions. + """ + from hct_mis_api.apps.program.models import Program - def get_program_areas(self, program_id: Union[str, UUID]) -> QuerySet[Area]: - return Area.objects.filter( - program_partner_through__partner=self, program_partner_through__program_id=program_id - ) + if one_of_permissions: + permission_filter = Q(role__permissions__overlap=[perm.value for perm in permissions]) + else: + permission_filter = Q(role__permissions__contains=[perm.value for perm in permissions]) - def get_roles_for_business_area( - self, business_area_slug: Optional[str] = None, business_area_id: Optional["UUID"] = None - ) -> QuerySet["Role"]: - if not business_area_slug and not business_area_id: - return Role.objects.none() + if self.role_assignments.filter(permission_filter, business_area_id=business_area_id, program=None).exists(): + programs_ids = Program.objects.filter(business_area_id=business_area_id).values_list("id", flat=True) + else: + programs_ids = self.role_assignments.filter( + permission_filter, business_area_id=business_area_id + ).values_list("program_id", flat=True) + return [str(program_id) for program_id in programs_ids] + + def has_program_access(self, program_id: Union[str, UUID]) -> bool: + from hct_mis_api.apps.program.models import Program - if not business_area_id and business_area_slug: - business_area_id = BusinessArea.objects.get(slug=business_area_slug).id + return ( + RoleAssignment.objects.filter( + Q(partner=self) + & Q(business_area=Program.objects.get(id=program_id).business_area) + & (Q(program=None) | Q(program_id=program_id)) + ) + .exclude(expiry_date__lt=timezone.now()) + .exists() + ) - return Role.objects.filter( - business_area_partner_through__partner=self, - business_area_partner_through__business_area_id=business_area_id, + def has_area_access(self, area_id: Union[str, UUID], program_id: Union[str, UUID]) -> bool: + return ( + not self.has_area_limits_in_program(program_id) + or self.get_area_limits_for_program(program_id).filter(id=area_id).exists() ) - def add_roles_in_business_area(self, business_area_id: str, roles: List["Role"]) -> None: - business_area_partner_through, _ = BusinessAreaPartnerThrough.objects.get_or_create( - partner=self, - business_area_id=business_area_id, + def get_area_limits_for_program(self, program_id: Union[str, UUID]) -> QuerySet[Area]: + area_limits = AdminAreaLimitedTo.objects.filter(partner=self, program_id=program_id) + return Area.objects.filter(admin_area_limits__in=area_limits) + + def has_area_limits_in_program(self, program_id: Union[str, UUID]) -> bool: + return self.get_area_limits_for_program(program_id).exists() + + def get_areas_for_program(self, program_id: Union[str, UUID]) -> QuerySet[Area]: + area_limits = self.get_area_limits_for_program(program_id) + return ( + area_limits + if area_limits.exists() + else Area.objects.filter(area_type__country__business_areas__program__id=program_id) ) - business_area_partner_through.roles.add(*roles) class User(AbstractUser, NaturalKeyModel, UUIDModel): @@ -181,74 +199,134 @@ def save(self, *args: Any, **kwargs: Any) -> None: self.partner, _ = Partner.objects.get_or_create(name=settings.DEFAULT_EMPTY_PARTNER) if not self.partner.pk: self.partner.save() + if self.partner and self.partner.is_parent: + raise ValidationError(f"{self.partner} is a parent partner and cannot have users.") super().save(*args, **kwargs) - def permissions_in_business_area(self, business_area_slug: str, program_id: Optional[UUID] = None) -> List: + def has_program_access(self, program_id: Union[str, UUID]) -> bool: + from hct_mis_api.apps.program.models import Program + + return ( + RoleAssignment.objects.filter( + Q(user=self) + | Q(partner__user=self) + & Q(business_area=Program.objects.get(id=program_id).business_area) + & (Q(program=None) | Q(program_id=program_id)) + ) + .exclude(expiry_date__lt=timezone.now()) + .exists() + ) + + def get_program_ids_for_business_area(self, business_area_id: str) -> List[str]: """ - return list of permissions based on User Role BA and User Partner - if program_id is in arguments need to check if partner has access to this program + Return list of program ids that the user (or user's partner) has access to in the given business area. """ - user_roles_query = UserRole.objects.filter(user=self, business_area__slug=business_area_slug).exclude( - expiry_date__lt=timezone.now() - ) - all_user_roles_permissions_list = list( - Role.objects.filter(user_roles__in=user_roles_query).values_list("permissions", flat=True) - ) + from hct_mis_api.apps.program.models import Program - # Regular user, need to check access to the program - if not self.partner.is_unicef: - # Check program access - if program_id and not self.partner.has_program_access(program_id): - return [] - - # Prepare partner permissions - partner_roles_in_ba = self.partner.get_roles_for_business_area(business_area_slug=business_area_slug) - all_partner_roles_permissions_list = [ - perm for perm in partner_roles_in_ba.values_list("permissions", flat=True) if perm - ] - elif all_user_roles_permissions_list: - # Default partner permissions for UNICEF partner with access to business area - all_partner_roles_permissions_list = [DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER] + if RoleAssignment.objects.filter( + Q(user=self) | Q(partner__user=self), business_area_id=business_area_id, program=None + ).exists(): + programs_ids = Program.objects.filter(business_area_id=business_area_id).values_list("id", flat=True) else: - all_partner_roles_permissions_list = [] - return list( - set( - [perm for perms in all_partner_roles_permissions_list for perm in perms] - + [perm for perms in all_user_roles_permissions_list if perms for perm in perms] - ) + programs_ids = RoleAssignment.objects.filter( + Q(user=self) | Q(partner__user=self), + business_area_id=business_area_id, + ).values_list("program_id", flat=True) + return [str(program_id) for program_id in programs_ids] + + def get_program_ids_for_permission_in_business_area( + self, business_area_id: str, permissions: List[Permissions], one_of_permissions: bool + ) -> List[str]: + """ + Return list of program ids that the user (or user's partner) has permissions for in the given business area - + If one_of_permissions=True, the function will return programs in which the user has at least one of the permissions. + If one_of_permissions=False, the function will return programs in which the user has all of the permissions. + """ + from hct_mis_api.apps.program.models import Program + + if one_of_permissions: + permission_filter = Q(role__permissions__overlap=[perm.value for perm in permissions]) + else: + permission_filter = Q(role__permissions__contains=[perm.value for perm in permissions]) + + if RoleAssignment.objects.filter( + permission_filter, + Q(user=self) | Q(partner__user=self), + business_area_id=business_area_id, + program=None, + ).exists(): + programs_ids = Program.objects.filter(business_area_id=business_area_id).values_list("id", flat=True) + else: + programs_ids = RoleAssignment.objects.filter( + permission_filter, + Q(user=self) | Q(partner__user=self), + business_area_id=business_area_id, + ).values_list("program_id", flat=True) + return [str(program_id) for program_id in programs_ids] + + def permissions_in_business_area(self, business_area_slug: str, program_id: Union[UUID, str, None] = None) -> set: + """ + return list of permissions for the given business area and program, + retrieved from RoleAssignments of the user and their partner + """ + if program_id: + if not self.has_program_access(program_id): + return set() + role_assignments = RoleAssignment.objects.filter( + Q(partner__user=self, business_area__slug=business_area_slug, program_id=program_id) + | Q(partner__user=self, business_area__slug=business_area_slug, program=None) + | Q(user=self, business_area__slug=business_area_slug, program_id=program_id) + | Q(user=self, business_area__slug=business_area_slug, program=None) + ).exclude(expiry_date__lt=timezone.now()) + else: + role_assignments = RoleAssignment.objects.filter( + Q(partner__user=self, business_area__slug=business_area_slug) + | Q(user=self, business_area__slug=business_area_slug) + ).exclude(expiry_date__lt=timezone.now()) + + permissions_set = set() + # permissions from group field in RoleAssignment + role_assignment_group_permissions = Permission.objects.filter( + group__role_assignments__in=role_assignments + ).values_list("content_type__app_label", "codename") + permissions_set.update(f"{app}.{codename}" for app, codename in role_assignment_group_permissions) + + # permissions from role field in RoleAssignment + role_assignment_role_permissions = Role.objects.filter( + role_assignments__in=role_assignments, permissions__isnull=False + ).values_list("permissions", flat=True) + permissions_set.update( + permission for permission_list in role_assignment_role_permissions for permission in permission_list ) + return permissions_set @property def business_areas(self) -> QuerySet[BusinessArea]: - return BusinessArea.objects.filter( - Q(Q(user_roles__user=self) & ~Q(user_roles__expiry_date__lt=timezone.now())) | Q(partners=self.partner) - ).distinct() - - def has_permission( - self, permission: str, business_area: BusinessArea, program_id: Optional[UUID] = None, write: bool = False - ) -> bool: - return permission in self.permissions_in_business_area(business_area.slug, program_id) + role_assignments = RoleAssignment.objects.filter(Q(user=self) | Q(partner__user=self)).exclude( + expiry_date__lt=timezone.now() + ) + return BusinessArea.objects.filter(role_assignments__in=role_assignments).exclude(active=False).distinct() @test_conditional(lru_cache()) - def cached_user_roles(self) -> QuerySet["UserRole"]: - return self.user_roles.all().select_related("business_area") + def cached_role_assignments(self) -> QuerySet["RoleAssignment"]: + return self.role_assignments.all().select_related("business_area") def can_download_storage_files(self) -> bool: return any( - self.has_permission(Permissions.DOWNLOAD_STORAGE_FILE.name, role.business_area) - for role in self.cached_user_roles() + self.has_perm(Permissions.DOWNLOAD_STORAGE_FILE.name, role.business_area) + for role in self.cached_role_assignments() ) def can_change_fsp(self) -> bool: return any( - self.has_permission(Permissions.PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE.name, role.business_area) - for role in self.cached_user_roles() + self.has_perm(Permissions.PM_ADMIN_FINANCIAL_SERVICE_PROVIDER_UPDATE.name, role.business_area) + for role in self.cached_role_assignments() ) def can_add_business_area_to_partner(self) -> bool: return any( - self.has_permission(Permissions.CAN_ADD_BUSINESS_AREA_TO_PARTNER.name, role.business_area) - for role in self.cached_user_roles() + self.has_perm(Permissions.CAN_ADD_BUSINESS_AREA_TO_PARTNER.name, role.business_area) + for role in self.cached_role_assignments() ) def email_user( # type: ignore @@ -291,6 +369,8 @@ class Meta: ("restrict_help_desk", "Limit fields to be editable for help desk"), ("can_reindex_programs", "Can reindex programs"), ("can_add_business_area_to_partner", "Can add business area to partner"), + ("can_change_allowed_partners", "Can change allowed partners"), + ("can_change_area_limits", "Can change area limits"), ("can_import_fixture", "Can import fixture"), ) @@ -307,19 +387,118 @@ def formfield(self, form_class: Optional[Any] = ..., choices_form_class: Optiona return super(ArrayField, self).formfield(**defaults) -class UserRole(NaturalKeyModel, TimeStampedUUIDModel): - user = models.ForeignKey("account.User", related_name="user_roles", on_delete=models.CASCADE) - role = models.ForeignKey("account.Role", related_name="user_roles", on_delete=models.CASCADE) - business_area = models.ForeignKey("core.BusinessArea", related_name="user_roles", on_delete=models.CASCADE) +class RoleAssignment(NaturalKeyModel, TimeStampedUUIDModel): + """ + Model to represent the assignment of a role to a user or partner within a specific business area or program. + When program is NULL, the role is assigned to the user or partner in all programs within the business area. + This model also associates the role with an expiry date and a group, if applicable. + """ + + business_area = models.ForeignKey("core.BusinessArea", related_name="role_assignments", on_delete=models.CASCADE) + user = models.ForeignKey( + "account.User", related_name="role_assignments", on_delete=models.CASCADE, null=True, blank=True + ) + partner = models.ForeignKey( + "account.Partner", related_name="role_assignments", on_delete=models.CASCADE, null=True, blank=True + ) + role = models.ForeignKey( + "account.Role", related_name="role_assignments", on_delete=models.CASCADE, null=True, blank=True + ) + program = models.ForeignKey( + "program.Program", related_name="role_assignments", on_delete=models.CASCADE, null=True, blank=True + ) expiry_date = models.DateField( - blank=True, null=True, help_text="After expiry date this User Role will be inactive." + blank=True, null=True, help_text="After expiry date this Role Assignment will be inactive." ) + group = models.ForeignKey(Group, related_name="role_assignments", on_delete=models.CASCADE, null=True, blank=True) class Meta: - unique_together = ("business_area", "user", "role") + constraints = [ + # Either user or partner should be assigned; not both + models.CheckConstraint( + check=Q(user__isnull=False, partner__isnull=True) | Q(user__isnull=True, partner__isnull=False), + name="user_or_partner_not_both", + ), + # Unique constraint for user + role + business_area + program when program is NOT NULL + models.UniqueConstraint( + fields=["user", "role", "business_area", "program"], + name="unique_user_role_business_area_program", + condition=Q(user__isnull=False), + ), + # Unique constraint for user + role + business_area when program is NULL + models.UniqueConstraint( + fields=["user", "role", "business_area"], + name="unique_user_role_business_area_no_program", + condition=Q(user__isnull=False, program__isnull=True), + ), + # Unique constraint for partner + role + business_area + program when program is NOT NULL + models.UniqueConstraint( + fields=["partner", "role", "business_area", "program"], + name="unique_partner_role_business_area_program", + condition=Q(partner__isnull=False), + ), + # Unique constraint for partner + role + business_area when program is NULL + models.UniqueConstraint( + fields=["partner", "role", "business_area"], + name="unique_partner_role_business_area_no_program", + condition=Q(partner__isnull=False, program__isnull=True), + ), + ] + + def clean(self) -> None: + super().clean() + errors = [] + # Ensure either user or partner is set, but not both + if bool(self.user) == bool(self.partner): + errors.append("Either user or partner must be set, but not both.") + # Ensure partner can only be assigned roles that have flag is_available_for_partner as True + if ( + self.partner + and not self.partner.is_unicef_subpartner + and self.role + and not self.role.is_available_for_partner + ): + errors.append("Partner can only be assigned roles that are available for partners.") + if self.partner: + # Validate that business_area is within the partner's allowed_business_areas + if not self.partner.allowed_business_areas.filter(id=self.business_area.id).exists(): + errors.append(f"{self.business_area} is not within the allowed business areas for {self.partner}.") + # Only partners that are not parents can have role assignments + if self.partner.is_parent: + errors.append(f"{self.partner} is a parent partner and cannot have role assignments.") + + if errors: + raise ValidationError(errors) + + def save(self, *args: Any, **kwargs: Any) -> None: + self.clean() + super().save(*args, **kwargs) def __str__(self) -> str: - return f"{self.user} {self.role} in {self.business_area}" + role_holder = self.user or self.partner + return f"{role_holder} {self.role} in {self.business_area}" + + +class AdminAreaLimitedTo(TimeStampedUUIDModel): + """ + Model to limit the admin area access for a partner. + Partners with full area access for a certain program will not have any area limits - no record in this model. + """ + + partner = models.ForeignKey("account.Partner", related_name="admin_area_limits", on_delete=models.CASCADE) + program = models.ForeignKey("program.Program", related_name="admin_area_limits", on_delete=models.CASCADE) + areas = models.ManyToManyField("geo.Area", related_name="admin_area_limits", blank=True) + + class Meta: + unique_together = ("partner", "program") + + def clean(self) -> None: + if self.program.partner_access != self.program.SELECTED_PARTNERS_ACCESS: + raise ValidationError(f"Area limits cannot be set for programs with {self.program.partner_access} access.") + + def save(self, *args: Any, **kwargs: Any) -> None: + self.clean() + super().save(*args, **kwargs) class UserGroup(NaturalKeyModel, models.Model): @@ -362,6 +541,8 @@ class Role(NaturalKeyModel, TimeStampedUUIDModel): null=True, blank=True, ) + is_visible_on_ui = models.BooleanField(default=True) + is_available_for_partner = models.BooleanField(default=True) def natural_key(self) -> Tuple: return self.name, self.subsystem @@ -383,11 +564,11 @@ def get_roles_as_choices(cls) -> List: class IncompatibleRolesManager(models.Manager): - def validate_user_role(self, user: User, business_area: "BusinessArea", role: UserRole) -> None: + def validate_user_role(self, user: User, business_area: "BusinessArea", role: RoleAssignment) -> None: incompatible_roles = list( IncompatibleRoles.objects.filter(role_one=role).values_list("role_two", flat=True) ) + list(IncompatibleRoles.objects.filter(role_two=role).values_list("role_one", flat=True)) - incompatible_userroles = UserRole.objects.filter( + incompatible_userroles = RoleAssignment.objects.filter( business_area=business_area, role__id__in=incompatible_roles, user=user, @@ -431,8 +612,8 @@ def clean(self) -> None: failing_users = set() for role_pair in ((self.role_one, self.role_two), (self.role_two, self.role_one)): - for userrole in UserRole.objects.filter(role=role_pair[0]): - if UserRole.objects.filter( + for userrole in RoleAssignment.objects.filter(role=role_pair[0]): + if RoleAssignment.objects.filter( user=userrole.user, business_area=userrole.business_area, role=role_pair[1], diff --git a/src/hct_mis_api/apps/account/permissions.py b/src/hct_mis_api/apps/account/permissions.py index 280efe7e61..788ad97d76 100644 --- a/src/hct_mis_api/apps/account/permissions.py +++ b/src/hct_mis_api/apps/account/permissions.py @@ -317,6 +317,8 @@ def has_permission(cls, info: Any, **kwargs: Any) -> bool: def check_permissions(user: Any, permissions: Iterable[Permissions], **kwargs: Any) -> bool: + from hct_mis_api.apps.program.models import Program + if not user.is_authenticated: return False @@ -330,8 +332,10 @@ def check_permissions(user: Any, permissions: Iterable[Permissions], **kwargs: A ) if business_area is None: return False - program_id = get_program_id_from_headers(kwargs) - return any(user.has_permission(permission.name, business_area, program_id) for permission in permissions) + + program = Program.objects.filter(id=get_program_id_from_headers(kwargs)).first() + obj = program or business_area + return any(user.has_perm(permission.name, obj) for permission in permissions) def hopePermissionClass(permission: Permissions) -> Type[BasePermission]: @@ -402,13 +406,16 @@ def check_creator_or_owner_permission( is_owner: bool, owner_permission: str, ) -> None: + from hct_mis_api.apps.program.models import Program + user = info.context.user business_area = object_instance.business_area - program_id = get_program_id_from_headers(info.context.headers) + program = Program.objects.filter(id=get_program_id_from_headers(info.context.headers)).first() + scope = program or business_area if not user.is_authenticated or not ( - user.has_permission(general_permission, business_area, program_id) - or (is_creator and user.has_permission(creator_permission, business_area, program_id)) - or (is_owner and user.has_permission(owner_permission, business_area, program_id)) + user.has_perm(general_permission, scope) + or (is_creator and user.has_perm(creator_permission, scope)) + or (is_owner and user.has_perm(owner_permission, scope)) ): raise PermissionDenied("Permission Denied") @@ -539,6 +546,8 @@ def has_permission( business_area_arg: Union[str, BusinessArea], raise_error: bool = True, ) -> bool: + from hct_mis_api.apps.program.models import Program + cls.is_authenticated(info) permissions: Iterable = (permission,) if not isinstance(permission, list) else permission if isinstance(business_area_arg, BusinessArea): @@ -549,12 +558,13 @@ def has_permission( business_area = BusinessArea.objects.filter(slug=business_area_arg).first() if business_area is None: return cls.raise_permission_denied_error(raise_error=raise_error) - program_id = get_program_id_from_headers(info.context.headers) + program = Program.objects.filter(id=get_program_id_from_headers(info.context.headers)).first() + if not any( [ permission.name for permission in permissions - if info.context.user.has_permission(permission.name, business_area, program_id) + if info.context.user.has_perm(permission.name, program or business_area) ] ): return cls.raise_permission_denied_error(raise_error=raise_error) diff --git a/src/hct_mis_api/apps/account/schema.py b/src/hct_mis_api/apps/account/schema.py index ae91799301..d01eed4a0c 100644 --- a/src/hct_mis_api/apps/account/schema.py +++ b/src/hct_mis_api/apps/account/schema.py @@ -19,8 +19,8 @@ USER_STATUS_CHOICES, Partner, Role, + RoleAssignment, User, - UserRole, ) from hct_mis_api.apps.account.permissions import ( ALL_GRIEVANCES_CREATE_MODIFY, @@ -29,9 +29,13 @@ hopeOneOfPermissionClass, ) from hct_mis_api.apps.core.extended_connection import ExtendedConnection -from hct_mis_api.apps.core.models import BusinessArea, BusinessAreaPartnerThrough +from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.core.schema import ChoiceObject -from hct_mis_api.apps.core.utils import decode_id_string, to_choice_object +from hct_mis_api.apps.core.utils import ( + decode_id_string, + get_program_id_from_headers, + to_choice_object, +) from hct_mis_api.apps.geo.models import Area from hct_mis_api.apps.geo.schema import AreaNode from hct_mis_api.apps.household.models import Household, Individual @@ -45,7 +49,7 @@ from graphene import Node -def permissions_resolver(user_roles: "QuerySet[UserRole]") -> Set: +def permissions_resolver(user_roles: "QuerySet[RoleAssignment]") -> Set: all_user_roles = user_roles permissions_set = set() for user_role in all_user_roles: @@ -54,9 +58,9 @@ def permissions_resolver(user_roles: "QuerySet[UserRole]") -> Set: return permissions_set -class UserRoleNode(DjangoObjectType): +class RoleAssignmentNode(DjangoObjectType): class Meta: - model = UserRole + model = RoleAssignment exclude = ("id", "user") @@ -68,7 +72,13 @@ class Meta: class PartnerRoleNode(DjangoObjectType): class Meta: - model = BusinessAreaPartnerThrough + model = RoleAssignment + exclude = ("id",) + + +class UserRoleNode(DjangoObjectType): + class Meta: + model = RoleAssignment exclude = ("id",) @@ -102,13 +112,24 @@ class Meta: class UserNode(DjangoObjectType): business_areas = DjangoFilterConnectionField(UserBusinessAreaNode) + permissions_in_scope = graphene.List(graphene.String) partner_roles = graphene.List(PartnerRoleNode) + user_roles = graphene.List(UserRoleNode) def resolve_business_areas(self, info: Any) -> "QuerySet[BusinessArea]": return info.context.user.business_areas def resolve_partner_roles(self, info: Any) -> "QuerySet[Role]": - return self.partner.business_area_partner_through.all() + return self.partner.role_assignments.order_by("business_area__slug") + + def resolve_user_roles(self, info: Any) -> "QuerySet[Role]": + return self.role_assignments.order_by("business_area__slug") + + def resolve_permissions_in_scope(self, info: Any) -> Set: + user = info.context.user + program_id = get_program_id_from_headers(info.context.headers) + business_area_slug = info.context.headers.get("Business-Area") + return user.permissions_in_business_area(business_area_slug, program_id) class Meta: model = get_user_model() @@ -157,13 +178,13 @@ class Meta: model = Partner def resolve_areas(self, info: Any) -> "List[Area]": - return self.program_partner_through.get(program_id=self.partner_program).areas.all().order_by("name") + return self.get_areas_for_program(self.partner_program).order_by("name") def resolve_area_access(self, info: Any, **kwargs: Any) -> str: - if self.program_partner_through.get(program_id=self.partner_program).full_area_access: - return "BUSINESS_AREA" - else: + if self.has_area_limits_in_program(self.partner_program): return "ADMIN_AREA" + else: + return "BUSINESS_AREA" class Query(graphene.ObjectType): @@ -205,14 +226,13 @@ def resolve_user_status_choices(self, info: Any) -> List[Dict[str, Any]]: def resolve_user_partner_choices(self, info: Any) -> List[Dict[str, Any]]: business_area_slug = info.context.headers.get("Business-Area") - unicef = Partner.objects.get(name="UNICEF") return to_choice_object( list( Partner.objects.exclude(name=settings.DEFAULT_EMPTY_PARTNER) - .filter(business_areas__slug=business_area_slug) + .filter(allowed_business_areas__slug=business_area_slug) + .exclude(id__in=Partner.objects.filter(parent__isnull=False).values_list("parent_id", flat=True)) .values_list("id", "name") ) - + [(unicef.id, unicef.name)] # unicef partner is always available ) def resolve_partner_for_grievance_choices( @@ -233,7 +253,7 @@ def resolve_partner_for_grievance_choices( def resolve_has_available_users_to_export(self, info: Any, business_area_slug: str) -> bool: return ( get_user_model() - .objects.prefetch_related("user_roles") - .filter(is_superuser=False, user_roles__business_area__slug=business_area_slug) + .objects.prefetch_related("role_assignments") + .filter(is_superuser=False, role_assignments__business_area__slug=business_area_slug) .exists() ) diff --git a/src/hct_mis_api/apps/account/signals.py b/src/hct_mis_api/apps/account/signals.py index d801613733..64f5478308 100644 --- a/src/hct_mis_api/apps/account/signals.py +++ b/src/hct_mis_api/apps/account/signals.py @@ -1,24 +1,25 @@ -from typing import Any +from typing import Any, Iterable from django.contrib.auth import get_user_model +from django.contrib.auth.models import Group +from django.core.cache import cache +from django.db.models import Q from django.db.models.signals import m2m_changed, post_save, pre_delete, pre_save from django.dispatch import receiver from django.utils import timezone -from hct_mis_api.apps.account.models import Partner, Role, User, UserRole -from hct_mis_api.apps.core.models import BusinessArea, BusinessAreaPartnerThrough +from hct_mis_api.api.caches import get_or_create_cache_key +from hct_mis_api.apps.account.caches import get_user_permissions_version_key +from hct_mis_api.apps.account.models import Partner, Role, RoleAssignment, User +from hct_mis_api.apps.core.models import BusinessArea -@receiver(post_save, sender=UserRole) -def post_save_userrole(sender: Any, instance: User, *args: Any, **kwargs: Any) -> None: - instance.user.last_modify_date = timezone.now() - instance.user.save() - - -@receiver(pre_delete, sender=UserRole) -def pre_delete_userrole(sender: Any, instance: User, *args: Any, **kwargs: Any) -> None: - instance.user.last_modify_date = timezone.now() - instance.user.save() +@receiver(post_save, sender=RoleAssignment) +@receiver(pre_delete, sender=RoleAssignment) +def post_save_pre_delete_role_assignment(sender: Any, instance: User, *args: Any, **kwargs: Any) -> None: + if instance.user: + instance.user.last_modify_date = timezone.now() + instance.user.save() @receiver(pre_save, sender=get_user_model()) @@ -34,20 +35,107 @@ def post_save_user(sender: Any, instance: User, created: bool, *args: Any, **kwa business_area = BusinessArea.objects.filter(slug="global").first() role = Role.objects.filter(name="Basic User").first() if business_area and role: - UserRole.objects.get_or_create(business_area=business_area, user=instance, role=role) + RoleAssignment.objects.get_or_create(business_area=business_area, user=instance, role=role) @receiver(m2m_changed, sender=Partner.allowed_business_areas.through) def allowed_business_areas_changed(sender: Any, instance: Partner, action: str, pk_set: set, **kwargs: Any) -> None: if action == "post_remove": removed_business_areas_ids = pk_set - BusinessAreaPartnerThrough.objects.filter( - partner=instance, business_area_id__in=removed_business_areas_ids - ).delete() + RoleAssignment.objects.filter(partner=instance, business_area_id__in=removed_business_areas_ids).delete() elif action == "pre_clear": instance._removed_business_areas = list(instance.allowed_business_areas.all()) elif action == "post_clear": removed_business_areas = getattr(instance, "_removed_business_areas", []) - BusinessAreaPartnerThrough.objects.filter(partner=instance, business_area__in=removed_business_areas).delete() + RoleAssignment.objects.filter(partner=instance, business_area__in=removed_business_areas).delete() + + +# Signals for permissions caches invalidation + + +def _invalidate_user_permissions_cache(users: Iterable) -> None: + for user in users: + version_key = get_user_permissions_version_key(user) + get_or_create_cache_key(version_key, 0) + cache.incr(version_key) + + +@receiver(post_save, sender=RoleAssignment) +@receiver(pre_delete, sender=RoleAssignment) +def invalidate_permissions_cache_on_role_assignment_change( + sender: Any, instance: RoleAssignment, **kwargs: Any +) -> None: + """ + Invalidate the cache for the User/Partner's Users associated with the RoleAssignment + when the RoleAssignment is created, updated, or deleted. + """ + if instance.user: + users = [instance.user] + else: + users = instance.partner.user_set.all() + _invalidate_user_permissions_cache(users) + + +@receiver(post_save, sender=Role) +@receiver(pre_delete, sender=Role) +def invalidate_permissions_cache_on_role_change(sender: Any, instance: Role, **kwargs: Any) -> None: + """ + Invalidate the cache for the User/Partner's Users associated with the Role through a RoleAssignment + when the Role is created, updated, or deleted. + """ + users = User.objects.filter( + Q(role_assignments__role=instance) | Q(partner__role_assignments__role=instance) + ).distinct() + _invalidate_user_permissions_cache(users) + + +@receiver(m2m_changed, sender=Group.permissions.through) +def invalidate_permissions_cache_on_group_permissions_change( + sender: Any, instance: Group, action: str, **kwargs: Any +) -> None: + """ + Invalidate the cache for all Users that are assigned to that Group + or are assigned to this Group's RoleAssignment + or their Partner is assigned to this Group's RoleAssignment + when the Group's permissions are updated. + """ + if action in ["post_add", "post_remove", "post_clear"]: + users = User.objects.filter( + Q(groups=instance) | Q(role_assignments__group=instance) | Q(partner__role_assignments__group=instance) + ).distinct() + _invalidate_user_permissions_cache(users) + + +@receiver(post_save, sender=Group) +@receiver(pre_delete, sender=Group) +def invalidate_permissions_cache_on_group_change(sender: Any, instance: Group, **kwargs: Any) -> None: + """ + Invalidate the cache for all Users that are assigned to that Group + or are assigned to this Group's RoleAssignment + or their Partner is assigned to this Group's RoleAssignment + when the Group is created, updated, or deleted. + """ + users = User.objects.filter( + Q(groups=instance) | Q(role_assignments__group=instance) | Q(partner__role_assignments__group=instance) + ).distinct() + _invalidate_user_permissions_cache(users) + + +@receiver(m2m_changed, sender=User.groups.through) +def invalidate_permissions_cache_on_user_groups_change(action: str, instance: User, pk_set: set, **kwargs: Any) -> None: + """ + Invalidate the cache for a User when their Groups are modified. + """ + if action in {"post_add", "post_remove", "post_clear"}: + _invalidate_user_permissions_cache([instance]) + + +@receiver(post_save, sender=User) +@receiver(pre_delete, sender=User) +def invalidate_permissions_cache_on_user_change(sender: Any, instance: User, **kwargs: Any) -> None: + """ + Invalidate the cache for a User when they are updated. (For example change of partner or is_superuser flag) + """ + _invalidate_user_permissions_cache([instance]) diff --git a/src/hct_mis_api/apps/account/templates/admin/account/parent/permissions.html b/src/hct_mis_api/apps/account/templates/admin/account/parent/permissions.html deleted file mode 100644 index 4bdf639c61..0000000000 --- a/src/hct_mis_api/apps/account/templates/admin/account/parent/permissions.html +++ /dev/null @@ -1,109 +0,0 @@ -{% extends "admin_extra_buttons/action_page.html" %} -{% load i18n admin_urls static admin_modify mptt_tags engine %} - -{% block extrahead %}{{ block.super }} - - - - {{ media }} - {{ business_area_role_formset.media }} -{% endblock %} -{% block action-content %} - - {% csrf_token %} - {% if can_add_business_area_to_partner %} -
- -
- {% endif %} - - -{% endblock %} -{% block admin_change_form_document_ready %}{{ block.super }} - - -{% endblock %} diff --git a/src/hct_mis_api/apps/accountability/schema.py b/src/hct_mis_api/apps/accountability/schema.py index f87be72aa9..f91b74ce17 100644 --- a/src/hct_mis_api/apps/accountability/schema.py +++ b/src/hct_mis_api/apps/accountability/schema.py @@ -120,8 +120,14 @@ def resolve_all_feedbacks(self, info: Any, **kwargs: Any) -> QuerySet[Feedback]: business_area_id = BusinessArea.objects.get(slug=business_area_slug).id queryset = Feedback.objects.filter(business_area__slug=business_area_slug).select_related("admin2") - if not user.partner.is_unicef: # Full access to all AdminAreas if is_unicef - queryset = filter_feedback_based_on_partner_areas_2(queryset, user.partner, business_area_id, program_id) + if user.partner.has_area_limits_in_program(program_id): + queryset = filter_feedback_based_on_partner_areas_2( + queryset, + user, + business_area_id, + program_id, + [Permissions.GRIEVANCES_FEEDBACK_VIEW_LIST, Permissions.GRIEVANCES_FEEDBACK_VIEW_DETAILS], + ) return queryset diff --git a/src/hct_mis_api/apps/accountability/views.py b/src/hct_mis_api/apps/accountability/views.py index 7c4205e94d..48c107d9b7 100644 --- a/src/hct_mis_api/apps/accountability/views.py +++ b/src/hct_mis_api/apps/accountability/views.py @@ -12,7 +12,7 @@ def download_cash_plan_payment_verification(request: HttpRequest, survey_id: str) -> HttpResponse: survey = get_object_or_404(Survey, id=decode_id_string(survey_id)) - if not request.user.has_permission(Permissions.ACCOUNTABILITY_SURVEY_VIEW_DETAILS.name, survey.business_area): + if not request.user.has_perm(Permissions.ACCOUNTABILITY_SURVEY_VIEW_DETAILS.name, survey.business_area): raise PermissionDenied("Permission Denied: User does not have correct permission.") try: diff --git a/src/hct_mis_api/apps/core/admin.py b/src/hct_mis_api/apps/core/admin.py index 598aebde08..be6f0e0c83 100644 --- a/src/hct_mis_api/apps/core/admin.py +++ b/src/hct_mis_api/apps/core/admin.py @@ -5,6 +5,7 @@ from django.contrib import admin, messages from django.contrib.admin import SimpleListFilter, TabularInline from django.contrib.admin.templatetags.admin_urls import add_preserved_filters +from django.contrib.admin.widgets import FilteredSelectMultiple from django.contrib.messages import ERROR from django.contrib.postgres.aggregates import ArrayAgg from django.contrib.postgres.fields import JSONField @@ -35,6 +36,7 @@ from jsoneditor.forms import JSONEditor from xlrd import XLRDError +from hct_mis_api.apps.account.models import Partner, RoleAssignment from hct_mis_api.apps.administration.widgets import JsonWidget from hct_mis_api.apps.core.celery_tasks import ( upload_new_kobo_template_and_update_flex_fields_task, @@ -270,12 +272,67 @@ def split_business_area(self, request: HttpRequest, pk: "UUID") -> Union[HttpRes return TemplateResponse(request, "core/admin/split_ba.html", context) + @button(label="Partners", permission="account.can_change_allowed_partners") + def allowed_partners(self, request: HttpRequest, pk: int) -> Union[TemplateResponse, HttpResponseRedirect]: + business_area = get_object_or_404(BusinessArea, pk=pk) + + class AllowedPartnersForm(forms.Form): + partners = forms.ModelMultipleChoiceField( + queryset=Partner.objects.exclude( + id__in=Partner.objects.filter(parent__isnull=False).values_list("parent_id", flat=True) + ), + required=False, + widget=FilteredSelectMultiple("Partners", is_stacked=False), + ) + + if request.method == "POST": + form = AllowedPartnersForm(request.POST) + if form.is_valid(): + selected_partners = form.cleaned_data["partners"] + # Get the current allowed partners for the business area + previous_allowed_partners = set(Partner.objects.filter(allowed_business_areas=business_area)) + + # Identify which partners were removed + removed_partners = previous_allowed_partners - set(selected_partners) + # Check if there are any removed partners with existing role assignments in this business area + for partner in removed_partners: + if RoleAssignment.objects.filter(partner=partner, business_area=business_area).exists(): + self.message_user( + request, + f"You cannot remove {partner.name} because it has existing role assignments in this business area.", + messages.ERROR, + ) + return HttpResponseRedirect(request.get_full_path()) + + for partner in Partner.objects.all(): + if partner in selected_partners: + partner.allowed_business_areas.add(business_area) + else: + partner.allowed_business_areas.remove(business_area) + messages.success(request, "Allowed partners successfully updated.") + return HttpResponseRedirect(request.get_full_path()) + + else: + form = AllowedPartnersForm( + initial={"partners": Partner.objects.filter(allowed_business_areas=business_area)} + ) + + context = self.get_common_context(request, pk) + context.update( + { + "business_area": business_area, + "form": form, + } + ) + + return TemplateResponse(request, "core/admin/allowed_partners.html", context) + @button(permission="account.view_user") def members(self, request: HttpRequest, pk: "UUID") -> TemplateResponse: context = self.get_common_context(request, pk, title="Members") context["members"] = ( context["original"] - .user_roles.values( + .role_assignments.values( "user__id", "user__email", "user__username", diff --git a/src/hct_mis_api/apps/core/backends.py b/src/hct_mis_api/apps/core/backends.py new file mode 100644 index 0000000000..b052d4b149 --- /dev/null +++ b/src/hct_mis_api/apps/core/backends.py @@ -0,0 +1,122 @@ +from typing import Any, Optional, Union + +from django.contrib.auth.backends import BaseBackend +from django.contrib.auth.models import AnonymousUser, Permission +from django.core.cache import cache +from django.db.models import Model, Q +from django.utils import timezone + +from hct_mis_api.api.caches import get_or_create_cache_key +from hct_mis_api.apps.account.caches import ( + get_user_permissions_cache_key, + get_user_permissions_version_key, +) +from hct_mis_api.apps.account.models import Role, RoleAssignment, User +from hct_mis_api.apps.core.models import BusinessArea +from hct_mis_api.apps.program.models import Program + + +class PermissionsBackend(BaseBackend): + """ + Custom permissions backend that fetches permissions from the User's Groups + and the RoleAssignments for the User or their Partner. + """ + + def get_all_permissions(self, user: User, obj: Optional[Model] = None) -> set[str]: # type: ignore + filters: dict[str, Any] + if not obj: + program = None + business_area = None + filters = {} + else: + if isinstance(obj, BusinessArea): + program = None + business_area = obj + filters = {"business_area": business_area} + elif isinstance(obj, Program): + program = obj + business_area = obj.business_area + filters = { + "business_area": business_area, + "program": program, + } + elif hasattr(obj, "program"): + program = obj.program + business_area = obj.business_area + filters = {"business_area": business_area, "program": program} + elif hasattr(obj, "business_area"): + program = None + business_area = obj.business_area + filters = {"business_area": business_area} + else: + return set() + + user_version = get_or_create_cache_key(get_user_permissions_version_key(user), 1) + cache_key = get_user_permissions_cache_key(user, user_version, business_area, program) + + cached_permissions = cache.get(cache_key) + + if cached_permissions: + return cached_permissions + + # If permission is checked for a Program and User does not have access to it, return empty set + if ( + program + and not RoleAssignment.objects.filter( + (Q(partner=user.partner) | Q(user=user)) + & Q(business_area=business_area) + & (Q(program=None) | Q(program=program)) + ) + .exclude(expiry_date__lt=timezone.now()) + .exists() + ): + return set() + + """ + The permissions are fetched from: + * the user's Groups + * RoleAssignment - where they can be stored either on the Group or on the Role + and assigned either to the User or to their Partner + """ + + # role assignments from the User or their Partner + role_assignments = RoleAssignment.objects.filter( + (Q(user=user) | Q(partner__user=user)) + & (Q(business_area=filters.get("business_area"), program=None) | Q(**filters)) + ).exclude(expiry_date__lt=timezone.now()) + + if business_area and not role_assignments.exists(): + return set() + + permissions_set = set() + + # permissions from the RoleAssignments' Groups + role_assignment_group_permissions = Permission.objects.filter( + group__role_assignments__in=role_assignments + ).values_list("content_type__app_label", "codename") + permissions_set.update(f"{app}.{codename}" for app, codename in role_assignment_group_permissions) + + # permissions from RoleAssignment's Roles + role_assignment_role_permissions = Role.objects.filter( + role_assignments__in=role_assignments, permissions__isnull=False + ).values_list("permissions", flat=True) + permissions_set.update( + permission for permission_list in role_assignment_role_permissions for permission in permission_list + ) + + # permissions from the User's Group + user_group_permissions = Permission.objects.filter(group__user=user).values_list( + "content_type__app_label", "codename" + ) + permissions_set.update(f"{app}.{codename}" for app, codename in user_group_permissions) + + cache.set(cache_key, permissions_set, timeout=None) + + return permissions_set + + def has_perm(self, user_obj: Union[User, AnonymousUser], perm: str, obj: Optional[Model] = None) -> bool: # type: ignore + if user_obj.is_superuser: + return True + if isinstance(user_obj, AnonymousUser): + return False + return super().has_perm(user_obj, perm, obj) diff --git a/src/hct_mis_api/apps/core/base_test_case.py b/src/hct_mis_api/apps/core/base_test_case.py index 32862d3529..cf356717fb 100644 --- a/src/hct_mis_api/apps/core/base_test_case.py +++ b/src/hct_mis_api/apps/core/base_test_case.py @@ -19,11 +19,10 @@ from snapshottest.django import TestCase as SnapshotTestTestCase from hct_mis_api.apps.account.fixtures import PartnerFactory -from hct_mis_api.apps.account.models import Role, UserRole -from hct_mis_api.apps.core.models import BusinessAreaPartnerThrough +from hct_mis_api.apps.account.models import AdminAreaLimitedTo, Role, RoleAssignment from hct_mis_api.apps.core.utils import IDENTIFICATION_TYPE_TO_KEY_MAPPING from hct_mis_api.apps.household.models import IDENTIFICATION_TYPE_CHOICE, DocumentType -from hct_mis_api.apps.program.models import ProgramPartnerThrough +from hct_mis_api.apps.program.fixtures import ProgramFactory if TYPE_CHECKING: # pragma: no_cover from hct_mis_api.apps.account.models import Partner, User @@ -116,31 +115,16 @@ def __set_context_files(context: Any, files: Dict) -> None: context.FILES[name] = file @staticmethod - def update_partner_access_to_program( + def set_admin_area_limits_in_program( partner: "Partner", program: "Program", - areas: Optional[List["Area"]] = None, - full_area_access: Optional[bool] = False, + areas: List["Area"], ) -> None: - program_partner_through, _ = ProgramPartnerThrough.objects.get_or_create( + admin_area_limits, _ = AdminAreaLimitedTo.objects.get_or_create( program=program, partner=partner, ) - if areas: - program_partner_through.areas.set(areas) - if full_area_access: - program_partner_through.full_area_access = True - program_partner_through.save(update_fields=["full_area_access"]) - - @staticmethod - def add_partner_role_in_business_area( - partner: "Partner", business_area: "BusinessArea", roles: List["Role"] - ) -> None: - business_area_partner_through, _ = BusinessAreaPartnerThrough.objects.get_or_create( - business_area=business_area, - partner=partner, - ) - business_area_partner_through.roles.add(*roles) + admin_area_limits.areas.set(areas) @classmethod def create_partner_role_with_permissions( @@ -150,17 +134,26 @@ def create_partner_role_with_permissions( business_area: "BusinessArea", program: Optional["Program"] = None, areas: Optional[List["Area"]] = None, - name: Optional[str] = "Partner Role with Permissions", - ) -> None: - business_area_partner_through, _ = BusinessAreaPartnerThrough.objects.get_or_create( - business_area=business_area, - partner=partner, - ) + name: Optional[str] = None, + whole_business_area_access: Optional[bool] = False, + ) -> RoleAssignment: + """ + whole_business_area_access: If True, the role is created for all programs in a business area (program=None). + """ permission_list = [perm.value for perm in permissions] + name = name or f"Partner Role with Permissions {permission_list[0:3], ...}" role, created = Role.objects.update_or_create(name=name, defaults={"permissions": permission_list}) - business_area_partner_through.roles.add(role) - if program: - cls.update_partner_access_to_program(partner, program, areas) + # whole_business_area is used to create a role for all programs in a business area (program=None) + if not program and not whole_business_area_access: + program = ProgramFactory(business_area=business_area, name="Program for Partner Role") + partner.allowed_business_areas.add(business_area) + role_assignment, _ = RoleAssignment.objects.get_or_create( + partner=partner, role=role, business_area=business_area, program=program + ) + # set admin area limits in program + if program and areas: + cls.set_admin_area_limits_in_program(partner, program, areas) + return role_assignment @classmethod def create_user_role_with_permissions( @@ -170,16 +163,26 @@ def create_user_role_with_permissions( business_area: "BusinessArea", program: Optional["Program"] = None, areas: Optional[List["Area"]] = None, - name: Optional[str] = "Role with Permissions", - ) -> UserRole: + name: Optional[str] = None, + whole_business_area_access: Optional[bool] = False, + ) -> RoleAssignment: + """ + whole_business_area_access: If True, the role is created for all programs in a business area (program=None). + """ permission_list = [perm.value for perm in permissions] + name = name or f"User Role with Permissions {permission_list[0:3], ...}" role, created = Role.objects.update_or_create(name=name, defaults={"permissions": permission_list}) - user_role, _ = UserRole.objects.get_or_create(user=user, role=role, business_area=business_area) + # whole_business_area is used to create a role for all programs in a business area (program=None) + if not program and not whole_business_area_access: + program = ProgramFactory(business_area=business_area, name="Program for User Role") + role_assignment, _ = RoleAssignment.objects.get_or_create( + user=user, role=role, business_area=business_area, program=program + ) - # update Partner permissions for the program - if program: - cls.update_partner_access_to_program(user.partner, program, areas) - return user_role + # set admin area limits in program + if program and areas: + cls.set_admin_area_limits_in_program(user.partner, program, areas) + return role_assignment class UploadDocumentsBase(APITestCase): diff --git a/src/hct_mis_api/apps/core/fixtures/businessareapartnerthrough.json b/src/hct_mis_api/apps/core/fixtures/businessareapartnerthrough.json deleted file mode 100644 index 36df8b4f39..0000000000 --- a/src/hct_mis_api/apps/core/fixtures/businessareapartnerthrough.json +++ /dev/null @@ -1,15 +0,0 @@ -[ -{ - "model": "core.businessareapartnerthrough", - "pk": "3bed7924-1255-4da7-8bcc-2e7a821b4ec9", - "fields": { - "created_at": "2024-05-15T20:46:38.430Z", - "updated_at": "2024-05-15T20:46:38.430Z", - "business_area": "c259b1a0-ae3a-494e-b343-f7c8eb060c68", - "partner": 3, - "roles": [ - "e9e8c91a-c711-45b7-be8c-501c14d46330" - ] - } -} -] diff --git a/src/hct_mis_api/apps/core/fixtures/data.json b/src/hct_mis_api/apps/core/fixtures/data.json index a9456fad81..328b86eeb0 100644 --- a/src/hct_mis_api/apps/core/fixtures/data.json +++ b/src/hct_mis_api/apps/core/fixtures/data.json @@ -1499,6 +1499,7 @@ "custom_fields": {}, "has_data_sharing_agreement": true, "parent": null, + "active": true, "is_split": false, "deduplication_duplicate_score": 6.0, "deduplication_possible_duplicate_score": 6.0, @@ -3683,6 +3684,7 @@ "custom_fields": {}, "has_data_sharing_agreement": true, "parent": null, + "active": true, "is_split": false, "deduplication_duplicate_score": 6.0, "deduplication_possible_duplicate_score": 6.0, @@ -4160,6 +4162,7 @@ "custom_fields": {}, "has_data_sharing_agreement": true, "parent": null, + "active": true, "is_split": false, "deduplication_duplicate_score": 6.0, "deduplication_possible_duplicate_score": 6.0, diff --git a/src/hct_mis_api/apps/core/forms.py b/src/hct_mis_api/apps/core/forms.py index 4bf961067b..62b9e6548d 100644 --- a/src/hct_mis_api/apps/core/forms.py +++ b/src/hct_mis_api/apps/core/forms.py @@ -19,7 +19,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.fields["file"] = forms.FileField(label="Select a file") def get_business_area_queryset(self) -> QuerySet[BusinessArea]: - return BusinessArea.objects.filter(id__in=self.user.user_roles.all().values_list("business_area_id", flat=True)) + return BusinessArea.objects.filter(role_assignments__user=self.user) def clean(self, *args: Any, **kwargs: Any) -> Optional[Dict[str, Any]]: cleaned_data = super().clean() diff --git a/src/hct_mis_api/apps/core/management/commands/addunicefusers.py b/src/hct_mis_api/apps/core/management/commands/addunicefusers.py index f1ff7d008d..917af760a9 100644 --- a/src/hct_mis_api/apps/core/management/commands/addunicefusers.py +++ b/src/hct_mis_api/apps/core/management/commands/addunicefusers.py @@ -2,7 +2,7 @@ from django.core.management import BaseCommand -from hct_mis_api.apps.account.models import Role, User, UserRole +from hct_mis_api.apps.account.models import Role, RoleAssignment, User from hct_mis_api.apps.core.models import BusinessArea emails = [ @@ -30,4 +30,4 @@ def handle(self, *args: Any, **options: Any) -> None: user = User.objects.create_user( username=username, email=email, password="PaymentModule123", is_staff=True, is_superuser=True ) - UserRole.objects.create(business_area=afg, user=user, role=role) + RoleAssignment.objects.create(business_area=afg, user=user, role=role) diff --git a/src/hct_mis_api/apps/core/management/commands/generatefixtures.py b/src/hct_mis_api/apps/core/management/commands/generatefixtures.py index a5837e1b3d..a84b91536b 100644 --- a/src/hct_mis_api/apps/core/management/commands/generatefixtures.py +++ b/src/hct_mis_api/apps/core/management/commands/generatefixtures.py @@ -9,7 +9,7 @@ from django.db import transaction from hct_mis_api.apps.account.fixtures import UserFactory -from hct_mis_api.apps.account.models import UserRole +from hct_mis_api.apps.account.models import RoleAssignment from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.geo.models import Area from hct_mis_api.apps.grievance.fixtures import ( @@ -222,7 +222,7 @@ def handle(self, *args: Any, **options: Any) -> None: else: self.stdout.write("Generation canceled") return - if not UserRole.objects.count(): + if not RoleAssignment.objects.count(): call_command("generateroles") for index in range(business_area_amount): for _ in range(programs_amount): diff --git a/src/hct_mis_api/apps/core/management/commands/generateroles.py b/src/hct_mis_api/apps/core/management/commands/generateroles.py index ae6b684505..532fffd167 100644 --- a/src/hct_mis_api/apps/core/management/commands/generateroles.py +++ b/src/hct_mis_api/apps/core/management/commands/generateroles.py @@ -15,7 +15,7 @@ def add_arguments(self, parser: ArgumentParser) -> None: parser.add_argument( "--delete_all", action="store_true", - help="Should delete all existing roles before creating defaults. Be aware that it would also remove all existing UserRoles and IncompatibleRoles.", + help="Should delete all existing roles before creating defaults. Be aware that it would also remove all existing RoleAssignments and IncompatibleRoles.", ) parser.add_argument( "--delete_incompatible", diff --git a/src/hct_mis_api/apps/core/management/commands/initcypress.py b/src/hct_mis_api/apps/core/management/commands/initcypress.py index d0d262592d..3fc9f65a08 100644 --- a/src/hct_mis_api/apps/core/management/commands/initcypress.py +++ b/src/hct_mis_api/apps/core/management/commands/initcypress.py @@ -4,7 +4,7 @@ from django.conf import settings from django.core.management import BaseCommand, call_command -from hct_mis_api.apps.account.models import Partner, Role, User, UserRole +from hct_mis_api.apps.account.models import Partner, Role, RoleAssignment, User from hct_mis_api.apps.core.management.commands.reset_business_area_sequences import ( reset_business_area_sequences, ) @@ -27,6 +27,7 @@ def handle(self, *args: Any, **options: Any) -> None: reset_business_area_sequences() call_command("flush", "--noinput") + call_command("loaddata", f"{settings.PROJECT_ROOT}/apps/account/fixtures/initial.json") call_command("loaddata", f"{settings.PROJECT_ROOT}/apps/geo/fixtures/data.json") call_command("loaddata", f"{settings.PROJECT_ROOT}/apps/core/fixtures/data.json") call_command("loaddata", f"{settings.PROJECT_ROOT}/apps/account/fixtures/data.json") @@ -41,8 +42,9 @@ def handle(self, *args: Any, **options: Any) -> None: call_command("loaddata", f"{settings.PROJECT_ROOT}/apps/accountability/fixtures/data-cypress.json") partner = Partner.objects.get(name="UNICEF") + unicef_hq = Partner.objects.get(name=settings.UNICEF_HQ_PARTNER, parent=partner) - UserRole.objects.create( + RoleAssignment.objects.create( user=User.objects.create_superuser( "cypress-username", "cypress@cypress.com", @@ -50,7 +52,7 @@ def handle(self, *args: Any, **options: Any) -> None: first_name="Cypress", last_name="User", status="ACTIVE", - partner=partner, + partner=unicef_hq, ), role=Role.objects.get(name="Role with all permissions"), business_area=BusinessArea.objects.get(name="Afghanistan"), diff --git a/src/hct_mis_api/apps/core/management/commands/initdemo.py b/src/hct_mis_api/apps/core/management/commands/initdemo.py index 9e72494f22..82929355e5 100644 --- a/src/hct_mis_api/apps/core/management/commands/initdemo.py +++ b/src/hct_mis_api/apps/core/management/commands/initdemo.py @@ -60,7 +60,7 @@ import elasticsearch -from hct_mis_api.apps.account.models import Partner, Role, User, UserRole +from hct_mis_api.apps.account.models import Partner, Role, RoleAssignment, User from hct_mis_api.apps.core.models import BusinessArea from hct_mis_api.apps.payment.fixtures import ( generate_delivery_mechanisms, @@ -119,10 +119,10 @@ def handle(self, *args: Any, **options: Any) -> None: # Load fixtures fixtures = [ + "apps/account/fixtures/initial.json", "apps/geo/fixtures/data.json", "apps/core/fixtures/data.json", "apps/account/fixtures/data.json", - "apps/core/fixtures/businessareapartnerthrough.json", "apps/program/fixtures/data.json", "apps/registration_data/fixtures/data.json", "apps/household/fixtures/documenttype.json", @@ -156,7 +156,6 @@ def handle(self, *args: Any, **options: Any) -> None: # Load more fixtures additional_fixtures = [ "apps/core/fixtures/pdu.json", - "apps/program/fixtures/programpartnerthrough.json", "apps/grievance/fixtures/data.json", ] self.stdout.write("Loading additional fixtures...") @@ -188,6 +187,7 @@ def handle(self, *args: Any, **options: Any) -> None: role_with_all_perms = Role.objects.get(name="Role with all permissions") afghanistan = BusinessArea.objects.get(slug="afghanistan") partner = Partner.objects.get(name="UNICEF") + unicef_hq = Partner.objects.get(name=settings.UNICEF_HQ_PARTNER, parent=partner) combined_email_list: List[str] = [email.strip() for email in email_list + tester_list if email.strip()] @@ -195,8 +195,8 @@ def handle(self, *args: Any, **options: Any) -> None: self.stdout.write("Creating users...") for email in combined_email_list: try: - user = User.objects.create_user(email, email, "password", partner=partner) - UserRole.objects.create( + user = User.objects.create_user(email, email, "password", partner=unicef_hq) + RoleAssignment.objects.create( user=user, role=role_with_all_perms, business_area=afghanistan, diff --git a/src/hct_mis_api/apps/core/models.py b/src/hct_mis_api/apps/core/models.py index 483ed32e82..1a2af24329 100644 --- a/src/hct_mis_api/apps/core/models.py +++ b/src/hct_mis_api/apps/core/models.py @@ -26,7 +26,7 @@ from mptt.fields import TreeForeignKey -class BusinessAreaPartnerThrough(TimeStampedUUIDModel): +class BusinessAreaPartnerThrough(TimeStampedUUIDModel): # TODO: remove after migration to RoleAssignment business_area = models.ForeignKey( "BusinessArea", on_delete=models.CASCADE, diff --git a/src/hct_mis_api/apps/core/permissions_views_mixins.py b/src/hct_mis_api/apps/core/permissions_views_mixins.py index 0e031e855e..4b28099106 100644 --- a/src/hct_mis_api/apps/core/permissions_views_mixins.py +++ b/src/hct_mis_api/apps/core/permissions_views_mixins.py @@ -21,8 +21,8 @@ def dispatch(self, request: HttpRequest, *args: Any, **kwargs: Any) -> Any: class UploadFilePermissionMixin(ViewPermissionsMixinBase): def has_permissions(self) -> bool: - roles = self.request.user.user_roles.all() + roles = self.request.user.role_assignments.all() return any( - self.request.user.has_permission(Permissions.UPLOAD_STORAGE_FILE.name, role.business_area) for role in roles + self.request.user.has_perm(Permissions.UPLOAD_STORAGE_FILE.name, role.business_area) for role in roles ) diff --git a/src/hct_mis_api/apps/core/signals.py b/src/hct_mis_api/apps/core/signals.py index 72e6b040b1..47ae2bc99a 100644 --- a/src/hct_mis_api/apps/core/signals.py +++ b/src/hct_mis_api/apps/core/signals.py @@ -1,11 +1,15 @@ from typing import Any +from django.conf import settings from django.core.exceptions import ValidationError -from django.db.models.signals import m2m_changed, post_delete +from django.db.models.signals import m2m_changed, post_save from django.dispatch import receiver -from hct_mis_api.apps.core.models import BusinessAreaPartnerThrough, DataCollectingType -from hct_mis_api.apps.program.models import ProgramPartnerThrough +from hct_mis_api.apps.account.models import Partner, Role, RoleAssignment +from hct_mis_api.apps.account.permissions import ( + DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER, +) +from hct_mis_api.apps.core.models import BusinessArea, DataCollectingType @receiver(m2m_changed, sender=DataCollectingType.compatible_types.through) @@ -18,12 +22,30 @@ def validate_compatible_types( raise ValidationError("DCTs of different types cannot be compatible with each other.") -@receiver(post_delete, sender=BusinessAreaPartnerThrough) -def partner_role_removed(sender: Any, instance: BusinessAreaPartnerThrough, **kwargs: Any) -> None: +@receiver(post_save, sender=BusinessArea) +def business_area_created(sender: Any, instance: BusinessArea, created: bool, **kwargs: Any) -> None: """ - If roles are revoked for a Partner from a whole Business Area, Partner looses access to all Programs in this Business Area + Create new UNICEF subpartners for the new business area """ - partner = instance.partner - business_area = instance.business_area - programs_in_business_area = business_area.program_set.all() - ProgramPartnerThrough.objects.filter(partner=partner, program__in=programs_in_business_area).delete() + if created: + unicef = Partner.objects.get(name="UNICEF") + unicef_subpartner = Partner.objects.create(name=f"UNICEF Partner for {instance.slug}", parent=unicef) + role_for_unicef_subpartners, _ = Role.objects.get_or_create( + name="Role for UNICEF Partners", + is_visible_on_ui=False, + is_available_for_partner=False, + defaults={"permissions": DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER}, + ) + unicef_subpartner.allowed_business_areas.add(instance) + RoleAssignment.objects.create( + user=None, partner=unicef_subpartner, role=role_for_unicef_subpartners, business_area=instance, program=None + ) + unicef_hq = Partner.objects.get(name=settings.UNICEF_HQ_PARTNER) + unicef_hq.allowed_business_areas.add(instance) + RoleAssignment.objects.create( + user=None, + partner=unicef_hq, + role=Role.objects.filter(name="Role with all permissions").first(), + business_area=instance, + program=None, + ) diff --git a/src/hct_mis_api/apps/core/tasks_schedules.py b/src/hct_mis_api/apps/core/tasks_schedules.py index 556506e621..b3ce93bbd3 100644 --- a/src/hct_mis_api/apps/core/tasks_schedules.py +++ b/src/hct_mis_api/apps/core/tasks_schedules.py @@ -53,4 +53,8 @@ "task": "hct_mis_api.apps.dashboard.celery_tasks.update_dashboard_figures", "schedule": crontab(hour="*/24"), }, + "invalidate_permissions_cache_for_user_if_expired_role": { + "task": "hct_mis_api.apps.account.celery_tasks.invalidate_permissions_cache_for_user_if_expired_role", + "schedule": crontab(hour="*/24"), + }, } diff --git a/src/hct_mis_api/apps/core/templates/core/admin/allowed_partners.html b/src/hct_mis_api/apps/core/templates/core/admin/allowed_partners.html new file mode 100644 index 0000000000..d769f3ff2d --- /dev/null +++ b/src/hct_mis_api/apps/core/templates/core/admin/allowed_partners.html @@ -0,0 +1,19 @@ +{% extends "admin_extra_buttons/action_page.html" %} +{% load i18n admin_urls static admin_modify mptt_tags engine %} + +{% block action-content %} +
+ +


+

Allowed Partners for {{ business_area.name }}

+ +
+ {% csrf_token %} + {{ form.media }} + {{ form.partners }} +
+ +
+
+ +{% endblock %} \ No newline at end of file diff --git a/src/hct_mis_api/apps/core/utils.py b/src/hct_mis_api/apps/core/utils.py index a1622b2052..ac41a4039b 100644 --- a/src/hct_mis_api/apps/core/utils.py +++ b/src/hct_mis_api/apps/core/utils.py @@ -47,6 +47,7 @@ from hct_mis_api.apps.account.models import User + logger = logging.getLogger(__name__) @@ -634,15 +635,14 @@ def chart_permission_decorator( @functools.wraps(chart_resolve) def resolve_f(*args: Any, **kwargs: Any) -> Any: from hct_mis_api.apps.core.models import BusinessArea + from hct_mis_api.apps.program.models import Program _, resolve_info = args if resolve_info.context.user.is_authenticated: business_area_slug = kwargs.get("business_area_slug", "global") business_area = BusinessArea.objects.filter(slug=business_area_slug).first() - program_id = get_program_id_from_headers(resolve_info.context.headers) - if any( - resolve_info.context.user.has_permission(per.name, business_area, program_id) for per in permissions - ): + program = Program.objects.filter(id=get_program_id_from_headers(resolve_info.context.headers)).first() + if any(resolve_info.context.user.has_perm(per.name, program or business_area) for per in permissions): return chart_resolve(*args, **kwargs) log_and_raise("Permission Denied") diff --git a/src/hct_mis_api/apps/core/validators.py b/src/hct_mis_api/apps/core/validators.py index a2e4a6bad3..557611e136 100644 --- a/src/hct_mis_api/apps/core/validators.py +++ b/src/hct_mis_api/apps/core/validators.py @@ -367,7 +367,7 @@ def validate_partners_data(cls, *args: Any, **kwargs: Any) -> Optional[None]: if ( partner_access == Program.SELECTED_PARTNERS_ACCESS - and not partner.is_unicef + and not partner.is_unicef_subpartner and partner.id not in partners_ids ): raise ValidationError("Please assign access to your partner before saving the programme.") diff --git a/src/hct_mis_api/apps/core/views.py b/src/hct_mis_api/apps/core/views.py index 3eaf10cec9..b21328f4f2 100644 --- a/src/hct_mis_api/apps/core/views.py +++ b/src/hct_mis_api/apps/core/views.py @@ -55,7 +55,7 @@ def trigger_error(request: HttpRequest) -> HttpResponse: @login_required def download_dashboard_report(request: HttpRequest, report_id: "UUID") -> Any: report = get_object_or_404(DashboardReport, id=report_id) - if not request.user.has_permission(Permissions.DASHBOARD_EXPORT.name, report.business_area): + if not request.user.has_perm(Permissions.DASHBOARD_EXPORT.name, report.business_area): logger.error("Permission Denied: You need dashboard export permission to access this file") raise PermissionDenied("Permission Denied: You need dashboard export permission to access this file") return redirect(report.file.url) diff --git a/src/hct_mis_api/apps/geo/migrations/0001_migration.py b/src/hct_mis_api/apps/geo/migrations/0001_migration.py index d6c3d38c70..89a053752f 100644 --- a/src/hct_mis_api/apps/geo/migrations/0001_migration.py +++ b/src/hct_mis_api/apps/geo/migrations/0001_migration.py @@ -2,6 +2,7 @@ import django.contrib.gis.db.models.fields import django.contrib.postgres.fields.citext +from django.contrib.postgres.operations import CITextExtension from django.db import migrations, models import django.db.models.deletion import model_utils.fields @@ -17,6 +18,7 @@ class Migration(migrations.Migration): ] operations = [ + CITextExtension(), migrations.CreateModel( name='Country', fields=[ diff --git a/src/hct_mis_api/apps/geo/signals.py b/src/hct_mis_api/apps/geo/signals.py index 12c5435d6f..a7d3471196 100644 --- a/src/hct_mis_api/apps/geo/signals.py +++ b/src/hct_mis_api/apps/geo/signals.py @@ -6,20 +6,6 @@ from hct_mis_api.api.caches import get_or_create_cache_key from hct_mis_api.apps.geo.models import Area, AreaType, Country -from hct_mis_api.apps.program.models import ProgramPartnerThrough - - -@receiver(post_save, sender=Area) -def handle_add_area_to_full_area_access_program_partner( - sender: Any, instance: Area, created: bool, **kwargs: Any -) -> None: - if created: - business_areas = instance.area_type.country.business_areas.all() - for business_area in business_areas: - for program_partner in ProgramPartnerThrough.objects.filter( - full_area_access=True, program__in=business_area.program_set.all() - ): - program_partner.areas.add(instance) @receiver(post_save, sender=Country) diff --git a/src/hct_mis_api/apps/grievance/filters.py b/src/hct_mis_api/apps/grievance/filters.py index 02827f0cf3..49aa633b8d 100644 --- a/src/hct_mis_api/apps/grievance/filters.py +++ b/src/hct_mis_api/apps/grievance/filters.py @@ -307,12 +307,13 @@ def filter_is_cross_area(self, qs: QuerySet, name: str, value: bool) -> QuerySet user = self.request.user business_area = BusinessArea.objects.get(slug=self.request.headers.get("Business-Area")) program_id = get_program_id_from_headers(self.request.headers) + program = Program.objects.filter(id=program_id).first() perm = Permissions.GRIEVANCES_CROSS_AREA_FILTER.value if ( value is True - and user.has_permission(perm, business_area, program_id) - and (user.partner.has_full_area_access_in_program(program_id) or not program_id) + and user.has_perm(perm, program or business_area) + and (not user.partner.has_area_limits_in_program(program_id) or not program_id) ): return qs.filter(needs_adjudication_ticket_details__is_cross_area=True) else: diff --git a/src/hct_mis_api/apps/grievance/mutations.py b/src/hct_mis_api/apps/grievance/mutations.py index 89106c009c..8086b36860 100644 --- a/src/hct_mis_api/apps/grievance/mutations.py +++ b/src/hct_mis_api/apps/grievance/mutations.py @@ -582,12 +582,11 @@ def mutate( if isinstance(grievance_ticket.ticket_details, TicketNeedsAdjudicationDetails): partner = user.partner - if not partner.is_unicef: - for selected_individual in grievance_ticket.ticket_details.selected_individuals.all(): - if not partner.has_area_access( - area_id=selected_individual.household.admin2.id, program_id=selected_individual.program.id - ): - raise PermissionDenied("Permission Denied: User does not have access to close ticket") + for selected_individual in grievance_ticket.ticket_details.selected_individuals.all(): + if not partner.has_area_access( + area_id=selected_individual.household.admin2.id, program_id=selected_individual.program.id + ): + raise PermissionDenied("Permission Denied: User does not have access to close ticket") if not grievance_ticket.can_change_status(status): log_and_raise("New status is incorrect") diff --git a/src/hct_mis_api/apps/grievance/notifications.py b/src/hct_mis_api/apps/grievance/notifications.py index 33cd8f7555..1ccee09788 100644 --- a/src/hct_mis_api/apps/grievance/notifications.py +++ b/src/hct_mis_api/apps/grievance/notifications.py @@ -8,7 +8,7 @@ from constance import config -from hct_mis_api.apps.account.models import User, UserRole +from hct_mis_api.apps.account.models import RoleAssignment, User from hct_mis_api.apps.core.utils import encode_id_base64 from hct_mis_api.apps.grievance.models import GrievanceTicket from hct_mis_api.apps.utils.mailjet import MailjetClient @@ -95,21 +95,21 @@ def _prepare_universal_category_created_recipients(self) -> "QuerySet": GrievanceNotification.ACTION_PAYMENT_VERIFICATION_CREATED: "Releaser", GrievanceNotification.ACTION_SENSITIVE_CREATED: "Senior Management", } - user_roles = UserRole.objects.filter( + user_roles = RoleAssignment.objects.filter( role__name=action_roles_dict[self.action], business_area=self.grievance_ticket.business_area, ).exclude(expiry_date__lt=timezone.now()) - queryset = User.objects.filter(user_roles__in=user_roles).distinct() + queryset = User.objects.filter(role_assignments__in=user_roles).distinct() if self.grievance_ticket.assigned_to: queryset = queryset.exclude(id=self.grievance_ticket.assigned_to.id) return queryset.all() def _prepare_for_approval_recipients(self) -> "QuerySet[User]": - user_roles = UserRole.objects.filter( + user_roles = RoleAssignment.objects.filter( role__name="Approver", business_area=self.grievance_ticket.business_area, ).exclude(expiry_date__lt=timezone.now()) - queryset = User.objects.filter(user_roles__in=user_roles).distinct() + queryset = User.objects.filter(role_assignments__in=user_roles).distinct() if self.grievance_ticket.assigned_to: queryset = queryset.exclude(id=self.grievance_ticket.assigned_to.id) return queryset.all() diff --git a/src/hct_mis_api/apps/grievance/schema.py b/src/hct_mis_api/apps/grievance/schema.py index 69b9cb33da..cf80e68e84 100644 --- a/src/hct_mis_api/apps/grievance/schema.py +++ b/src/hct_mis_api/apps/grievance/schema.py @@ -127,6 +127,8 @@ def check_node_permission(cls, info: Any, object_instance: GrievanceTicket) -> N user = info.context.user # when selected All programs in GPF program_id is None program_id: Optional[str] = get_program_id_from_headers(info.context.headers) + program = Program.objects.filter(id=program_id).first() + scope = program or business_area if object_instance.category == GrievanceTicket.CATEGORY_SENSITIVE_GRIEVANCE: perm = Permissions.GRIEVANCES_VIEW_DETAILS_SENSITIVE.value @@ -137,25 +139,20 @@ def check_node_permission(cls, info: Any, object_instance: GrievanceTicket) -> N creator_perm = Permissions.GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_CREATOR.value owner_perm = Permissions.GRIEVANCES_VIEW_DETAILS_EXCLUDING_SENSITIVE_AS_OWNER.value - check_creator = object_instance.created_by == user and user.has_permission( - creator_perm, business_area, program_id - ) - check_assignee = object_instance.assigned_to == user and user.has_permission( - owner_perm, business_area, program_id - ) + check_creator = object_instance.created_by == user and user.has_perm(creator_perm, scope) + check_assignee = object_instance.assigned_to == user and user.has_perm(owner_perm, scope) partner = user.partner - has_partner_area_access = partner.is_unicef ticket_program_id = str(object_instance.programs.first().id) if object_instance.programs.first() else None - if not partner.is_unicef: - if not object_instance.admin2 or not ticket_program_id: - # admin2 is empty or non-program ticket -> no restrictions for admin area - has_partner_area_access = True - else: - has_partner_area_access = partner.has_area_access( - area_id=object_instance.admin2.id, program_id=ticket_program_id - ) + ticket_program = Program.objects.filter(id=ticket_program_id).first() + if not object_instance.admin2 or not ticket_program_id: + # admin2 is empty or non-program ticket -> no restrictions for admin area + has_partner_area_access = True + else: + has_partner_area_access = partner.has_area_access( + area_id=object_instance.admin2.id, program_id=ticket_program_id + ) if ( - user.has_permission(perm, business_area, ticket_program_id) or check_creator or check_assignee + user.has_perm(perm, ticket_program or business_area) or check_creator or check_assignee ) and has_partner_area_access: return None @@ -576,17 +573,27 @@ def resolve_all_grievance_ticket(self, info: Any, **kwargs: Any) -> QuerySet: queryset = queryset.prefetch_related(*to_prefetch) - # Full access to all AdminAreas if is_unicef - # and ignore filtering for Cross Area tickets - if not user.partner.is_unicef and not ( + # Ignore filtering for Cross Area tickets + if not ( kwargs.get("is_cross_area", False) and program_id - and user.partner.has_full_area_access_in_program(program_id) + and not user.partner.has_area_limits_in_program(program_id) ): queryset = filter_grievance_tickets_based_on_partner_areas_2( - queryset, user.partner, business_area_id, program_id + queryset, + user, + business_area_id, + program_id, + [ + Permissions.GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE, + Permissions.GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_CREATOR, + Permissions.GRIEVANCES_VIEW_LIST_EXCLUDING_SENSITIVE_AS_OWNER, + Permissions.GRIEVANCES_VIEW_LIST_SENSITIVE, + Permissions.GRIEVANCES_VIEW_LIST_SENSITIVE_AS_CREATOR, + Permissions.GRIEVANCES_VIEW_LIST_SENSITIVE_AS_OWNER, + *POPULATION_DETAILS, + ], ) - if program_id is None: queryset = queryset | ( GrievanceTicket.objects.select_related("admin2", "assigned_to", "created_by") @@ -613,12 +620,13 @@ def resolve_cross_area_filter_available(self, info: Any, **kwargs: Any) -> bool: return False business_area = BusinessArea.objects.get(slug=info.context.headers.get("Business-Area")) program_id = get_program_id_from_headers(info.context.headers) + program = Program.objects.filter(id=get_program_id_from_headers(info.context.headers)).first() perm = Permissions.GRIEVANCES_CROSS_AREA_FILTER.value - return user.has_permission(perm, business_area, program_id) and user.partner.has_full_area_access_in_program( - program_id - ) + # Access to the cross-area filter, in addition to the standard permissions check, + # is available only if user does not have ANY area limits in the program (has full-area-access) + return user.has_perm(perm, program or business_area) and not user.partner.has_area_limits_in_program(program_id) def resolve_grievance_ticket_status_choices(self, info: Any, **kwargs: Any) -> List[Dict[str, Any]]: return to_choice_object(GrievanceTicket.STATUS_CHOICES) diff --git a/src/hct_mis_api/apps/grievance/utils.py b/src/hct_mis_api/apps/grievance/utils.py index 9a85a133bb..cec7098a59 100644 --- a/src/hct_mis_api/apps/grievance/utils.py +++ b/src/hct_mis_api/apps/grievance/utils.py @@ -8,7 +8,8 @@ from django.db.models import Q, QuerySet from django.shortcuts import get_object_or_404 -from hct_mis_api.apps.account.models import Partner +from hct_mis_api.apps.account.models import Partner, User +from hct_mis_api.apps.account.permissions import Permissions from hct_mis_api.apps.accountability.models import Feedback from hct_mis_api.apps.core.utils import decode_id_string from hct_mis_api.apps.grievance.models import ( @@ -125,61 +126,70 @@ def delete_grievance_documents(ticket_id: str, ids_to_delete: List[str]) -> None def filter_grievance_tickets_based_on_partner_areas_2( queryset: QuerySet["GrievanceTicket"], - user_partner: Partner, + user: User, business_area_id: str, program_id: Optional[str], + permissions: List[Permissions], ) -> QuerySet["GrievanceTicket"]: return filter_based_on_partner_areas_2( queryset=queryset, - user_partner=user_partner, + user=user, business_area_id=business_area_id, program_id=program_id, lookup_id="programs__id__in", id_container=lambda program_id: [program_id], + permissions=permissions, ) def filter_feedback_based_on_partner_areas_2( queryset: QuerySet["Feedback"], - user_partner: Partner, + user: User, business_area_id: str, program_id: Optional[str], + permissions: List[Permissions], ) -> QuerySet["Feedback"]: return filter_based_on_partner_areas_2( queryset=queryset, - user_partner=user_partner, + user=user, business_area_id=business_area_id, program_id=program_id, lookup_id="program__id__in", id_container=lambda program_id: [program_id], + permissions=permissions, ) def filter_based_on_partner_areas_2( queryset: QuerySet["GrievanceTicket", "Feedback"], - user_partner: Partner, + user: User, business_area_id: str, program_id: Optional[str], lookup_id: str, id_container: Callable[[Any], List[Any]], + permissions: List[Permissions], ) -> QuerySet["GrievanceTicket", "Feedback"]: try: programs_for_business_area = [] filter_q = Q() - if program_id and user_partner.has_program_access(program_id): + if program_id and user.has_program_access(program_id): programs_for_business_area = [program_id] elif not program_id: - programs_for_business_area = user_partner.get_program_ids_for_business_area(business_area_id) + programs_for_business_area = user.get_program_ids_for_permission_in_business_area( + business_area_id=business_area_id, permissions=permissions, one_of_permissions=True + ) # if user does not have access to any program/selected program -> return empty queryset for program-related obj if not programs_for_business_area: return queryset.model.objects.none() - programs_permissions = [ - (program_id, user_partner.get_program_areas(program_id)) for program_id in programs_for_business_area - ] - for perm_program_id, areas_ids in programs_permissions: - program_q = Q(**{lookup_id: id_container(perm_program_id)}) + + for program_id in programs_for_business_area: + program_q = Q(**{lookup_id: id_container(program_id)}) areas_null_and_program_q = program_q & Q(admin2__isnull=True) - filter_q |= Q(areas_null_and_program_q | Q(program_q & Q(admin2__in=areas_ids))) + # apply admin area limits if partner has restrictions + area_limits = user.partner.get_area_limits_for_program(program_id) + areas_query = Q(admin2__in=area_limits) if area_limits.exists() else Q() + + filter_q |= Q(areas_null_and_program_q | Q(program_q & areas_query)) # add Feedbacks without program for "All Programmes" query if queryset.model is Feedback and not program_id: @@ -195,9 +205,8 @@ def validate_individual_for_need_adjudication( partner: Partner, individual: Individual, ticket_details: TicketNeedsAdjudicationDetails ) -> None: # Validate partner's permission - if not partner.is_unicef: - if not partner.has_area_access(area_id=individual.household.admin2.id, program_id=individual.program.id): - raise PermissionDenied("Permission Denied: User does not have access to select individual") + if not partner.has_area_access(area_id=individual.household.admin2.id, program_id=individual.program.id): + raise PermissionDenied("Permission Denied: User does not have access to select individual") # validate Individual if individual not in list(ticket_details.possible_duplicates.all()) + [ticket_details.golden_records_individual] + [ diff --git a/src/hct_mis_api/apps/household/fixtures.py b/src/hct_mis_api/apps/household/fixtures.py index f656220356..6049ba43c6 100644 --- a/src/hct_mis_api/apps/household/fixtures.py +++ b/src/hct_mis_api/apps/household/fixtures.py @@ -1,6 +1,8 @@ import random from typing import Any, Dict, List, Optional, Tuple +from django.conf import settings + import factory from factory import enums, fuzzy from factory.django import DjangoModelFactory @@ -152,7 +154,7 @@ def build(cls, **kwargs: Any) -> Household: if "registration_data_import" not in kwargs: kwargs["registration_data_import"] = RegistrationDataImportFactory(program=kwargs["program"]) if "registration_data_import__imported_by__partner" not in kwargs: - kwargs["registration_data_import__imported_by__partner"] = PartnerFactory(name="UNICEF") + kwargs["registration_data_import__imported_by__partner"] = PartnerFactory(name=settings.UNICEF_HQ_PARTNER) return cls._generate(enums.BUILD_STRATEGY, kwargs) @@ -331,7 +333,8 @@ def create_household( individual_args = {} partner = PartnerFactory(name="UNICEF") - household_args["registration_data_import__imported_by__partner"] = partner + unicef_hq = PartnerFactory(name=settings.UNICEF_HQ_PARTNER, parent=partner) + household_args["registration_data_import__imported_by__partner"] = unicef_hq household = HouseholdFactory.build(**household_args) individuals = IndividualFactory.create_batch( @@ -388,7 +391,8 @@ def create_household_with_individual_with_collectors( household_args["size"] = 2 partner = PartnerFactory(name="UNICEF") - household_args["registration_data_import__imported_by__partner"] = partner + unicef_hq = PartnerFactory(name=settings.UNICEF_HQ_PARTNER, parent=partner) + household_args["registration_data_import__imported_by__partner"] = unicef_hq household = HouseholdFactory.build(**household_args) individuals = IndividualFactory.create_batch( diff --git a/src/hct_mis_api/apps/household/schema.py b/src/hct_mis_api/apps/household/schema.py index 1c624bfce9..60111943f3 100644 --- a/src/hct_mis_api/apps/household/schema.py +++ b/src/hct_mis_api/apps/household/schema.py @@ -337,11 +337,10 @@ def resolve_phone_no_alternative_valid(parent, info: Any) -> Boolean: return parent.phone_no_alternative_valid def resolve_delivery_mechanisms_data(parent, info: Any) -> QuerySet[DeliveryMechanismData]: - program_id = get_program_id_from_headers(info.context.headers) - if not info.context.user.has_permission( + program = Program.objects.filter(id=get_program_id_from_headers(info.context.headers)).first() + if not info.context.user.has_perm( Permissions.POPULATION_VIEW_INDIVIDUAL_DELIVERY_MECHANISMS_SECTION.value, - parent.business_area, - program_id, + program or parent.business_area, ): return parent.delivery_mechanisms_data.none() @@ -353,31 +352,30 @@ def check_node_permission(cls, info: Any, object_instance: Individual) -> None: user = info.context.user program_id = get_program_id_from_headers(info.context.headers) - if not user.partner.is_unicef: - if program_id and str(object_instance.program_id) != program_id: - raise PermissionDenied("Permission Denied") - if not user.partner.has_program_access(object_instance.program_id): - raise PermissionDenied("Permission Denied") - if object_instance.household_id and object_instance.household.admin_area_id: - areas_from_partner = user.partner.get_program_areas(object_instance.program_id) + if program_id and str(object_instance.program_id) != program_id: + raise PermissionDenied("Permission Denied") + if not user.has_program_access(object_instance.program_id): + raise PermissionDenied("Permission Denied") + if object_instance.household_id and object_instance.household.admin_area_id: + # check if user has access to the area + area_limits = user.partner.get_area_limits_for_program(object_instance.program_id) + if area_limits.exists(): household = object_instance.household areas_from_household = [ household.admin1_id, household.admin2_id, household.admin3_id, ] - if not areas_from_partner.filter(id__in=areas_from_household).exists(): + if not area_limits.filter(id__in=areas_from_household).exists(): raise PermissionDenied("Permission Denied") # if user can't simply view all individuals, we check if they can do it because of grievance or rdi details - if not user.has_permission( + if not user.has_perm( Permissions.POPULATION_VIEW_INDIVIDUALS_DETAILS.value, - object_instance.business_area, - object_instance.program_id, - ) and not user.has_permission( + object_instance.program or object_instance.business_area, + ) and not user.has_perm( Permissions.RDI_VIEW_DETAILS.value, - object_instance.business_area, - object_instance.program_id, + object_instance.program or object_instance.business_area, ): grievance_tickets = GrievanceTicket.objects.filter( complaint_ticket_details__in=object_instance.complaint_ticket_details.all() @@ -524,26 +522,29 @@ def check_node_permission(cls, info: Any, object_instance: Household) -> None: user = info.context.user program_id = get_program_id_from_headers(info.context.headers) - if not user.partner.is_unicef: - if program_id and str(object_instance.program_id) != program_id: - raise PermissionDenied("Permission Denied") - if not user.partner.has_program_access(object_instance.program_id): - raise PermissionDenied("Permission Denied") - if object_instance.admin_area_id: - areas_from_partner = user.partner.get_program_areas(object_instance.program_id) - areas_from_household = [object_instance.admin1_id, object_instance.admin2_id, object_instance.admin3_id] - if not areas_from_partner.filter(id__in=areas_from_household).exists(): + if program_id and str(object_instance.program_id) != program_id: + raise PermissionDenied("Permission Denied") + if not user.has_program_access(object_instance.program_id): + raise PermissionDenied("Permission Denied") + if object_instance.admin_area_id: + # check if user has access to the area + area_limits = user.partner.get_area_limits_for_program(object_instance.program_id) + if area_limits.exists(): + areas_from_household = [ + object_instance.admin1_id, + object_instance.admin2_id, + object_instance.admin3_id, + ] + if not area_limits.filter(id__in=areas_from_household).exists(): raise PermissionDenied("Permission Denied") # if user doesn't have permission to view all households or RDI details, we check based on their grievance tickets - if not user.has_permission( + if not user.has_perm( Permissions.POPULATION_VIEW_HOUSEHOLDS_DETAILS.value, - object_instance.business_area, - object_instance.program_id, - ) and not user.has_permission( + object_instance.program or object_instance.business_area, + ) and not user.has_perm( Permissions.RDI_VIEW_DETAILS.value, - object_instance.business_area, - object_instance.program_id, + object_instance.program or object_instance.business_area, ): grievance_tickets = GrievanceTicket.objects.filter( complaint_ticket_details__in=object_instance.complaint_ticket_details.all() @@ -719,31 +720,43 @@ def resolve_all_individuals(self, info: Any, **kwargs: Any) -> QuerySet[Individu if does_path_exist_in_query("edges.node.program", info): queryset = queryset.select_related("program") - if not user.partner.is_unicef: # Unicef partner has full access to all AdminAreas - business_area_id = BusinessArea.objects.get(slug=business_area_slug).id - programs_for_business_area = [] - - if program_id and user.partner.has_program_access(program_id): - programs_for_business_area = [program_id] - elif not program_id: - programs_for_business_area = user.partner.get_program_ids_for_business_area(business_area_id) - if not programs_for_business_area: - return Individual.objects.none() - programs_permissions = [ - (program_id, user.partner.get_program_areas(program_id)) for program_id in programs_for_business_area - ] - - filter_q = Q() - for program_id, areas_ids in programs_permissions: - areas_query = Q( - Q(household__admin1__in=areas_ids) - | Q(household__admin2__in=areas_ids) - | Q(household__admin3__in=areas_ids) - | Q(household__admin_area__isnull=True) + business_area_id = BusinessArea.objects.get(slug=business_area_slug).id + programs_for_business_area = [] + + if program_id and user.has_program_access(program_id): + programs_for_business_area = [program_id] + elif not program_id: + programs_for_business_area = user.get_program_ids_for_permission_in_business_area( + business_area_id, + [ + Permissions.RDI_VIEW_DETAILS, + Permissions.POPULATION_VIEW_INDIVIDUALS_LIST, + *ALL_GRIEVANCES_CREATE_MODIFY, + ], + one_of_permissions=True, + ) + if not programs_for_business_area: + return Individual.objects.none() + + filter_q = Q() + for program_id in programs_for_business_area: + program_q = Q(program_id=program_id) + areas_null_and_program_q = program_q & Q(household__admin_area__isnull=True) + # apply admin area limits if partner has restrictions + area_limits = user.partner.get_area_limits_for_program(program_id) + areas_query = ( + Q( + Q(household__admin1__in=area_limits) + | Q(household__admin2__in=area_limits) + | Q(household__admin3__in=area_limits) ) - filter_q |= Q(Q(program_id=program_id) & areas_query) + if area_limits.exists() + else Q() + ) + + filter_q |= Q(areas_null_and_program_q | Q(program_q & areas_query)) - queryset = queryset.filter(filter_q) + queryset = queryset.filter(filter_q) return queryset def resolve_all_households_flex_fields_attributes(self, info: Any, **kwargs: Any) -> Iterable: @@ -768,31 +781,39 @@ def resolve_all_households(self, info: Any, **kwargs: Any) -> QuerySet: queryset = Household.all_merge_status_objects.all() - if not user.partner.is_unicef: # Unicef partner has full access to all AdminAreas - business_area_id = BusinessArea.objects.get(slug=business_area_slug).id - programs_for_business_area = [] + business_area_id = BusinessArea.objects.get(slug=business_area_slug).id + programs_for_business_area = [] + + if program_id and user.has_program_access(program_id): + programs_for_business_area = [program_id] + elif not program_id: + programs_for_business_area = user.get_program_ids_for_permission_in_business_area( + business_area_id, + [ + Permissions.RDI_VIEW_DETAILS, + Permissions.POPULATION_VIEW_HOUSEHOLDS_LIST, + *ALL_GRIEVANCES_CREATE_MODIFY, + ], + one_of_permissions=True, + ) + if not programs_for_business_area: + return Household.objects.none() + + filter_q = Q() + for program_id in programs_for_business_area: + program_q = Q(program_id=program_id) + areas_null_and_program_q = program_q & Q(admin_area__isnull=True) + # apply admin area limits if partner has restrictions + area_limits = user.partner.get_area_limits_for_program(program_id) + areas_query = ( + Q(Q(admin1__in=area_limits) | Q(admin2__in=area_limits) | Q(admin3__in=area_limits)) + if area_limits.exists() + else Q() + ) - if program_id and user.partner.has_program_access(program_id): - programs_for_business_area = [program_id] - elif not program_id: - programs_for_business_area = user.partner.get_program_ids_for_business_area(business_area_id) - if not programs_for_business_area: - return Household.objects.none() - programs_permissions = [ - (program_id, user.partner.get_program_areas(program_id)) for program_id in programs_for_business_area - ] - - filter_q = Q() - for program_id, areas_ids in programs_permissions: - areas_query = Q( - Q(admin1__in=areas_ids) - | Q(admin2__in=areas_ids) - | Q(admin3__in=areas_ids) - | Q(admin_area__isnull=True) - ) - filter_q |= Q(Q(program_id=program_id) & areas_query) + filter_q |= Q(areas_null_and_program_q | Q(program_q & areas_query)) - queryset = queryset.filter(filter_q) + queryset = queryset.filter(filter_q) if does_path_exist_in_query("edges.node.admin2", info): queryset = queryset.select_related("admin_area") diff --git a/src/hct_mis_api/apps/payment/api/caches.py b/src/hct_mis_api/apps/payment/api/caches.py index d78607e6f3..e9bfb156d6 100644 --- a/src/hct_mis_api/apps/payment/api/caches.py +++ b/src/hct_mis_api/apps/payment/api/caches.py @@ -3,6 +3,7 @@ from rest_framework_extensions.key_constructor.bits import KeyBitBase from hct_mis_api.api.caches import BusinessAreaKeyBit, KeyConstructorMixin +from hct_mis_api.apps.account.permissions import Permissions from hct_mis_api.apps.core.models import BusinessArea @@ -15,7 +16,11 @@ def get_data( self, params: Any, view_instance: Any, view_method: Any, request: Any, args: tuple, kwargs: dict ) -> str: business_area = BusinessArea.objects.get(slug=kwargs.get("business_area")) - program_ids = request.user.partner.get_program_ids_for_business_area(str(business_area.id)) + program_ids = request.user.get_program_ids_for_permission_in_business_area( + str(business_area.id), + [Permissions.PM_VIEW_LIST, Permissions.PAYMENT_VIEW_LIST_MANAGERIAL], + one_of_permissions=False, + ) program_ids.sort() return str(program_ids) diff --git a/src/hct_mis_api/apps/payment/api/views.py b/src/hct_mis_api/apps/payment/api/views.py index 77f0662075..36eac56d9a 100644 --- a/src/hct_mis_api/apps/payment/api/views.py +++ b/src/hct_mis_api/apps/payment/api/views.py @@ -85,7 +85,12 @@ class PaymentPlanManagerialViewSet(BusinessAreaMixin, PaymentPlanMixin, mixins.L def get_queryset(self) -> QuerySet: business_area = self.get_business_area() queryset = PaymentPlan.objects.filter(business_area=business_area) - program_ids = self.request.user.partner.get_program_ids_for_business_area(str(business_area.id)) + program_ids = self.request.user.get_program_ids_for_permission_in_business_area( + str(business_area.id), + [perm for perm_class in self.permission_classes for perm in perm_class.PERMISSIONS], + one_of_permissions=False, + ) + return queryset.filter( status__in=[ PaymentPlan.Status.IN_APPROVAL, @@ -137,10 +142,9 @@ def _perform_payment_plan_status_action( payment_plan_id = decode_id_string(payment_plan_id_str) payment_plan = get_object_or_404(PaymentPlan, id=payment_plan_id) - if not self.request.user.has_permission( - self._get_action_permission(input_data["action"]), - business_area, - payment_plan.program_cycle.program_id, + if not self.request.user.has_perm( + self._get_action_permission(input_data["action"]), # type: ignore + payment_plan.program_cycle.program or business_area, ): raise PermissionDenied( f"You do not have permission to perform action {input_data['action']} " diff --git a/src/hct_mis_api/apps/payment/notifications.py b/src/hct_mis_api/apps/payment/notifications.py index f4aaec5742..0c8d94671c 100644 --- a/src/hct_mis_api/apps/payment/notifications.py +++ b/src/hct_mis_api/apps/payment/notifications.py @@ -7,12 +7,8 @@ from constance import config -from hct_mis_api.apps.account.models import Partner, User, UserRole -from hct_mis_api.apps.account.permissions import ( - DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER, - Permissions, -) -from hct_mis_api.apps.core.models import BusinessAreaPartnerThrough +from hct_mis_api.apps.account.models import RoleAssignment, User +from hct_mis_api.apps.account.permissions import Permissions from hct_mis_api.apps.core.utils import encode_id_base64 from hct_mis_api.apps.payment.models import PaymentPlan from hct_mis_api.apps.utils.mailjet import MailjetClient @@ -75,36 +71,23 @@ def _prepare_user_recipients(self) -> QuerySet[User]: business_area = self.payment_plan.business_area program = self.payment_plan.program - user_roles = ( - UserRole.objects.filter( - role__permissions__contains=[permission], - business_area=business_area, + role_assignments = ( + RoleAssignment.objects.filter( + Q(role__permissions__contains=[permission]) + & Q(business_area=business_area) + & (Q(program=None) | Q(program=program)) ) .exclude(expiry_date__lt=timezone.now()) .distinct() ) - - ba_partner_with_permission = BusinessAreaPartnerThrough.objects.filter( - business_area=business_area, - roles__permissions__contains=[permission], - ).distinct() - partners_with_permission = Partner.objects.filter(business_area_partner_through__in=ba_partner_with_permission) - partner_role_q = Q(partner__in=partners_with_permission) - - program_access_q = Q(partner__in=program.partners.all()) - - unicef_q = ( - Q(user_roles__business_area=business_area, partner__name="UNICEF") - if permission in DEFAULT_PERMISSIONS_LIST_FOR_IS_UNICEF_PARTNER - else Q() - ) users = ( User.objects.filter( - (Q(user_roles__in=user_roles) & program_access_q) | Q(partner_role_q & program_access_q) | unicef_q + Q(role_assignments__in=role_assignments) | Q(partner__role_assignments__in=role_assignments) ) .exclude(id=self.action_user.id) .distinct() ) + if settings.ENV == "prod": users = users.exclude(is_superuser=True) return users diff --git a/src/hct_mis_api/apps/payment/schema.py b/src/hct_mis_api/apps/payment/schema.py index dd17f0d4a3..7c45fb7631 100644 --- a/src/hct_mis_api/apps/payment/schema.py +++ b/src/hct_mis_api/apps/payment/schema.py @@ -429,10 +429,9 @@ def _parse_pp_conflict_data(cls, conflicts_data: List) -> List[Any]: def resolve_fsp_auth_code(self, info: Any) -> str: user = info.context.user - if not user.has_permission( + if not user.has_perm( Permissions.PM_VIEW_FSP_AUTH_CODE.value, - self.business_area, - self.program_id, + self.program or self.business_area, ): return "" return self.fsp_auth_code or "" # type: ignore @@ -752,14 +751,12 @@ def resolve_total_households_count_with_valid_phone_no(parent: PaymentPlan, info def resolve_can_export_xlsx(cls, parent: PaymentPlan, info: Any) -> bool: if parent.status in [PaymentPlan.Status.ACCEPTED, PaymentPlan.Status.FINISHED]: if parent.fsp_communication_channel == "API": - if not info.context.user.has_permission( - Permissions.PM_DOWNLOAD_FSP_AUTH_CODE.value, parent.business_area - ): + if not info.context.user.has_perm(Permissions.PM_DOWNLOAD_FSP_AUTH_CODE.value, parent.business_area): return False return parent.can_create_xlsx_with_fsp_auth_code if parent.fsp_communication_channel == "XLSX": - if not info.context.user.has_permission(Permissions.PM_EXPORT_XLSX_FOR_FSP.value, parent.business_area): + if not info.context.user.has_perm(Permissions.PM_EXPORT_XLSX_FOR_FSP.value, parent.business_area): return False return cls._has_fsp_delivery_mechanism_xlsx_template(parent) @@ -769,16 +766,12 @@ def resolve_can_export_xlsx(cls, parent: PaymentPlan, info: Any) -> bool: def resolve_can_download_xlsx(parent: PaymentPlan, info: Any) -> bool: if parent.status in [PaymentPlan.Status.ACCEPTED, PaymentPlan.Status.FINISHED]: if parent.fsp_communication_channel == "API": - if not info.context.user.has_permission( - Permissions.PM_DOWNLOAD_FSP_AUTH_CODE.value, parent.business_area - ): + if not info.context.user.has_perm(Permissions.PM_DOWNLOAD_FSP_AUTH_CODE.value, parent.business_area): return False return parent.has_export_file if parent.fsp_communication_channel == "XLSX": - if not info.context.user.has_permission( - Permissions.PM_DOWNLOAD_XLSX_FOR_FSP.value, parent.business_area - ): + if not info.context.user.has_perm(Permissions.PM_DOWNLOAD_XLSX_FOR_FSP.value, parent.business_area): return False return parent.has_export_file @@ -788,7 +781,7 @@ def resolve_can_download_xlsx(parent: PaymentPlan, info: Any) -> bool: def resolve_can_send_xlsx_password(parent: PaymentPlan, info: Any) -> bool: if parent.status in [PaymentPlan.Status.ACCEPTED, PaymentPlan.Status.FINISHED]: if parent.fsp_communication_channel == "API": - if not info.context.user.has_permission(Permissions.PM_SEND_XLSX_PASSWORD.value, parent.business_area): + if not info.context.user.has_perm(Permissions.PM_SEND_XLSX_PASSWORD.value, parent.business_area): return False return parent.has_export_file return False diff --git a/src/hct_mis_api/apps/payment/views.py b/src/hct_mis_api/apps/payment/views.py index 6f0b96c75a..de7c0668a3 100644 --- a/src/hct_mis_api/apps/payment/views.py +++ b/src/hct_mis_api/apps/payment/views.py @@ -30,7 +30,7 @@ def download_payment_verification_plan( # type: ignore ]: payment_verification_plan_id = decode_id_string(verification_id) payment_verification_plan = get_object_or_404(PaymentVerificationPlan, id=payment_verification_plan_id) - if not request.user.has_permission( + if not request.user.has_perm( Permissions.PAYMENT_VERIFICATION_EXPORT.value, payment_verification_plan.business_area ): raise PermissionDenied("Permission Denied: User does not have correct permission.") @@ -58,7 +58,7 @@ def download_payment_plan_payment_list( # type: ignore # missing return payment_plan_id_str = decode_id_string(payment_plan_id) payment_plan = get_object_or_404(PaymentPlan, id=payment_plan_id_str) - if not request.user.has_permission(Permissions.PM_VIEW_LIST.value, payment_plan.business_area): + if not request.user.has_perm(Permissions.PM_VIEW_LIST.value, payment_plan.business_area): raise PermissionDenied("Permission Denied: User does not have correct permission.") if payment_plan.status not in (PaymentPlan.Status.LOCKED, PaymentPlan.Status.ACCEPTED, PaymentPlan.Status.FINISHED): @@ -79,7 +79,7 @@ def download_payment_plan_summary_pdf( # type: ignore # missing return payment_plan_id_str = decode_id_string(payment_plan_id) payment_plan = get_object_or_404(PaymentPlan, id=payment_plan_id_str) - if not request.user.has_permission(Permissions.PM_EXPORT_PDF_SUMMARY.value, payment_plan.business_area): + if not request.user.has_perm(Permissions.PM_EXPORT_PDF_SUMMARY.value, payment_plan.business_area): raise PermissionDenied("Permission Denied: User does not have correct permission.") if payment_plan.status not in (PaymentPlan.Status.ACCEPTED, PaymentPlan.Status.FINISHED): diff --git a/src/hct_mis_api/apps/program/admin.py b/src/hct_mis_api/apps/program/admin.py index 9a76607a7b..1efc74fa4e 100644 --- a/src/hct_mis_api/apps/program/admin.py +++ b/src/hct_mis_api/apps/program/admin.py @@ -14,17 +14,12 @@ from adminfilters.filters import ChoicesFieldComboFilter from adminfilters.mixin import AdminAutoCompleteSearchMixin -from hct_mis_api.apps.account.models import Partner +from hct_mis_api.apps.account.models import AdminAreaLimitedTo, Partner from hct_mis_api.apps.geo.models import Area from hct_mis_api.apps.household.documents import HouseholdDocument, get_individual_doc from hct_mis_api.apps.household.forms import CreateTargetPopulationTextForm from hct_mis_api.apps.household.models import Household, Individual -from hct_mis_api.apps.program.models import ( - BeneficiaryGroup, - Program, - ProgramCycle, - ProgramPartnerThrough, -) +from hct_mis_api.apps.program.models import BeneficiaryGroup, Program, ProgramCycle from hct_mis_api.apps.registration_datahub.services.biometric_deduplication import ( BiometricDeduplicationService, ) @@ -71,10 +66,10 @@ class ProgramCycleAdminInline(admin.TabularInline): raw_id_fields = ("created_by",) -class PartnerAreaForm(forms.Form): +class PartnerAreaLimitForm(forms.Form): partner = forms.ModelChoiceField(queryset=Partner.objects.all(), required=True) areas = TreeNodeMultipleChoiceField( - queryset=Area.objects.filter(area_type__area_level__lte=3), widget=CheckboxSelectMultiple(), required=False + queryset=Area.objects.filter(area_type__area_level__lte=3), widget=CheckboxSelectMultiple(), required=True ) @@ -166,63 +161,58 @@ def create_target_population_from_list(self, request: HttpRequest, pk: str) -> O context["form"] = form return TemplateResponse(request, "admin/program/program/create_target_population_from_text.html", context) - @button(permission="account.view_partner") - def partners(self, request: HttpRequest, pk: int) -> Union[TemplateResponse, HttpResponseRedirect]: - context = self.get_common_context(request, pk, title="Partner access") + @button(permission="account.can_change_area_limits") + def area_limits(self, request: HttpRequest, pk: int) -> Union[TemplateResponse, HttpResponseRedirect]: + context = self.get_common_context(request, pk, title="Admin Area Limits") program: Program = context["original"] - PartnerAreaFormSet = formset_factory(PartnerAreaForm, extra=0, can_delete=True) + PartnerAreaLimitFormSet = formset_factory(PartnerAreaLimitForm, extra=0, can_delete=True) is_editable = program.partner_access == Program.SELECTED_PARTNERS_ACCESS if request.method == "GET" or not is_editable: partner_area_data = [] - for partner_program_through in program.program_partner_through.all(): + for area_limits in program.admin_area_limits.all(): partner_area_data.append( { - "partner": partner_program_through.partner, - "areas": [ - str(area_id) for area_id in partner_program_through.areas.values_list("id", flat=True) - ], + "partner": area_limits.partner, + "areas": [str(area_id) for area_id in area_limits.areas.values_list("id", flat=True)], } ) - partner_area_form_set = PartnerAreaFormSet(initial=partner_area_data, prefix="program_areas") + partner_area_form_set = PartnerAreaLimitFormSet(initial=partner_area_data, prefix="program_areas") elif request.method == "POST": - partner_area_form_set = PartnerAreaFormSet(request.POST or None, prefix="program_areas") + partner_area_form_set = PartnerAreaLimitFormSet(request.POST or None, prefix="program_areas") if partner_area_form_set.is_valid(): for partner_area_form in partner_area_form_set: form = partner_area_form.cleaned_data if form and not form["DELETE"]: areas_ids = list(map(lambda area: str(area.id), form["areas"])) - program_partner, _ = ProgramPartnerThrough.objects.update_or_create( + program_partner, _ = AdminAreaLimitedTo.objects.update_or_create( partner=form["partner"], program=program, ) - if not areas_ids: - program_partner.full_area_access = True - program_partner.save(update_fields=["full_area_access"]) - else: - program_partner.full_area_access = False - program_partner.save(update_fields=["full_area_access"]) - program_partner.areas.set(areas_ids) + program_partner.areas.set(areas_ids) elif form and form["DELETE"]: - ProgramPartnerThrough.objects.filter(partner=form["partner"], program=program).delete() - return HttpResponseRedirect(reverse("admin:program_program_partners", args=[pk])) + AdminAreaLimitedTo.objects.filter(partner=form["partner"], program=program).delete() + return HttpResponseRedirect(reverse("admin:program_program_area_limits", args=[pk])) context["program_area_formset"] = partner_area_form_set context["business_area"] = program.business_area context["areas"] = Area.objects.filter(area_type__country__business_areas__id=program.business_area.id) + # it's only possible to create area limits for partners that have a role in this program context["partners"] = ( - Partner.objects.filter(Q(allowed_business_areas=program.business_area)) - .exclude(name="UNICEF") + Partner.objects.filter( + Q(role_assignments__program=program) + | (Q(role_assignments__business_area=program.business_area) & Q(role_assignments__program__isnull=True)) + ) + .exclude(parent__name="UNICEF") .order_by("name") ) context["program"] = program - context["unicef_partner_id"] = Partner.objects.get(name="UNICEF").id if is_editable: - return TemplateResponse(request, "admin/program/program/program_partner_access.html", context) + return TemplateResponse(request, "admin/program/program/program_area_limits.html", context) else: - return TemplateResponse(request, "admin/program/program/program_partner_access_readonly.html", context) + return TemplateResponse(request, "admin/program/program/program_area_limits_readonly.html", context) @button(permission="account.can_reindex_programs") def reindex_program(self, request: HttpRequest, pk: int) -> HttpResponseRedirect: diff --git a/src/hct_mis_api/apps/program/fixtures/programpartnerthrough.json b/src/hct_mis_api/apps/program/fixtures/programpartnerthrough.json deleted file mode 100644 index 5436632333..0000000000 --- a/src/hct_mis_api/apps/program/fixtures/programpartnerthrough.json +++ /dev/null @@ -1,27 +0,0 @@ -[ -{ - "model": "program.programpartnerthrough", - "pk": "93687a51-1515-4c7b-a66b-215703c8ffd8", - "fields": { - "created_at": "2024-05-15T20:46:38.467Z", - "updated_at": "2024-05-15T20:46:38.467Z", - "program": "939ff91b-7f89-4e3c-9519-26ed62f51718", - "partner": 3, - "full_area_access": false, - "areas": [ - "18ff6f29-cd4d-4e80-8e80-13494b32ee53" - ] - } -}, -{ - "model": "program.programpartnerthrough", - "pk": "4478b6c7-8bba-470e-abca-e0c095fd5173", - "fields": { - "created_at": "2024-05-15T20:46:38.445Z", - "updated_at": "2024-05-15T20:46:38.445Z", - "program": "00000000-0000-0000-0000-faceb00c0000", - "partner": 3, - "full_area_access": true - } -} -] diff --git a/src/hct_mis_api/apps/program/inputs.py b/src/hct_mis_api/apps/program/inputs.py index ec933e3ea9..7a7508fc01 100644 --- a/src/hct_mis_api/apps/program/inputs.py +++ b/src/hct_mis_api/apps/program/inputs.py @@ -1,7 +1,7 @@ import graphene -class ProgramPartnerThroughInput(graphene.InputObjectType): +class ProgramPartnerAccessInput(graphene.InputObjectType): partner = graphene.String() areas = graphene.List(graphene.String) area_access = graphene.String(description="'ADMIN_AREA' or 'BUSINESS_AREA'") @@ -33,7 +33,7 @@ class CreateProgramInput(graphene.InputObjectType): business_area_slug = graphene.String() data_collecting_type_code = graphene.String() beneficiary_group = graphene.String() - partners = graphene.List(ProgramPartnerThroughInput) + partners = graphene.List(ProgramPartnerAccessInput) partner_access = graphene.String() programme_code = graphene.String() pdu_fields = graphene.List(PDUFieldInput) @@ -60,7 +60,7 @@ class UpdateProgramInput(graphene.InputObjectType): class UpdateProgramPartnersInput(graphene.InputObjectType): id = graphene.String(required=True) - partners = graphene.List(ProgramPartnerThroughInput) + partners = graphene.List(ProgramPartnerAccessInput) partner_access = graphene.String() @@ -78,7 +78,7 @@ class CopyProgramInput(graphene.InputObjectType): administrative_areas_of_implementation = graphene.String() business_area_slug = graphene.String() data_collecting_type_code = graphene.String() - partners = graphene.List(ProgramPartnerThroughInput) + partners = graphene.List(ProgramPartnerAccessInput) partner_access = graphene.String() programme_code = graphene.String() pdu_fields = graphene.List(PDUFieldInput) diff --git a/src/hct_mis_api/apps/program/models.py b/src/hct_mis_api/apps/program/models.py index 617ebd74be..4a62bb9dc3 100644 --- a/src/hct_mis_api/apps/program/models.py +++ b/src/hct_mis_api/apps/program/models.py @@ -40,7 +40,7 @@ ) -class ProgramPartnerThrough(TimeStampedUUIDModel): +class ProgramPartnerThrough(TimeStampedUUIDModel): # TODO: remove after migration to RoleAssignment program = models.ForeignKey( "Program", on_delete=models.CASCADE, diff --git a/src/hct_mis_api/apps/program/schema.py b/src/hct_mis_api/apps/program/schema.py index 93c295fdd9..20620e2bbe 100644 --- a/src/hct_mis_api/apps/program/schema.py +++ b/src/hct_mis_api/apps/program/schema.py @@ -32,7 +32,7 @@ from hct_mis_api.apps.account.schema import PartnerNode from hct_mis_api.apps.core.decorators import cached_in_django_cache from hct_mis_api.apps.core.extended_connection import ExtendedConnection -from hct_mis_api.apps.core.models import DataCollectingType +from hct_mis_api.apps.core.models import BusinessArea, DataCollectingType from hct_mis_api.apps.core.schema import ( ChoiceObject, DataCollectingTypeNode, @@ -132,7 +132,8 @@ def resolve_total_number_of_households_with_tp_in_program(program: Program, info def resolve_partners(program: Program, info: Any, **kwargs: Any) -> QuerySet[Partner]: return ( Partner.objects.filter( - program_partner_through__program=program, + Q(role_assignments__program=program) + | (Q(role_assignments__program=None) & Q(role_assignments__business_area=program.business_area)) ) .annotate(partner_program=Value(program.id)) .order_by("name") @@ -244,13 +245,14 @@ def resolve_all_programs(self, info: Any, **kwargs: Any) -> QuerySet[Program]: if not info.context.headers.get("Business-Area"): raise GraphQLError("Not found header Business-Area") user = info.context.user + business_area = BusinessArea.objects.filter(slug=info.context.headers.get("Business-Area").lower()).first() + allowed_programs = Program.objects.filter(id__in=user.get_program_ids_for_business_area(business_area.id)) filters = { - "business_area__slug": info.context.headers.get("Business-Area").lower(), + "business_area": business_area, "data_collecting_type__deprecated": False, "data_collecting_type__isnull": False, + "id__in": allowed_programs.values_list("id", flat=True), } - if not user.partner.is_unicef: - filters.update({"id__in": user.partner.programs.values_list("id", flat=True)}) return ( Program.objects.filter(**filters) .exclude(data_collecting_type__code="unknown") diff --git a/src/hct_mis_api/apps/program/signals.py b/src/hct_mis_api/apps/program/signals.py index 33b78ce6ef..ec8b5f27c4 100644 --- a/src/hct_mis_api/apps/program/signals.py +++ b/src/hct_mis_api/apps/program/signals.py @@ -6,13 +6,7 @@ from django.dispatch import Signal, receiver from hct_mis_api.api.caches import get_or_create_cache_key -from hct_mis_api.apps.account.models import Partner -from hct_mis_api.apps.geo.models import Area -from hct_mis_api.apps.program.models import ( - BeneficiaryGroup, - Program, - ProgramPartnerThrough, -) +from hct_mis_api.apps.program.models import BeneficiaryGroup, Program from hct_mis_api.apps.program.utils import ( create_program_partner_access, remove_program_partner_access, @@ -28,7 +22,6 @@ def adjust_program_size(program: Program) -> None: pre_save_partner_access_change = Signal(providing_args=["old_partner_access"]) -pre_save_full_area_access_flag_change = Signal(providing_args=["old_full_area_access_flag"]) @receiver(pre_save, sender=Program) @@ -41,11 +34,6 @@ def track_old_partner_access(sender: Any, instance: Program, **kwargs: Any) -> N @receiver(post_save, sender=Program) def handle_partner_access_change(sender: Any, instance: Program, created: bool, **kwargs: Any) -> None: - if created: - # grant access to UNICEF partner - unicef_partner, _ = Partner.objects.get_or_create(name="UNICEF") - create_program_partner_access([{"partner": unicef_partner.id, "areas": []}], instance) - old_partner_access = instance.old_partner_access new_partner_access = instance.partner_access @@ -56,30 +44,6 @@ def handle_partner_access_change(sender: Any, instance: Program, created: bool, remove_program_partner_access([], instance) -@receiver(pre_save, sender=ProgramPartnerThrough) -def track_old_full_area_access_flag(sender: Any, instance: ProgramPartnerThrough, **kwargs: Any) -> None: - old_full_area_access_flag = getattr( - ProgramPartnerThrough.objects.filter(pk=instance.pk).first(), "full_area_access", None - ) - - instance.old_full_area_access_flag = old_full_area_access_flag - pre_save_full_area_access_flag_change.send( - sender=sender, instance=instance, old_full_area_access_flag=old_full_area_access_flag - ) - - -@receiver(post_save, sender=ProgramPartnerThrough) -def handle_partner_full_area_access_flag(sender: Any, instance: ProgramPartnerThrough, **kwargs: Any) -> None: - # Apply signal if full_area_access=True for ProgramPartnerThrough created OR full_area_access field updated - if new_full_area_access_flag := instance.full_area_access: - old_full_area_access_flag = instance.old_full_area_access_flag - if old_full_area_access_flag != new_full_area_access_flag: - full_area_access_areas = Area.objects.filter( - area_type__country__business_areas__id=instance.program.business_area.id - ) - instance.areas.set(full_area_access_areas) - - @receiver([post_save, post_delete], sender=BeneficiaryGroup) def increment_beneficiary_group_version_cache(sender: Any, instance: BeneficiaryGroup, **kwargs: dict) -> None: version_key = "beneficiary_group_list" diff --git a/src/hct_mis_api/apps/program/templates/admin/program/program/program_partner_access.html b/src/hct_mis_api/apps/program/templates/admin/program/program/program_area_limits.html similarity index 98% rename from src/hct_mis_api/apps/program/templates/admin/program/program/program_partner_access.html rename to src/hct_mis_api/apps/program/templates/admin/program/program/program_area_limits.html index 00051da3c6..e878f9c858 100644 --- a/src/hct_mis_api/apps/program/templates/admin/program/program/program_partner_access.html +++ b/src/hct_mis_api/apps/program/templates/admin/program/program/program_area_limits.html @@ -27,7 +27,7 @@