@pagopa/interop-outbound-models 1.0.0
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/.eslintrc.cjs +24 -0
- package/.github/workflows/ci.yml +74 -0
- package/.github/workflows/release.yml +26 -0
- package/.prettierignore +2 -0
- package/.vscode/settings.json +11 -0
- package/CODEOWNERS +2 -0
- package/README.md +0 -0
- package/dist/agreement/eventsV1.d.ts +216 -0
- package/dist/agreement/eventsV1.d.ts.map +1 -0
- package/dist/agreement/eventsV1.js +100 -0
- package/dist/agreement/eventsV2.d.ts +405 -0
- package/dist/agreement/eventsV2.d.ts.map +1 -0
- package/dist/agreement/eventsV2.js +181 -0
- package/dist/agreement/index.d.ts +228 -0
- package/dist/agreement/index.d.ts.map +1 -0
- package/dist/agreement/index.js +36 -0
- package/dist/eservice/eventsV1.d.ts +237 -0
- package/dist/eservice/eventsV1.d.ts.map +1 -0
- package/dist/eservice/eventsV1.js +109 -0
- package/dist/eservice/eventsV2.d.ts +405 -0
- package/dist/eservice/eventsV2.d.ts.map +1 -0
- package/dist/eservice/eventsV2.js +181 -0
- package/dist/eservice/index.d.ts +235 -0
- package/dist/eservice/index.d.ts.map +1 -0
- package/dist/eservice/index.js +36 -0
- package/dist/gen/v1/agreement/agreement.d.ts +294 -0
- package/dist/gen/v1/agreement/agreement.d.ts.map +1 -0
- package/dist/gen/v1/agreement/agreement.js +587 -0
- package/dist/gen/v1/agreement/events.d.ts +212 -0
- package/dist/gen/v1/agreement/events.d.ts.map +1 -0
- package/dist/gen/v1/agreement/events.js +492 -0
- package/dist/gen/v1/eservice/eservice.d.ts +338 -0
- package/dist/gen/v1/eservice/eservice.d.ts.map +1 -0
- package/dist/gen/v1/eservice/eservice.js +629 -0
- package/dist/gen/v1/eservice/events.d.ts +272 -0
- package/dist/gen/v1/eservice/events.d.ts.map +1 -0
- package/dist/gen/v1/eservice/events.js +619 -0
- package/dist/gen/v1/purpose/events.d.ts +235 -0
- package/dist/gen/v1/purpose/events.d.ts.map +1 -0
- package/dist/gen/v1/purpose/events.js +546 -0
- package/dist/gen/v1/purpose/purpose.d.ts +155 -0
- package/dist/gen/v1/purpose/purpose.d.ts.map +1 -0
- package/dist/gen/v1/purpose/purpose.js +274 -0
- package/dist/gen/v1/tenant/events.d.ts +66 -0
- package/dist/gen/v1/tenant/events.d.ts.map +1 -0
- package/dist/gen/v1/tenant/events.js +144 -0
- package/dist/gen/v1/tenant/tenant.d.ts +364 -0
- package/dist/gen/v1/tenant/tenant.d.ts.map +1 -0
- package/dist/gen/v1/tenant/tenant.js +727 -0
- package/dist/gen/v2/agreement/agreement.d.ts +290 -0
- package/dist/gen/v2/agreement/agreement.d.ts.map +1 -0
- package/dist/gen/v2/agreement/agreement.js +583 -0
- package/dist/gen/v2/agreement/events.d.ts +378 -0
- package/dist/gen/v2/agreement/events.d.ts.map +1 -0
- package/dist/gen/v2/agreement/events.js +895 -0
- package/dist/gen/v2/eservice/eservice.d.ts +314 -0
- package/dist/gen/v2/eservice/eservice.d.ts.map +1 -0
- package/dist/gen/v2/eservice/eservice.js +603 -0
- package/dist/gen/v2/eservice/events.d.ts +462 -0
- package/dist/gen/v2/eservice/events.d.ts.map +1 -0
- package/dist/gen/v2/eservice/events.js +1062 -0
- package/dist/gen/v2/purpose/events.d.ts +403 -0
- package/dist/gen/v2/purpose/events.d.ts.map +1 -0
- package/dist/gen/v2/purpose/events.js +937 -0
- package/dist/gen/v2/purpose/purpose.d.ts +147 -0
- package/dist/gen/v2/purpose/purpose.d.ts.map +1 -0
- package/dist/gen/v2/purpose/purpose.js +264 -0
- package/dist/gen/v2/tenant/events.d.ts +278 -0
- package/dist/gen/v2/tenant/events.d.ts.map +1 -0
- package/dist/gen/v2/tenant/events.js +638 -0
- package/dist/gen/v2/tenant/tenant.d.ts +356 -0
- package/dist/gen/v2/tenant/tenant.d.ts.map +1 -0
- package/dist/gen/v2/tenant/tenant.js +722 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/purpose/eventsV1.d.ts +237 -0
- package/dist/purpose/eventsV1.d.ts.map +1 -0
- package/dist/purpose/eventsV1.js +109 -0
- package/dist/purpose/eventsV2.d.ts +384 -0
- package/dist/purpose/eventsV2.d.ts.map +1 -0
- package/dist/purpose/eventsV2.js +172 -0
- package/dist/purpose/index.d.ts +228 -0
- package/dist/purpose/index.d.ts.map +1 -0
- package/dist/purpose/index.js +36 -0
- package/dist/tenant/eventsV1.d.ts +69 -0
- package/dist/tenant/eventsV1.d.ts.map +1 -0
- package/dist/tenant/eventsV1.js +37 -0
- package/dist/tenant/eventsV2.d.ts +258 -0
- package/dist/tenant/eventsV2.d.ts.map +1 -0
- package/dist/tenant/eventsV2.js +118 -0
- package/dist/tenant/index.d.ts +130 -0
- package/dist/tenant/index.d.ts.map +1 -0
- package/dist/tenant/index.js +36 -0
- package/dist/utils.d.ts +17 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +18 -0
- package/package.json +48 -0
- package/proto/v1/agreement/agreement.proto +70 -0
- package/proto/v1/agreement/events.proto +48 -0
- package/proto/v1/eservice/eservice.proto +84 -0
- package/proto/v1/eservice/events.proto +63 -0
- package/proto/v1/purpose/events.proto +53 -0
- package/proto/v1/purpose/purpose.proto +39 -0
- package/proto/v1/tenant/events.proto +17 -0
- package/proto/v1/tenant/tenant.proto +87 -0
- package/proto/v2/agreement/agreement.proto +70 -0
- package/proto/v2/agreement/events.proto +83 -0
- package/proto/v2/eservice/eservice.proto +82 -0
- package/proto/v2/eservice/events.proto +104 -0
- package/proto/v2/purpose/events.proto +90 -0
- package/proto/v2/purpose/purpose.proto +38 -0
- package/proto/v2/tenant/events.proto +63 -0
- package/proto/v2/tenant/tenant.proto +85 -0
- package/src/agreement/eventsV1.ts +136 -0
- package/src/agreement/eventsV2.ts +246 -0
- package/src/agreement/index.ts +45 -0
- package/src/eservice/eventsV1.ts +149 -0
- package/src/eservice/eventsV2.ts +245 -0
- package/src/eservice/index.ts +45 -0
- package/src/index.ts +22 -0
- package/src/purpose/eventsV1.ts +146 -0
- package/src/purpose/eventsV2.ts +228 -0
- package/src/purpose/index.ts +42 -0
- package/src/tenant/eventsV1.ts +51 -0
- package/src/tenant/eventsV2.ts +159 -0
- package/src/tenant/index.ts +43 -0
- package/src/utils.ts +25 -0
- package/tests/agreement.test.ts +28 -0
- package/tests/eservice.test.ts +28 -0
- package/tests/purpose.test.ts +28 -0
- package/tests/tenant.test.ts +28 -0
- package/tsconfig.check.json +7 -0
- package/tsconfig.eslint.json +11 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package tenant.v2;
|
|
4
|
+
|
|
5
|
+
import "v2/tenant/tenant.proto";
|
|
6
|
+
|
|
7
|
+
message TenantOnboardedV2 {
|
|
8
|
+
TenantV2 tenant = 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
message TenantOnboardDetailsUpdatedV2 {
|
|
12
|
+
TenantV2 tenant = 1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message TenantCertifiedAttributeAssignedV2 {
|
|
16
|
+
string attributeId = 1;
|
|
17
|
+
TenantV2 tenant = 2;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
message TenantCertifiedAttributeRevokedV2 {
|
|
21
|
+
string attributeId = 1;
|
|
22
|
+
TenantV2 tenant = 2;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
message TenantDeclaredAttributeAssignedV2 {
|
|
26
|
+
string attributeId = 1;
|
|
27
|
+
TenantV2 tenant = 2;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
message TenantDeclaredAttributeRevokedV2 {
|
|
31
|
+
string attributeId = 1;
|
|
32
|
+
TenantV2 tenant = 2;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
message TenantVerifiedAttributeAssignedV2 {
|
|
36
|
+
string attributeId = 1;
|
|
37
|
+
TenantV2 tenant = 2;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message TenantVerifiedAttributeRevokedV2 {
|
|
41
|
+
string attributeId = 1;
|
|
42
|
+
TenantV2 tenant = 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
message TenantVerifiedAttributeExpirationUpdatedV2 {
|
|
46
|
+
string attributeId = 1;
|
|
47
|
+
TenantV2 tenant = 2;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
message TenantVerifiedAttributeExtensionUpdatedV2 {
|
|
51
|
+
string attributeId = 1;
|
|
52
|
+
TenantV2 tenant = 2;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message MaintenanceTenantDeletedV2 {
|
|
56
|
+
string tenantId = 1;
|
|
57
|
+
TenantV2 tenant = 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
message TenantKindUpdatedV2 {
|
|
61
|
+
TenantKindV2 oldKind = 1;
|
|
62
|
+
TenantV2 tenant = 2;
|
|
63
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package tenant.v2;
|
|
4
|
+
|
|
5
|
+
message TenantV2 {
|
|
6
|
+
string id = 1;
|
|
7
|
+
string selfcareId = 2;
|
|
8
|
+
ExternalIdV2 externalId = 3;
|
|
9
|
+
repeated TenantFeatureV2 features = 4;
|
|
10
|
+
repeated TenantAttributeV2 attributes = 5;
|
|
11
|
+
int64 createdAt = 6;
|
|
12
|
+
optional int64 updatedAt = 7;
|
|
13
|
+
string name = 8;
|
|
14
|
+
optional TenantKindV2 kind = 9;
|
|
15
|
+
int64 onboardedAt = 10;
|
|
16
|
+
optional TenantUnitTypeV2 subUnitType = 11;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
enum TenantKindV2 {
|
|
20
|
+
PA = 0;
|
|
21
|
+
GSP = 1;
|
|
22
|
+
PRIVATE = 2;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
enum TenantUnitTypeV2 {
|
|
26
|
+
AOO = 0;
|
|
27
|
+
UO = 1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
message TenantFeatureV2 {
|
|
31
|
+
oneof sealed_value {
|
|
32
|
+
CertifierV2 certifier = 1;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
message CertifierV2 {
|
|
37
|
+
string certifierId = 1;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message TenantVerifierV2 {
|
|
41
|
+
string id = 1;
|
|
42
|
+
int64 verificationDate = 2;
|
|
43
|
+
optional int64 expirationDate = 3;
|
|
44
|
+
optional int64 extensionDate = 4;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
message TenantRevokerV2 {
|
|
48
|
+
string id = 1;
|
|
49
|
+
int64 verificationDate = 2;
|
|
50
|
+
optional int64 expirationDate = 3;
|
|
51
|
+
optional int64 extensionDate = 4;
|
|
52
|
+
int64 revocationDate = 5;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message ExternalIdV2 {
|
|
56
|
+
string origin = 1;
|
|
57
|
+
string value = 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
message TenantCertifiedAttributeV2 {
|
|
61
|
+
string id = 1;
|
|
62
|
+
int64 assignmentTimestamp = 2;
|
|
63
|
+
optional int64 revocationTimestamp = 3;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
message TenantDeclaredAttributeV2 {
|
|
67
|
+
string id = 1;
|
|
68
|
+
int64 assignmentTimestamp = 2;
|
|
69
|
+
optional int64 revocationTimestamp = 3;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
message TenantVerifiedAttributeV2 {
|
|
73
|
+
string id = 1;
|
|
74
|
+
int64 assignmentTimestamp = 2;
|
|
75
|
+
repeated TenantVerifierV2 verifiedBy = 3;
|
|
76
|
+
repeated TenantRevokerV2 revokedBy = 4;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
message TenantAttributeV2 {
|
|
80
|
+
oneof sealed_value {
|
|
81
|
+
TenantCertifiedAttributeV2 certifiedAttribute = 1;
|
|
82
|
+
TenantDeclaredAttributeV2 declaredAttribute = 2;
|
|
83
|
+
TenantVerifiedAttributeV2 verifiedAttribute = 3;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { match } from "ts-pattern";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {
|
|
4
|
+
AgreementAddedV1,
|
|
5
|
+
AgreementDeletedV1,
|
|
6
|
+
AgreementUpdatedV1,
|
|
7
|
+
AgreementContractAddedV1,
|
|
8
|
+
AgreementConsumerDocumentAddedV1,
|
|
9
|
+
AgreementConsumerDocumentRemovedV1,
|
|
10
|
+
AgreementActivatedV1,
|
|
11
|
+
AgreementSuspendedV1,
|
|
12
|
+
AgreementDeactivatedV1,
|
|
13
|
+
VerifiedAttributeUpdatedV1,
|
|
14
|
+
} from "../gen/v1/agreement/events.js";
|
|
15
|
+
import { protobufDecoder } from "../utils.js";
|
|
16
|
+
|
|
17
|
+
export function agreementEventToBinaryDataV1(
|
|
18
|
+
event: AgreementEventV1
|
|
19
|
+
): Uint8Array {
|
|
20
|
+
return match(event)
|
|
21
|
+
.with({ type: "AgreementDeleted" }, ({ data }) =>
|
|
22
|
+
AgreementDeletedV1.toBinary(data)
|
|
23
|
+
)
|
|
24
|
+
.with({ type: "AgreementAdded" }, ({ data }) =>
|
|
25
|
+
AgreementAddedV1.toBinary(data)
|
|
26
|
+
)
|
|
27
|
+
.with({ type: "AgreementActivated" }, ({ data }) =>
|
|
28
|
+
AgreementActivatedV1.toBinary(data)
|
|
29
|
+
)
|
|
30
|
+
.with({ type: "AgreementSuspended" }, ({ data }) =>
|
|
31
|
+
AgreementSuspendedV1.toBinary(data)
|
|
32
|
+
)
|
|
33
|
+
.with({ type: "AgreementDeactivated" }, ({ data }) =>
|
|
34
|
+
AgreementDeactivatedV1.toBinary(data)
|
|
35
|
+
)
|
|
36
|
+
.with({ type: "VerifiedAttributeUpdated" }, ({ data }) =>
|
|
37
|
+
VerifiedAttributeUpdatedV1.toBinary(data)
|
|
38
|
+
)
|
|
39
|
+
.with({ type: "AgreementUpdated" }, ({ data }) =>
|
|
40
|
+
AgreementUpdatedV1.toBinary(data)
|
|
41
|
+
)
|
|
42
|
+
.with({ type: "AgreementContractAdded" }, ({ data }) =>
|
|
43
|
+
AgreementContractAddedV1.toBinary(data)
|
|
44
|
+
)
|
|
45
|
+
.with({ type: "AgreementConsumerDocumentAdded" }, ({ data }) =>
|
|
46
|
+
AgreementConsumerDocumentAddedV1.toBinary(data)
|
|
47
|
+
)
|
|
48
|
+
.with({ type: "AgreementConsumerDocumentRemoved" }, ({ data }) =>
|
|
49
|
+
AgreementConsumerDocumentRemovedV1.toBinary(data)
|
|
50
|
+
)
|
|
51
|
+
.exhaustive();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const AgreementEventV1 = z.discriminatedUnion("type", [
|
|
55
|
+
z.object({
|
|
56
|
+
event_version: z.literal(1),
|
|
57
|
+
type: z.literal("AgreementAdded"),
|
|
58
|
+
data: protobufDecoder(AgreementAddedV1),
|
|
59
|
+
stream_id: z.string(),
|
|
60
|
+
version: z.number(),
|
|
61
|
+
timestamp: z.coerce.date(),
|
|
62
|
+
}),
|
|
63
|
+
z.object({
|
|
64
|
+
event_version: z.literal(1),
|
|
65
|
+
type: z.literal("AgreementActivated"),
|
|
66
|
+
data: protobufDecoder(AgreementActivatedV1),
|
|
67
|
+
stream_id: z.string(),
|
|
68
|
+
version: z.number(),
|
|
69
|
+
timestamp: z.coerce.date(),
|
|
70
|
+
}),
|
|
71
|
+
z.object({
|
|
72
|
+
event_version: z.literal(1),
|
|
73
|
+
type: z.literal("AgreementSuspended"),
|
|
74
|
+
data: protobufDecoder(AgreementSuspendedV1),
|
|
75
|
+
stream_id: z.string(),
|
|
76
|
+
version: z.number(),
|
|
77
|
+
timestamp: z.coerce.date(),
|
|
78
|
+
}),
|
|
79
|
+
z.object({
|
|
80
|
+
event_version: z.literal(1),
|
|
81
|
+
type: z.literal("AgreementDeactivated"),
|
|
82
|
+
data: protobufDecoder(AgreementDeactivatedV1),
|
|
83
|
+
stream_id: z.string(),
|
|
84
|
+
version: z.number(),
|
|
85
|
+
timestamp: z.coerce.date(),
|
|
86
|
+
}),
|
|
87
|
+
z.object({
|
|
88
|
+
event_version: z.literal(1),
|
|
89
|
+
type: z.literal("AgreementDeleted"),
|
|
90
|
+
data: protobufDecoder(AgreementDeletedV1),
|
|
91
|
+
stream_id: z.string(),
|
|
92
|
+
version: z.number(),
|
|
93
|
+
timestamp: z.coerce.date(),
|
|
94
|
+
}),
|
|
95
|
+
z.object({
|
|
96
|
+
event_version: z.literal(1),
|
|
97
|
+
type: z.literal("VerifiedAttributeUpdated"),
|
|
98
|
+
data: protobufDecoder(VerifiedAttributeUpdatedV1),
|
|
99
|
+
stream_id: z.string(),
|
|
100
|
+
version: z.number(),
|
|
101
|
+
timestamp: z.coerce.date(),
|
|
102
|
+
}),
|
|
103
|
+
z.object({
|
|
104
|
+
event_version: z.literal(1),
|
|
105
|
+
type: z.literal("AgreementUpdated"),
|
|
106
|
+
data: protobufDecoder(AgreementUpdatedV1),
|
|
107
|
+
stream_id: z.string(),
|
|
108
|
+
version: z.number(),
|
|
109
|
+
timestamp: z.coerce.date(),
|
|
110
|
+
}),
|
|
111
|
+
z.object({
|
|
112
|
+
event_version: z.literal(1),
|
|
113
|
+
type: z.literal("AgreementConsumerDocumentAdded"),
|
|
114
|
+
data: protobufDecoder(AgreementConsumerDocumentAddedV1),
|
|
115
|
+
stream_id: z.string(),
|
|
116
|
+
version: z.number(),
|
|
117
|
+
timestamp: z.coerce.date(),
|
|
118
|
+
}),
|
|
119
|
+
z.object({
|
|
120
|
+
event_version: z.literal(1),
|
|
121
|
+
type: z.literal("AgreementConsumerDocumentRemoved"),
|
|
122
|
+
data: protobufDecoder(AgreementConsumerDocumentRemovedV1),
|
|
123
|
+
stream_id: z.string(),
|
|
124
|
+
version: z.number(),
|
|
125
|
+
timestamp: z.coerce.date(),
|
|
126
|
+
}),
|
|
127
|
+
z.object({
|
|
128
|
+
event_version: z.literal(1),
|
|
129
|
+
type: z.literal("AgreementContractAdded"),
|
|
130
|
+
data: protobufDecoder(AgreementContractAddedV1),
|
|
131
|
+
stream_id: z.string(),
|
|
132
|
+
version: z.number(),
|
|
133
|
+
timestamp: z.coerce.date(),
|
|
134
|
+
}),
|
|
135
|
+
]);
|
|
136
|
+
export type AgreementEventV1 = z.infer<typeof AgreementEventV1>;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { match } from "ts-pattern";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {
|
|
4
|
+
AgreementActivatedV2,
|
|
5
|
+
AgreementAddedV2,
|
|
6
|
+
AgreementArchivedByUpgradeV2,
|
|
7
|
+
AgreementArchivedByConsumerV2,
|
|
8
|
+
AgreementConsumerDocumentAddedV2,
|
|
9
|
+
AgreementConsumerDocumentRemovedV2,
|
|
10
|
+
AgreementDeletedV2,
|
|
11
|
+
AgreementRejectedV2,
|
|
12
|
+
AgreementSubmittedV2,
|
|
13
|
+
AgreementSuspendedByConsumerV2,
|
|
14
|
+
AgreementSuspendedByPlatformV2,
|
|
15
|
+
AgreementSuspendedByProducerV2,
|
|
16
|
+
AgreementUnsuspendedByConsumerV2,
|
|
17
|
+
AgreementUnsuspendedByPlatformV2,
|
|
18
|
+
AgreementUnsuspendedByProducerV2,
|
|
19
|
+
AgreementUpgradedV2,
|
|
20
|
+
DraftAgreementUpdatedV2,
|
|
21
|
+
AgreementSetDraftByPlatformV2,
|
|
22
|
+
AgreementSetMissingCertifiedAttributesByPlatformV2,
|
|
23
|
+
} from "../gen/v2/agreement/events.js";
|
|
24
|
+
import { protobufDecoder } from "../utils.js";
|
|
25
|
+
|
|
26
|
+
export function agreementEventToBinaryDataV2(
|
|
27
|
+
event: AgreementEventV2
|
|
28
|
+
): Uint8Array {
|
|
29
|
+
return match(event)
|
|
30
|
+
.with({ type: "AgreementAdded" }, ({ data }) =>
|
|
31
|
+
AgreementAddedV2.toBinary(data)
|
|
32
|
+
)
|
|
33
|
+
.with({ type: "AgreementDeleted" }, ({ data }) =>
|
|
34
|
+
AgreementDeletedV2.toBinary(data)
|
|
35
|
+
)
|
|
36
|
+
.with({ type: "DraftAgreementUpdated" }, ({ data }) =>
|
|
37
|
+
DraftAgreementUpdatedV2.toBinary(data)
|
|
38
|
+
)
|
|
39
|
+
.with({ type: "AgreementSubmitted" }, ({ data }) =>
|
|
40
|
+
AgreementSubmittedV2.toBinary(data)
|
|
41
|
+
)
|
|
42
|
+
.with({ type: "AgreementActivated" }, ({ data }) =>
|
|
43
|
+
AgreementActivatedV2.toBinary(data)
|
|
44
|
+
)
|
|
45
|
+
.with({ type: "AgreementUnsuspendedByProducer" }, ({ data }) =>
|
|
46
|
+
AgreementUnsuspendedByProducerV2.toBinary(data)
|
|
47
|
+
)
|
|
48
|
+
.with({ type: "AgreementUnsuspendedByConsumer" }, ({ data }) =>
|
|
49
|
+
AgreementUnsuspendedByConsumerV2.toBinary(data)
|
|
50
|
+
)
|
|
51
|
+
.with({ type: "AgreementUnsuspendedByPlatform" }, ({ data }) =>
|
|
52
|
+
AgreementUnsuspendedByPlatformV2.toBinary(data)
|
|
53
|
+
)
|
|
54
|
+
.with({ type: "AgreementArchivedByConsumer" }, ({ data }) =>
|
|
55
|
+
AgreementArchivedByConsumerV2.toBinary(data)
|
|
56
|
+
)
|
|
57
|
+
.with({ type: "AgreementArchivedByUpgrade" }, ({ data }) =>
|
|
58
|
+
AgreementArchivedByUpgradeV2.toBinary(data)
|
|
59
|
+
)
|
|
60
|
+
.with({ type: "AgreementUpgraded" }, ({ data }) =>
|
|
61
|
+
AgreementUpgradedV2.toBinary(data)
|
|
62
|
+
)
|
|
63
|
+
.with({ type: "AgreementSuspendedByProducer" }, ({ data }) =>
|
|
64
|
+
AgreementSuspendedByProducerV2.toBinary(data)
|
|
65
|
+
)
|
|
66
|
+
.with({ type: "AgreementSuspendedByConsumer" }, ({ data }) =>
|
|
67
|
+
AgreementSuspendedByConsumerV2.toBinary(data)
|
|
68
|
+
)
|
|
69
|
+
.with({ type: "AgreementSuspendedByPlatform" }, ({ data }) =>
|
|
70
|
+
AgreementSuspendedByPlatformV2.toBinary(data)
|
|
71
|
+
)
|
|
72
|
+
.with({ type: "AgreementRejected" }, ({ data }) =>
|
|
73
|
+
AgreementRejectedV2.toBinary(data)
|
|
74
|
+
)
|
|
75
|
+
.with({ type: "AgreementConsumerDocumentAdded" }, ({ data }) =>
|
|
76
|
+
AgreementConsumerDocumentAddedV2.toBinary(data)
|
|
77
|
+
)
|
|
78
|
+
.with({ type: "AgreementConsumerDocumentRemoved" }, ({ data }) =>
|
|
79
|
+
AgreementConsumerDocumentRemovedV2.toBinary(data)
|
|
80
|
+
)
|
|
81
|
+
.with({ type: "AgreementSetDraftByPlatform" }, ({ data }) =>
|
|
82
|
+
AgreementSetDraftByPlatformV2.toBinary(data)
|
|
83
|
+
)
|
|
84
|
+
.with(
|
|
85
|
+
{ type: "AgreementSetMissingCertifiedAttributesByPlatform" },
|
|
86
|
+
({ data }) =>
|
|
87
|
+
AgreementSetMissingCertifiedAttributesByPlatformV2.toBinary(data)
|
|
88
|
+
)
|
|
89
|
+
.exhaustive();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export const AgreementEventV2 = z.discriminatedUnion("type", [
|
|
93
|
+
z.object({
|
|
94
|
+
event_version: z.literal(2),
|
|
95
|
+
type: z.literal("AgreementAdded"),
|
|
96
|
+
data: protobufDecoder(AgreementAddedV2),
|
|
97
|
+
stream_id: z.string(),
|
|
98
|
+
version: z.number(),
|
|
99
|
+
timestamp: z.coerce.date(),
|
|
100
|
+
}),
|
|
101
|
+
z.object({
|
|
102
|
+
event_version: z.literal(2),
|
|
103
|
+
type: z.literal("AgreementDeleted"),
|
|
104
|
+
data: protobufDecoder(AgreementDeletedV2),
|
|
105
|
+
stream_id: z.string(),
|
|
106
|
+
version: z.number(),
|
|
107
|
+
timestamp: z.coerce.date(),
|
|
108
|
+
}),
|
|
109
|
+
z.object({
|
|
110
|
+
event_version: z.literal(2),
|
|
111
|
+
type: z.literal("DraftAgreementUpdated"),
|
|
112
|
+
data: protobufDecoder(DraftAgreementUpdatedV2),
|
|
113
|
+
stream_id: z.string(),
|
|
114
|
+
version: z.number(),
|
|
115
|
+
timestamp: z.coerce.date(),
|
|
116
|
+
}),
|
|
117
|
+
z.object({
|
|
118
|
+
event_version: z.literal(2),
|
|
119
|
+
type: z.literal("AgreementSubmitted"),
|
|
120
|
+
data: protobufDecoder(AgreementSubmittedV2),
|
|
121
|
+
stream_id: z.string(),
|
|
122
|
+
version: z.number(),
|
|
123
|
+
timestamp: z.coerce.date(),
|
|
124
|
+
}),
|
|
125
|
+
z.object({
|
|
126
|
+
event_version: z.literal(2),
|
|
127
|
+
type: z.literal("AgreementActivated"),
|
|
128
|
+
data: protobufDecoder(AgreementActivatedV2),
|
|
129
|
+
stream_id: z.string(),
|
|
130
|
+
version: z.number(),
|
|
131
|
+
timestamp: z.coerce.date(),
|
|
132
|
+
}),
|
|
133
|
+
z.object({
|
|
134
|
+
event_version: z.literal(2),
|
|
135
|
+
type: z.literal("AgreementUnsuspendedByProducer"),
|
|
136
|
+
data: protobufDecoder(AgreementUnsuspendedByProducerV2),
|
|
137
|
+
stream_id: z.string(),
|
|
138
|
+
version: z.number(),
|
|
139
|
+
timestamp: z.coerce.date(),
|
|
140
|
+
}),
|
|
141
|
+
z.object({
|
|
142
|
+
event_version: z.literal(2),
|
|
143
|
+
type: z.literal("AgreementUnsuspendedByConsumer"),
|
|
144
|
+
data: protobufDecoder(AgreementUnsuspendedByConsumerV2),
|
|
145
|
+
stream_id: z.string(),
|
|
146
|
+
version: z.number(),
|
|
147
|
+
timestamp: z.coerce.date(),
|
|
148
|
+
}),
|
|
149
|
+
z.object({
|
|
150
|
+
event_version: z.literal(2),
|
|
151
|
+
type: z.literal("AgreementUnsuspendedByPlatform"),
|
|
152
|
+
data: protobufDecoder(AgreementUnsuspendedByPlatformV2),
|
|
153
|
+
stream_id: z.string(),
|
|
154
|
+
version: z.number(),
|
|
155
|
+
timestamp: z.coerce.date(),
|
|
156
|
+
}),
|
|
157
|
+
z.object({
|
|
158
|
+
event_version: z.literal(2),
|
|
159
|
+
type: z.literal("AgreementArchivedByConsumer"),
|
|
160
|
+
data: protobufDecoder(AgreementArchivedByConsumerV2),
|
|
161
|
+
stream_id: z.string(),
|
|
162
|
+
version: z.number(),
|
|
163
|
+
timestamp: z.coerce.date(),
|
|
164
|
+
}),
|
|
165
|
+
z.object({
|
|
166
|
+
event_version: z.literal(2),
|
|
167
|
+
type: z.literal("AgreementArchivedByUpgrade"),
|
|
168
|
+
data: protobufDecoder(AgreementArchivedByUpgradeV2),
|
|
169
|
+
stream_id: z.string(),
|
|
170
|
+
version: z.number(),
|
|
171
|
+
timestamp: z.coerce.date(),
|
|
172
|
+
}),
|
|
173
|
+
z.object({
|
|
174
|
+
event_version: z.literal(2),
|
|
175
|
+
type: z.literal("AgreementUpgraded"),
|
|
176
|
+
data: protobufDecoder(AgreementUpgradedV2),
|
|
177
|
+
stream_id: z.string(),
|
|
178
|
+
version: z.number(),
|
|
179
|
+
timestamp: z.coerce.date(),
|
|
180
|
+
}),
|
|
181
|
+
z.object({
|
|
182
|
+
event_version: z.literal(2),
|
|
183
|
+
type: z.literal("AgreementSuspendedByProducer"),
|
|
184
|
+
data: protobufDecoder(AgreementSuspendedByProducerV2),
|
|
185
|
+
stream_id: z.string(),
|
|
186
|
+
version: z.number(),
|
|
187
|
+
timestamp: z.coerce.date(),
|
|
188
|
+
}),
|
|
189
|
+
z.object({
|
|
190
|
+
event_version: z.literal(2),
|
|
191
|
+
type: z.literal("AgreementSuspendedByConsumer"),
|
|
192
|
+
data: protobufDecoder(AgreementSuspendedByConsumerV2),
|
|
193
|
+
stream_id: z.string(),
|
|
194
|
+
version: z.number(),
|
|
195
|
+
timestamp: z.coerce.date(),
|
|
196
|
+
}),
|
|
197
|
+
z.object({
|
|
198
|
+
event_version: z.literal(2),
|
|
199
|
+
type: z.literal("AgreementSuspendedByPlatform"),
|
|
200
|
+
data: protobufDecoder(AgreementSuspendedByPlatformV2),
|
|
201
|
+
stream_id: z.string(),
|
|
202
|
+
version: z.number(),
|
|
203
|
+
timestamp: z.coerce.date(),
|
|
204
|
+
}),
|
|
205
|
+
z.object({
|
|
206
|
+
event_version: z.literal(2),
|
|
207
|
+
type: z.literal("AgreementRejected"),
|
|
208
|
+
data: protobufDecoder(AgreementRejectedV2),
|
|
209
|
+
stream_id: z.string(),
|
|
210
|
+
version: z.number(),
|
|
211
|
+
timestamp: z.coerce.date(),
|
|
212
|
+
}),
|
|
213
|
+
z.object({
|
|
214
|
+
event_version: z.literal(2),
|
|
215
|
+
type: z.literal("AgreementConsumerDocumentAdded"),
|
|
216
|
+
data: protobufDecoder(AgreementConsumerDocumentAddedV2),
|
|
217
|
+
stream_id: z.string(),
|
|
218
|
+
version: z.number(),
|
|
219
|
+
timestamp: z.coerce.date(),
|
|
220
|
+
}),
|
|
221
|
+
z.object({
|
|
222
|
+
event_version: z.literal(2),
|
|
223
|
+
type: z.literal("AgreementConsumerDocumentRemoved"),
|
|
224
|
+
data: protobufDecoder(AgreementConsumerDocumentRemovedV2),
|
|
225
|
+
stream_id: z.string(),
|
|
226
|
+
version: z.number(),
|
|
227
|
+
timestamp: z.coerce.date(),
|
|
228
|
+
}),
|
|
229
|
+
z.object({
|
|
230
|
+
event_version: z.literal(2),
|
|
231
|
+
type: z.literal("AgreementSetDraftByPlatform"),
|
|
232
|
+
data: protobufDecoder(AgreementSetDraftByPlatformV2),
|
|
233
|
+
stream_id: z.string(),
|
|
234
|
+
version: z.number(),
|
|
235
|
+
timestamp: z.coerce.date(),
|
|
236
|
+
}),
|
|
237
|
+
z.object({
|
|
238
|
+
event_version: z.literal(2),
|
|
239
|
+
type: z.literal("AgreementSetMissingCertifiedAttributesByPlatform"),
|
|
240
|
+
data: protobufDecoder(AgreementSetMissingCertifiedAttributesByPlatformV2),
|
|
241
|
+
stream_id: z.string(),
|
|
242
|
+
version: z.number(),
|
|
243
|
+
timestamp: z.coerce.date(),
|
|
244
|
+
}),
|
|
245
|
+
]);
|
|
246
|
+
export type AgreementEventV2 = z.infer<typeof AgreementEventV2>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { match } from "ts-pattern";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { VersionedEvent } from "../utils.js";
|
|
4
|
+
import { AgreementEventV1, agreementEventToBinaryDataV1 } from "./eventsV1.js";
|
|
5
|
+
import { AgreementEventV2, agreementEventToBinaryDataV2 } from "./eventsV2.js";
|
|
6
|
+
|
|
7
|
+
function agreementEventToBinaryData(event: AgreementEvent): Uint8Array {
|
|
8
|
+
return match(event)
|
|
9
|
+
.with({ event_version: 1 }, agreementEventToBinaryDataV1)
|
|
10
|
+
.with({ event_version: 2 }, agreementEventToBinaryDataV2)
|
|
11
|
+
.exhaustive();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function encodeOutboundAgreementEvent(event: AgreementEvent): string {
|
|
15
|
+
return JSON.stringify({
|
|
16
|
+
event_version: event.event_version,
|
|
17
|
+
type: event.type,
|
|
18
|
+
data: agreementEventToBinaryData(event),
|
|
19
|
+
stream_id: event.stream_id,
|
|
20
|
+
version: event.version,
|
|
21
|
+
timestamp: event.timestamp,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function decodeOutboundAgreementEvent(
|
|
26
|
+
encodedEvent: string
|
|
27
|
+
): AgreementEvent {
|
|
28
|
+
return AgreementEvent.parse(JSON.parse(encodedEvent));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const AgreementEvent = VersionedEvent.transform((obj, ctx) => {
|
|
32
|
+
const res = match(obj)
|
|
33
|
+
.with({ event_version: 1 }, () => AgreementEventV1.safeParse(obj))
|
|
34
|
+
.with({ event_version: 2 }, () => AgreementEventV2.safeParse(obj))
|
|
35
|
+
.exhaustive();
|
|
36
|
+
|
|
37
|
+
if (!res.success) {
|
|
38
|
+
res.error.issues.forEach(ctx.addIssue);
|
|
39
|
+
return z.NEVER;
|
|
40
|
+
}
|
|
41
|
+
return res.data;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export type AgreementEvent = z.infer<typeof AgreementEvent>;
|
|
45
|
+
export { AgreementEventV1, AgreementEventV2 };
|