@cheqd/studio 3.15.0-develop.1 → 3.15.0-develop.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +3 -0
- package/dist/app.js.map +1 -1
- package/dist/controllers/api/accreditation.d.ts.map +1 -1
- package/dist/controllers/api/accreditation.js +36 -9
- package/dist/controllers/api/accreditation.js.map +1 -1
- package/dist/controllers/api/credential-status.d.ts +94 -0
- package/dist/controllers/api/credential-status.d.ts.map +1 -1
- package/dist/controllers/api/credential-status.js +220 -506
- package/dist/controllers/api/credential-status.js.map +1 -1
- package/dist/controllers/api/credential.d.ts +66 -0
- package/dist/controllers/api/credential.d.ts.map +1 -1
- package/dist/controllers/api/credential.js +117 -1
- package/dist/controllers/api/credential.js.map +1 -1
- package/dist/controllers/api/did.js.map +1 -1
- package/dist/controllers/api/key.js.map +1 -1
- package/dist/controllers/api/presentation.js +22 -21
- package/dist/controllers/api/presentation.js.map +1 -1
- package/dist/controllers/api/providers.controller.js.map +1 -1
- package/dist/controllers/api/resource.js.map +1 -1
- package/dist/database/entities/issued-credential.entity.d.ts +10 -1
- package/dist/database/entities/issued-credential.entity.d.ts.map +1 -1
- package/dist/database/entities/issued-credential.entity.js +22 -0
- package/dist/database/entities/issued-credential.entity.js.map +1 -1
- package/dist/database/entities/status-registry.entity.d.ts +60 -0
- package/dist/database/entities/status-registry.entity.d.ts.map +1 -0
- package/dist/database/entities/status-registry.entity.js +145 -0
- package/dist/database/entities/status-registry.entity.js.map +1 -0
- package/dist/database/migrations/1761834657128-studio-migrations.d.ts +7 -0
- package/dist/database/migrations/1761834657128-studio-migrations.d.ts.map +1 -0
- package/dist/database/migrations/1761834657128-studio-migrations.js +14 -0
- package/dist/database/migrations/1761834657128-studio-migrations.js.map +1 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts +25 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts.map +1 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.js +243 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.js.map +1 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts +23 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts.map +1 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.js +181 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.js.map +1 -0
- package/dist/database/types/types.d.ts.map +1 -1
- package/dist/database/types/types.js +10 -0
- package/dist/database/types/types.js.map +1 -1
- package/dist/helpers/mailchimp.d.ts.map +1 -1
- package/dist/helpers/mailchimp.js +1 -3
- package/dist/helpers/mailchimp.js.map +1 -1
- package/dist/middleware/auth/routes/api/credential-status-auth.d.ts.map +1 -1
- package/dist/middleware/auth/routes/api/credential-status-auth.js +2 -0
- package/dist/middleware/auth/routes/api/credential-status-auth.js.map +1 -1
- package/dist/services/api/credential-status.d.ts +107 -0
- package/dist/services/api/credential-status.d.ts.map +1 -0
- package/dist/services/api/credential-status.js +923 -0
- package/dist/services/api/credential-status.js.map +1 -0
- package/dist/services/api/credentials.d.ts +12 -0
- package/dist/services/api/credentials.d.ts.map +1 -1
- package/dist/services/api/credentials.js +330 -117
- package/dist/services/api/credentials.js.map +1 -1
- package/dist/services/connectors/resource.js.map +1 -1
- package/dist/services/identity/abstract.d.ts +1 -1
- package/dist/services/identity/abstract.d.ts.map +1 -1
- package/dist/services/identity/abstract.js +1 -1
- package/dist/services/identity/abstract.js.map +1 -1
- package/dist/services/identity/default.d.ts +1 -1
- package/dist/services/identity/default.d.ts.map +1 -1
- package/dist/services/identity/default.js +2 -2
- package/dist/services/identity/default.js.map +1 -1
- package/dist/services/identity/index.d.ts +1 -1
- package/dist/services/identity/index.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/agent.d.ts +6 -6
- package/dist/services/identity/providers/studio/agent.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/agent.js +11 -2
- package/dist/services/identity/providers/studio/agent.js.map +1 -1
- package/dist/services/identity/providers/studio/local.d.ts +3 -3
- package/dist/services/identity/providers/studio/postgres.d.ts +3 -3
- package/dist/services/identity/providers/studio/postgres.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/postgres.js +0 -12
- package/dist/services/identity/providers/studio/postgres.js.map +1 -1
- package/dist/services/track/api/credential-status-subscriber.d.ts +4 -4
- package/dist/services/track/api/credential-status-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/credential-status-subscriber.js +18 -1
- package/dist/services/track/api/credential-status-subscriber.js.map +1 -1
- package/dist/services/track/api/credential-subscriber.d.ts +4 -4
- package/dist/services/track/api/credential-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/credential-subscriber.js.map +1 -1
- package/dist/services/track/api/did-subscriber.d.ts +4 -4
- package/dist/services/track/api/did-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/did-subscriber.js.map +1 -1
- package/dist/services/track/api/key-subscriber.d.ts +4 -4
- package/dist/services/track/api/key-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/key-subscriber.js.map +1 -1
- package/dist/services/track/api/presentation-subscriber.d.ts +4 -4
- package/dist/services/track/api/presentation-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/presentation-subscriber.js.map +1 -1
- package/dist/services/track/api/resource-subscriber.d.ts +4 -4
- package/dist/services/track/api/resource-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/resource-subscriber.js.map +1 -1
- package/dist/services/track/base.d.ts +2 -2
- package/dist/services/track/base.d.ts.map +1 -1
- package/dist/services/track/base.js.map +1 -1
- package/dist/services/track/operation-subscriber.d.ts +4 -4
- package/dist/services/track/operation-subscriber.d.ts.map +1 -1
- package/dist/services/track/operation-subscriber.js.map +1 -1
- package/dist/services/track/tracker.d.ts +2 -2
- package/dist/services/track/tracker.d.ts.map +1 -1
- package/dist/services/track/tracker.js.map +1 -1
- package/dist/services/track/types.d.ts +2 -2
- package/dist/services/track/types.d.ts.map +1 -1
- package/dist/static/swagger-api.json +560 -46
- package/dist/types/accreditation.d.ts +3 -0
- package/dist/types/accreditation.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +2 -0
- package/dist/types/constants.js.map +1 -1
- package/dist/types/credential-status.d.ts +39 -1
- package/dist/types/credential-status.d.ts.map +1 -1
- package/dist/types/credential-status.js +7 -0
- package/dist/types/credential-status.js.map +1 -1
- package/dist/types/credential.d.ts +21 -3
- package/dist/types/credential.d.ts.map +1 -1
- package/dist/types/credential.js +5 -0
- package/dist/types/credential.js.map +1 -1
- package/dist/types/swagger-api-types.d.ts +242 -39
- package/dist/types/swagger-api-types.d.ts.map +1 -1
- package/dist/types/swagger-api-types.js +242 -39
- package/dist/types/swagger-api-types.js.map +1 -1
- package/dist/types/track.d.ts +8 -6
- package/dist/types/track.d.ts.map +1 -1
- package/dist/types/track.js.map +1 -1
- package/package.json +1 -1
|
@@ -364,6 +364,18 @@
|
|
|
364
364
|
* type: object
|
|
365
365
|
* additionalProperties: true
|
|
366
366
|
* description: Credential status configuration
|
|
367
|
+
* statusRegistryId:
|
|
368
|
+
* type: string
|
|
369
|
+
* description: UUID of the Status Registry
|
|
370
|
+
* statusIndex:
|
|
371
|
+
* type: number
|
|
372
|
+
* description: Allocated Index of the Status Registry
|
|
373
|
+
* retryCount:
|
|
374
|
+
* type: number
|
|
375
|
+
* description: Retry Count in case of failures
|
|
376
|
+
* lastError:
|
|
377
|
+
* type: string
|
|
378
|
+
* description: Last error message in case of failure
|
|
367
379
|
* providerMetadata:
|
|
368
380
|
* type: object
|
|
369
381
|
* additionalProperties: true
|
|
@@ -435,6 +447,74 @@
|
|
|
435
447
|
* description: Policy to skip the audience check when set to `false`.
|
|
436
448
|
* type: boolean
|
|
437
449
|
* default: false
|
|
450
|
+
* RetryCredentialRequest:
|
|
451
|
+
* type: object
|
|
452
|
+
* properties:
|
|
453
|
+
* attributes:
|
|
454
|
+
* description: JSON object containing the attributes to be included in the credential.
|
|
455
|
+
* type: object
|
|
456
|
+
* example: {
|
|
457
|
+
* name: Bob,
|
|
458
|
+
* gender: male
|
|
459
|
+
* }
|
|
460
|
+
* '@context':
|
|
461
|
+
* description: Optional properties to be included in the `@context` property of the credential.
|
|
462
|
+
* type: array
|
|
463
|
+
* items:
|
|
464
|
+
* type: string
|
|
465
|
+
* example: [https://schema.org/schema.jsonld, https://veramo.io/contexts/profile/v1]
|
|
466
|
+
* type:
|
|
467
|
+
* description: Optional properties to be included in the `type` property of the credential.
|
|
468
|
+
* type: array
|
|
469
|
+
* items:
|
|
470
|
+
* type: string
|
|
471
|
+
* example: [Person]
|
|
472
|
+
* expirationDate:
|
|
473
|
+
* description: Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification</a>.
|
|
474
|
+
* type: string
|
|
475
|
+
* format: date-time
|
|
476
|
+
* example: 2023-06-08T13:49:28.000Z
|
|
477
|
+
* termsOfUse:
|
|
478
|
+
* description: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
|
|
479
|
+
* type: array
|
|
480
|
+
* items:
|
|
481
|
+
* type: object
|
|
482
|
+
* example: {
|
|
483
|
+
* type: IssuerPolicy,
|
|
484
|
+
* id: http://example.com/policies/credential/4,
|
|
485
|
+
* profile: http://example.com/profiles/credential,
|
|
486
|
+
* prohibition: [{
|
|
487
|
+
* assigner: https://example.edu/issuers/14,
|
|
488
|
+
* assignee: AllVerifiers,
|
|
489
|
+
* target: http://example.edu/credentials/3732,
|
|
490
|
+
* action: [ "Archival" ]
|
|
491
|
+
* }]
|
|
492
|
+
* }
|
|
493
|
+
* refreshService:
|
|
494
|
+
* description: RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
|
|
495
|
+
* type: array
|
|
496
|
+
* items:
|
|
497
|
+
* type: object
|
|
498
|
+
* example: {
|
|
499
|
+
* type: ManualRefreshService2018,
|
|
500
|
+
* id: https://example.edu/refresh/3732
|
|
501
|
+
* }
|
|
502
|
+
* evidence:
|
|
503
|
+
* description: Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
|
|
504
|
+
* type: array
|
|
505
|
+
* items:
|
|
506
|
+
* type: object
|
|
507
|
+
* example: {
|
|
508
|
+
* type: ["DocumentVerification"],
|
|
509
|
+
* id: https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231,
|
|
510
|
+
* verifier: "https://example.edu/issuers/14",
|
|
511
|
+
* evidenceDocument: DriversLicense,
|
|
512
|
+
* subjectPresence: Physical,
|
|
513
|
+
* documentPresence: Physical,
|
|
514
|
+
* licenseNumber: 123AB4567
|
|
515
|
+
* }
|
|
516
|
+
* required:
|
|
517
|
+
* - attributes
|
|
438
518
|
* VerifyPresentationResult:
|
|
439
519
|
* type: object
|
|
440
520
|
* properties:
|
|
@@ -737,6 +817,134 @@
|
|
|
737
817
|
* description: Policy to skip the audience check when set to `false`.
|
|
738
818
|
* type: boolean
|
|
739
819
|
* default: false
|
|
820
|
+
* CredentialStatusRecordResult:
|
|
821
|
+
* type: object
|
|
822
|
+
* properties:
|
|
823
|
+
* statusListId:
|
|
824
|
+
* type: string
|
|
825
|
+
* description: Unique identifier for the status registry
|
|
826
|
+
* statusListName:
|
|
827
|
+
* type: string
|
|
828
|
+
* description: Name of the status list resource
|
|
829
|
+
* uri:
|
|
830
|
+
* type: string
|
|
831
|
+
* description: DID URL of the status list resource
|
|
832
|
+
* issuerId:
|
|
833
|
+
* type: string
|
|
834
|
+
* format: uri
|
|
835
|
+
* description: DID of the issuer
|
|
836
|
+
* previousUri:
|
|
837
|
+
* type: string
|
|
838
|
+
* nullable: true
|
|
839
|
+
* description: Link to previous registry in the chain (for FULL registries)
|
|
840
|
+
* nextUri:
|
|
841
|
+
* type: string
|
|
842
|
+
* nullable: true
|
|
843
|
+
* description: Link to next registry in the chain (STANDBY registry)
|
|
844
|
+
* listType:
|
|
845
|
+
* type: string
|
|
846
|
+
* description: Type of status list (StatusList2021Revocation, StatusList2021Suspension, BitstringStatusListCredential)
|
|
847
|
+
* storageType:
|
|
848
|
+
* type: string
|
|
849
|
+
* enum:
|
|
850
|
+
* - cheqd
|
|
851
|
+
* - ipfs
|
|
852
|
+
* - dock
|
|
853
|
+
* - paradym
|
|
854
|
+
* description: Storage provider for the status list
|
|
855
|
+
* encrypted:
|
|
856
|
+
* type: boolean
|
|
857
|
+
* description: Whether the status list is encrypted
|
|
858
|
+
* credentialCategory:
|
|
859
|
+
* type: string
|
|
860
|
+
* enum:
|
|
861
|
+
* - credential
|
|
862
|
+
* - accreditation
|
|
863
|
+
* description: Category of credentials this status list is for
|
|
864
|
+
* size:
|
|
865
|
+
* type: integer
|
|
866
|
+
* description: Maximum capacity of the status list (total number of indices)
|
|
867
|
+
* writeCursor:
|
|
868
|
+
* type: integer
|
|
869
|
+
* description: Current write cursor position (last assigned index)
|
|
870
|
+
* state:
|
|
871
|
+
* type: string
|
|
872
|
+
* enum:
|
|
873
|
+
* - ACTIVE
|
|
874
|
+
* - STANDBY
|
|
875
|
+
* - FULL
|
|
876
|
+
* description: Current state of the registry
|
|
877
|
+
* createdAt:
|
|
878
|
+
* type: string
|
|
879
|
+
* format: date-time
|
|
880
|
+
* description: Timestamp when the registry was created
|
|
881
|
+
* updatedAt:
|
|
882
|
+
* type: string
|
|
883
|
+
* format: date-time
|
|
884
|
+
* description: Timestamp when the registry was last updated
|
|
885
|
+
* sealedAt:
|
|
886
|
+
* type: string
|
|
887
|
+
* format: date-time
|
|
888
|
+
* nullable: true
|
|
889
|
+
* description: Timestamp when the registry was sealed (marked as FULL)
|
|
890
|
+
* statusPurpose:
|
|
891
|
+
* oneOf:
|
|
892
|
+
* - type: string
|
|
893
|
+
* - type: array
|
|
894
|
+
* items:
|
|
895
|
+
* type: string
|
|
896
|
+
* description: Status purpose or list of status purposes
|
|
897
|
+
* deprecated:
|
|
898
|
+
* type: boolean
|
|
899
|
+
* description: Whether the registry is deprecated
|
|
900
|
+
* example:
|
|
901
|
+
* statusListId: 5945233a-a4b5-422b-b893-eaed5cedd2dc
|
|
902
|
+
* statusListName: cheqd-employee-credentials
|
|
903
|
+
* uri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials&resourceType=StatusList2021Revocation
|
|
904
|
+
* issuerId: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e
|
|
905
|
+
* previousUri: null
|
|
906
|
+
* nextUri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials-ext1&resourceType=StatusList2021Revocation
|
|
907
|
+
* listType: StatusList2021Revocation
|
|
908
|
+
* storageType: cheqd
|
|
909
|
+
* encrypted: false
|
|
910
|
+
* credentialCategory: credential
|
|
911
|
+
* size: 131072
|
|
912
|
+
* writeCursor: 105432
|
|
913
|
+
* state: ACTIVE
|
|
914
|
+
* createdAt: 2023-06-26T11:45:19.349Z
|
|
915
|
+
* updatedAt: 2023-06-26T11:45:20.000Z
|
|
916
|
+
* statusPurpose: ["revocation"]
|
|
917
|
+
* sealedAt: null
|
|
918
|
+
* deprecated: false
|
|
919
|
+
* ListCredentialStatusRecordsResult:
|
|
920
|
+
* type: object
|
|
921
|
+
* properties:
|
|
922
|
+
* total:
|
|
923
|
+
* type: number
|
|
924
|
+
* records:
|
|
925
|
+
* type: array
|
|
926
|
+
* items:
|
|
927
|
+
* $ref: '#/components/schemas/CredentialStatusRecordResult'
|
|
928
|
+
* example:
|
|
929
|
+
* total: 1
|
|
930
|
+
* records:
|
|
931
|
+
* - statusListId: 5945233a-a4b5-422b-b893-eaed5cedd2dc
|
|
932
|
+
* statusListName: cheqd-employee-credentials
|
|
933
|
+
* uri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials&resourceType=StatusList2021Revocation
|
|
934
|
+
* issuerId: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e
|
|
935
|
+
* previousUri: null
|
|
936
|
+
* nextUri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials-ext1&resourceType=StatusList2021Revocation
|
|
937
|
+
* listType: StatusList2021Revocation
|
|
938
|
+
* storageType: cheqd
|
|
939
|
+
* encrypted: false
|
|
940
|
+
* credentialCategory: credential
|
|
941
|
+
* size: 131072
|
|
942
|
+
* writeCursor: 105432
|
|
943
|
+
* state: ACTIVE
|
|
944
|
+
* createdAt: 2023-06-26T11:45:19.349Z
|
|
945
|
+
* updatedAt: 2023-06-26T11:45:20.000Z
|
|
946
|
+
* sealedAt: null
|
|
947
|
+
* deprecated: false
|
|
740
948
|
* CredentialStatusCreateBody:
|
|
741
949
|
* allOf:
|
|
742
950
|
* - type: object
|
|
@@ -771,6 +979,12 @@
|
|
|
771
979
|
* description: "Only for BitstringStatusList: bits per credential, used to support multiple status in same list."
|
|
772
980
|
* type: integer
|
|
773
981
|
* minimum: 1
|
|
982
|
+
* credentialCategory:
|
|
983
|
+
* description: Category of credentials this status list is for.
|
|
984
|
+
* type: string
|
|
985
|
+
* enum:
|
|
986
|
+
* - credential
|
|
987
|
+
* - accreditation
|
|
774
988
|
* statusMessages:
|
|
775
989
|
* description: "Only for BitstringStatusList (Mandatory if statusSize > 1): Message explaining each bit"
|
|
776
990
|
* type: array
|
|
@@ -1083,10 +1297,10 @@
|
|
|
1083
1297
|
* minimum: 0
|
|
1084
1298
|
* exclusiveMinimum: false
|
|
1085
1299
|
* statusListCredential:
|
|
1086
|
-
* description: Optional Resolvable DID URL of the
|
|
1300
|
+
* description: Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
|
|
1087
1301
|
* type: string
|
|
1088
1302
|
* statusSize:
|
|
1089
|
-
* description: Optional size of the
|
|
1303
|
+
* description: Optional size of the BitstringStatusList.
|
|
1090
1304
|
* type: number
|
|
1091
1305
|
* default: 2
|
|
1092
1306
|
* statusMessage:
|
|
@@ -1897,43 +2111,32 @@
|
|
|
1897
2111
|
* example: 5
|
|
1898
2112
|
* accreditations:
|
|
1899
2113
|
* type: array
|
|
1900
|
-
* description: List of accreditations.
|
|
2114
|
+
* description: List of accreditations with credential data and tracking metadata.
|
|
1901
2115
|
* items:
|
|
1902
|
-
*
|
|
1903
|
-
*
|
|
1904
|
-
*
|
|
1905
|
-
*
|
|
1906
|
-
*
|
|
1907
|
-
*
|
|
1908
|
-
*
|
|
1909
|
-
*
|
|
1910
|
-
*
|
|
1911
|
-
*
|
|
1912
|
-
*
|
|
1913
|
-
*
|
|
1914
|
-
*
|
|
1915
|
-
*
|
|
1916
|
-
*
|
|
1917
|
-
*
|
|
1918
|
-
*
|
|
1919
|
-
*
|
|
1920
|
-
*
|
|
1921
|
-
*
|
|
1922
|
-
*
|
|
1923
|
-
*
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
1926
|
-
*
|
|
1927
|
-
* format: date-time
|
|
1928
|
-
* description: Expiration date of the accreditation.
|
|
1929
|
-
* example: 2025-12-31T23:59:59Z
|
|
1930
|
-
* status:
|
|
1931
|
-
* type: string
|
|
1932
|
-
* description: Current status of the accreditation.
|
|
1933
|
-
* enum:
|
|
1934
|
-
* - active
|
|
1935
|
-
* - revoked
|
|
1936
|
-
* - expired
|
|
1937
|
-
* example: active
|
|
2116
|
+
* allOf:
|
|
2117
|
+
* - $ref: '#/components/schemas/VerifiableCredential'
|
|
2118
|
+
* - type: object
|
|
2119
|
+
* properties:
|
|
2120
|
+
* metadata:
|
|
2121
|
+
* type: object
|
|
2122
|
+
* description: Tracking metadata from the issued credential database record
|
|
2123
|
+
* properties:
|
|
2124
|
+
* issuedCredentialId:
|
|
2125
|
+
* type: string
|
|
2126
|
+
* description: Unique identifier for the issued credential
|
|
2127
|
+
* providerId:
|
|
2128
|
+
* type: string
|
|
2129
|
+
* description: Provider identifier
|
|
2130
|
+
* providerCredentialId:
|
|
2131
|
+
* type: string
|
|
2132
|
+
* description: Provider-specific credential ID (resourceId)
|
|
2133
|
+
* status:
|
|
2134
|
+
* type: string
|
|
2135
|
+
* description: Current status of the credential
|
|
2136
|
+
* enum: [issued, suspended, revoked]
|
|
2137
|
+
* statusUpdatedAt:
|
|
2138
|
+
* type: string
|
|
2139
|
+
* format: date-time
|
|
2140
|
+
* description: Timestamp when status was last updated
|
|
1938
2141
|
*/
|
|
1939
2142
|
//# sourceMappingURL=swagger-api-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger-api-types.d.ts","sourceRoot":"","sources":["../../src/types/swagger-api-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"swagger-api-types.d.ts","sourceRoot":"","sources":["../../src/types/swagger-api-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4lEG"}
|
|
@@ -365,6 +365,18 @@
|
|
|
365
365
|
* type: object
|
|
366
366
|
* additionalProperties: true
|
|
367
367
|
* description: Credential status configuration
|
|
368
|
+
* statusRegistryId:
|
|
369
|
+
* type: string
|
|
370
|
+
* description: UUID of the Status Registry
|
|
371
|
+
* statusIndex:
|
|
372
|
+
* type: number
|
|
373
|
+
* description: Allocated Index of the Status Registry
|
|
374
|
+
* retryCount:
|
|
375
|
+
* type: number
|
|
376
|
+
* description: Retry Count in case of failures
|
|
377
|
+
* lastError:
|
|
378
|
+
* type: string
|
|
379
|
+
* description: Last error message in case of failure
|
|
368
380
|
* providerMetadata:
|
|
369
381
|
* type: object
|
|
370
382
|
* additionalProperties: true
|
|
@@ -436,6 +448,74 @@
|
|
|
436
448
|
* description: Policy to skip the audience check when set to `false`.
|
|
437
449
|
* type: boolean
|
|
438
450
|
* default: false
|
|
451
|
+
* RetryCredentialRequest:
|
|
452
|
+
* type: object
|
|
453
|
+
* properties:
|
|
454
|
+
* attributes:
|
|
455
|
+
* description: JSON object containing the attributes to be included in the credential.
|
|
456
|
+
* type: object
|
|
457
|
+
* example: {
|
|
458
|
+
* name: Bob,
|
|
459
|
+
* gender: male
|
|
460
|
+
* }
|
|
461
|
+
* '@context':
|
|
462
|
+
* description: Optional properties to be included in the `@context` property of the credential.
|
|
463
|
+
* type: array
|
|
464
|
+
* items:
|
|
465
|
+
* type: string
|
|
466
|
+
* example: [https://schema.org/schema.jsonld, https://veramo.io/contexts/profile/v1]
|
|
467
|
+
* type:
|
|
468
|
+
* description: Optional properties to be included in the `type` property of the credential.
|
|
469
|
+
* type: array
|
|
470
|
+
* items:
|
|
471
|
+
* type: string
|
|
472
|
+
* example: [Person]
|
|
473
|
+
* expirationDate:
|
|
474
|
+
* description: Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification</a>.
|
|
475
|
+
* type: string
|
|
476
|
+
* format: date-time
|
|
477
|
+
* example: 2023-06-08T13:49:28.000Z
|
|
478
|
+
* termsOfUse:
|
|
479
|
+
* description: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
|
|
480
|
+
* type: array
|
|
481
|
+
* items:
|
|
482
|
+
* type: object
|
|
483
|
+
* example: {
|
|
484
|
+
* type: IssuerPolicy,
|
|
485
|
+
* id: http://example.com/policies/credential/4,
|
|
486
|
+
* profile: http://example.com/profiles/credential,
|
|
487
|
+
* prohibition: [{
|
|
488
|
+
* assigner: https://example.edu/issuers/14,
|
|
489
|
+
* assignee: AllVerifiers,
|
|
490
|
+
* target: http://example.edu/credentials/3732,
|
|
491
|
+
* action: [ "Archival" ]
|
|
492
|
+
* }]
|
|
493
|
+
* }
|
|
494
|
+
* refreshService:
|
|
495
|
+
* description: RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
|
|
496
|
+
* type: array
|
|
497
|
+
* items:
|
|
498
|
+
* type: object
|
|
499
|
+
* example: {
|
|
500
|
+
* type: ManualRefreshService2018,
|
|
501
|
+
* id: https://example.edu/refresh/3732
|
|
502
|
+
* }
|
|
503
|
+
* evidence:
|
|
504
|
+
* description: Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
|
|
505
|
+
* type: array
|
|
506
|
+
* items:
|
|
507
|
+
* type: object
|
|
508
|
+
* example: {
|
|
509
|
+
* type: ["DocumentVerification"],
|
|
510
|
+
* id: https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231,
|
|
511
|
+
* verifier: "https://example.edu/issuers/14",
|
|
512
|
+
* evidenceDocument: DriversLicense,
|
|
513
|
+
* subjectPresence: Physical,
|
|
514
|
+
* documentPresence: Physical,
|
|
515
|
+
* licenseNumber: 123AB4567
|
|
516
|
+
* }
|
|
517
|
+
* required:
|
|
518
|
+
* - attributes
|
|
439
519
|
* VerifyPresentationResult:
|
|
440
520
|
* type: object
|
|
441
521
|
* properties:
|
|
@@ -738,6 +818,134 @@
|
|
|
738
818
|
* description: Policy to skip the audience check when set to `false`.
|
|
739
819
|
* type: boolean
|
|
740
820
|
* default: false
|
|
821
|
+
* CredentialStatusRecordResult:
|
|
822
|
+
* type: object
|
|
823
|
+
* properties:
|
|
824
|
+
* statusListId:
|
|
825
|
+
* type: string
|
|
826
|
+
* description: Unique identifier for the status registry
|
|
827
|
+
* statusListName:
|
|
828
|
+
* type: string
|
|
829
|
+
* description: Name of the status list resource
|
|
830
|
+
* uri:
|
|
831
|
+
* type: string
|
|
832
|
+
* description: DID URL of the status list resource
|
|
833
|
+
* issuerId:
|
|
834
|
+
* type: string
|
|
835
|
+
* format: uri
|
|
836
|
+
* description: DID of the issuer
|
|
837
|
+
* previousUri:
|
|
838
|
+
* type: string
|
|
839
|
+
* nullable: true
|
|
840
|
+
* description: Link to previous registry in the chain (for FULL registries)
|
|
841
|
+
* nextUri:
|
|
842
|
+
* type: string
|
|
843
|
+
* nullable: true
|
|
844
|
+
* description: Link to next registry in the chain (STANDBY registry)
|
|
845
|
+
* listType:
|
|
846
|
+
* type: string
|
|
847
|
+
* description: Type of status list (StatusList2021Revocation, StatusList2021Suspension, BitstringStatusListCredential)
|
|
848
|
+
* storageType:
|
|
849
|
+
* type: string
|
|
850
|
+
* enum:
|
|
851
|
+
* - cheqd
|
|
852
|
+
* - ipfs
|
|
853
|
+
* - dock
|
|
854
|
+
* - paradym
|
|
855
|
+
* description: Storage provider for the status list
|
|
856
|
+
* encrypted:
|
|
857
|
+
* type: boolean
|
|
858
|
+
* description: Whether the status list is encrypted
|
|
859
|
+
* credentialCategory:
|
|
860
|
+
* type: string
|
|
861
|
+
* enum:
|
|
862
|
+
* - credential
|
|
863
|
+
* - accreditation
|
|
864
|
+
* description: Category of credentials this status list is for
|
|
865
|
+
* size:
|
|
866
|
+
* type: integer
|
|
867
|
+
* description: Maximum capacity of the status list (total number of indices)
|
|
868
|
+
* writeCursor:
|
|
869
|
+
* type: integer
|
|
870
|
+
* description: Current write cursor position (last assigned index)
|
|
871
|
+
* state:
|
|
872
|
+
* type: string
|
|
873
|
+
* enum:
|
|
874
|
+
* - ACTIVE
|
|
875
|
+
* - STANDBY
|
|
876
|
+
* - FULL
|
|
877
|
+
* description: Current state of the registry
|
|
878
|
+
* createdAt:
|
|
879
|
+
* type: string
|
|
880
|
+
* format: date-time
|
|
881
|
+
* description: Timestamp when the registry was created
|
|
882
|
+
* updatedAt:
|
|
883
|
+
* type: string
|
|
884
|
+
* format: date-time
|
|
885
|
+
* description: Timestamp when the registry was last updated
|
|
886
|
+
* sealedAt:
|
|
887
|
+
* type: string
|
|
888
|
+
* format: date-time
|
|
889
|
+
* nullable: true
|
|
890
|
+
* description: Timestamp when the registry was sealed (marked as FULL)
|
|
891
|
+
* statusPurpose:
|
|
892
|
+
* oneOf:
|
|
893
|
+
* - type: string
|
|
894
|
+
* - type: array
|
|
895
|
+
* items:
|
|
896
|
+
* type: string
|
|
897
|
+
* description: Status purpose or list of status purposes
|
|
898
|
+
* deprecated:
|
|
899
|
+
* type: boolean
|
|
900
|
+
* description: Whether the registry is deprecated
|
|
901
|
+
* example:
|
|
902
|
+
* statusListId: 5945233a-a4b5-422b-b893-eaed5cedd2dc
|
|
903
|
+
* statusListName: cheqd-employee-credentials
|
|
904
|
+
* uri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials&resourceType=StatusList2021Revocation
|
|
905
|
+
* issuerId: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e
|
|
906
|
+
* previousUri: null
|
|
907
|
+
* nextUri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials-ext1&resourceType=StatusList2021Revocation
|
|
908
|
+
* listType: StatusList2021Revocation
|
|
909
|
+
* storageType: cheqd
|
|
910
|
+
* encrypted: false
|
|
911
|
+
* credentialCategory: credential
|
|
912
|
+
* size: 131072
|
|
913
|
+
* writeCursor: 105432
|
|
914
|
+
* state: ACTIVE
|
|
915
|
+
* createdAt: 2023-06-26T11:45:19.349Z
|
|
916
|
+
* updatedAt: 2023-06-26T11:45:20.000Z
|
|
917
|
+
* statusPurpose: ["revocation"]
|
|
918
|
+
* sealedAt: null
|
|
919
|
+
* deprecated: false
|
|
920
|
+
* ListCredentialStatusRecordsResult:
|
|
921
|
+
* type: object
|
|
922
|
+
* properties:
|
|
923
|
+
* total:
|
|
924
|
+
* type: number
|
|
925
|
+
* records:
|
|
926
|
+
* type: array
|
|
927
|
+
* items:
|
|
928
|
+
* $ref: '#/components/schemas/CredentialStatusRecordResult'
|
|
929
|
+
* example:
|
|
930
|
+
* total: 1
|
|
931
|
+
* records:
|
|
932
|
+
* - statusListId: 5945233a-a4b5-422b-b893-eaed5cedd2dc
|
|
933
|
+
* statusListName: cheqd-employee-credentials
|
|
934
|
+
* uri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials&resourceType=StatusList2021Revocation
|
|
935
|
+
* issuerId: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e
|
|
936
|
+
* previousUri: null
|
|
937
|
+
* nextUri: did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-employee-credentials-ext1&resourceType=StatusList2021Revocation
|
|
938
|
+
* listType: StatusList2021Revocation
|
|
939
|
+
* storageType: cheqd
|
|
940
|
+
* encrypted: false
|
|
941
|
+
* credentialCategory: credential
|
|
942
|
+
* size: 131072
|
|
943
|
+
* writeCursor: 105432
|
|
944
|
+
* state: ACTIVE
|
|
945
|
+
* createdAt: 2023-06-26T11:45:19.349Z
|
|
946
|
+
* updatedAt: 2023-06-26T11:45:20.000Z
|
|
947
|
+
* sealedAt: null
|
|
948
|
+
* deprecated: false
|
|
741
949
|
* CredentialStatusCreateBody:
|
|
742
950
|
* allOf:
|
|
743
951
|
* - type: object
|
|
@@ -772,6 +980,12 @@
|
|
|
772
980
|
* description: "Only for BitstringStatusList: bits per credential, used to support multiple status in same list."
|
|
773
981
|
* type: integer
|
|
774
982
|
* minimum: 1
|
|
983
|
+
* credentialCategory:
|
|
984
|
+
* description: Category of credentials this status list is for.
|
|
985
|
+
* type: string
|
|
986
|
+
* enum:
|
|
987
|
+
* - credential
|
|
988
|
+
* - accreditation
|
|
775
989
|
* statusMessages:
|
|
776
990
|
* description: "Only for BitstringStatusList (Mandatory if statusSize > 1): Message explaining each bit"
|
|
777
991
|
* type: array
|
|
@@ -1084,10 +1298,10 @@
|
|
|
1084
1298
|
* minimum: 0
|
|
1085
1299
|
* exclusiveMinimum: false
|
|
1086
1300
|
* statusListCredential:
|
|
1087
|
-
* description: Optional Resolvable DID URL of the
|
|
1301
|
+
* description: Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
|
|
1088
1302
|
* type: string
|
|
1089
1303
|
* statusSize:
|
|
1090
|
-
* description: Optional size of the
|
|
1304
|
+
* description: Optional size of the BitstringStatusList.
|
|
1091
1305
|
* type: number
|
|
1092
1306
|
* default: 2
|
|
1093
1307
|
* statusMessage:
|
|
@@ -1898,43 +2112,32 @@
|
|
|
1898
2112
|
* example: 5
|
|
1899
2113
|
* accreditations:
|
|
1900
2114
|
* type: array
|
|
1901
|
-
* description: List of accreditations.
|
|
2115
|
+
* description: List of accreditations with credential data and tracking metadata.
|
|
1902
2116
|
* items:
|
|
1903
|
-
*
|
|
1904
|
-
*
|
|
1905
|
-
*
|
|
1906
|
-
*
|
|
1907
|
-
*
|
|
1908
|
-
*
|
|
1909
|
-
*
|
|
1910
|
-
*
|
|
1911
|
-
*
|
|
1912
|
-
*
|
|
1913
|
-
*
|
|
1914
|
-
*
|
|
1915
|
-
*
|
|
1916
|
-
*
|
|
1917
|
-
*
|
|
1918
|
-
*
|
|
1919
|
-
*
|
|
1920
|
-
*
|
|
1921
|
-
*
|
|
1922
|
-
*
|
|
1923
|
-
*
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
1926
|
-
*
|
|
1927
|
-
*
|
|
1928
|
-
* format: date-time
|
|
1929
|
-
* description: Expiration date of the accreditation.
|
|
1930
|
-
* example: 2025-12-31T23:59:59Z
|
|
1931
|
-
* status:
|
|
1932
|
-
* type: string
|
|
1933
|
-
* description: Current status of the accreditation.
|
|
1934
|
-
* enum:
|
|
1935
|
-
* - active
|
|
1936
|
-
* - revoked
|
|
1937
|
-
* - expired
|
|
1938
|
-
* example: active
|
|
2117
|
+
* allOf:
|
|
2118
|
+
* - $ref: '#/components/schemas/VerifiableCredential'
|
|
2119
|
+
* - type: object
|
|
2120
|
+
* properties:
|
|
2121
|
+
* metadata:
|
|
2122
|
+
* type: object
|
|
2123
|
+
* description: Tracking metadata from the issued credential database record
|
|
2124
|
+
* properties:
|
|
2125
|
+
* issuedCredentialId:
|
|
2126
|
+
* type: string
|
|
2127
|
+
* description: Unique identifier for the issued credential
|
|
2128
|
+
* providerId:
|
|
2129
|
+
* type: string
|
|
2130
|
+
* description: Provider identifier
|
|
2131
|
+
* providerCredentialId:
|
|
2132
|
+
* type: string
|
|
2133
|
+
* description: Provider-specific credential ID (resourceId)
|
|
2134
|
+
* status:
|
|
2135
|
+
* type: string
|
|
2136
|
+
* description: Current status of the credential
|
|
2137
|
+
* enum: [issued, suspended, revoked]
|
|
2138
|
+
* statusUpdatedAt:
|
|
2139
|
+
* type: string
|
|
2140
|
+
* format: date-time
|
|
2141
|
+
* description: Timestamp when status was last updated
|
|
1939
2142
|
*/
|
|
1940
2143
|
//# sourceMappingURL=swagger-api-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger-api-types.js","sourceRoot":"","sources":["../../src/types/swagger-api-types.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"swagger-api-types.js","sourceRoot":"","sources":["../../src/types/swagger-api-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4lEG"}
|