@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,118 @@
|
|
|
1
|
+
import { match } from "ts-pattern";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { TenantOnboardedV2, TenantOnboardDetailsUpdatedV2, TenantCertifiedAttributeAssignedV2, TenantCertifiedAttributeRevokedV2, TenantDeclaredAttributeAssignedV2, TenantDeclaredAttributeRevokedV2, TenantVerifiedAttributeAssignedV2, TenantVerifiedAttributeRevokedV2, TenantVerifiedAttributeExpirationUpdatedV2, MaintenanceTenantDeletedV2, TenantVerifiedAttributeExtensionUpdatedV2, TenantKindUpdatedV2, } from "../gen/v2/tenant/events.js";
|
|
4
|
+
import { protobufDecoder } from "../utils.js";
|
|
5
|
+
export function tenantEventToBinaryDataV2(event) {
|
|
6
|
+
return match(event)
|
|
7
|
+
.with({ type: "TenantOnboarded" }, ({ data }) => TenantOnboardedV2.toBinary(data))
|
|
8
|
+
.with({ type: "TenantOnboardDetailsUpdated" }, ({ data }) => TenantOnboardDetailsUpdatedV2.toBinary(data))
|
|
9
|
+
.with({ type: "TenantCertifiedAttributeAssigned" }, ({ data }) => TenantCertifiedAttributeAssignedV2.toBinary(data))
|
|
10
|
+
.with({ type: "TenantCertifiedAttributeRevoked" }, ({ data }) => TenantCertifiedAttributeRevokedV2.toBinary(data))
|
|
11
|
+
.with({ type: "TenantDeclaredAttributeAssigned" }, ({ data }) => TenantDeclaredAttributeAssignedV2.toBinary(data))
|
|
12
|
+
.with({ type: "TenantDeclaredAttributeRevoked" }, ({ data }) => TenantDeclaredAttributeRevokedV2.toBinary(data))
|
|
13
|
+
.with({ type: "TenantVerifiedAttributeAssigned" }, ({ data }) => TenantVerifiedAttributeAssignedV2.toBinary(data))
|
|
14
|
+
.with({ type: "TenantVerifiedAttributeRevoked" }, ({ data }) => TenantVerifiedAttributeRevokedV2.toBinary(data))
|
|
15
|
+
.with({ type: "TenantVerifiedAttributeExpirationUpdated" }, ({ data }) => TenantVerifiedAttributeExpirationUpdatedV2.toBinary(data))
|
|
16
|
+
.with({ type: "TenantVerifiedAttributeExtensionUpdated" }, ({ data }) => TenantVerifiedAttributeExtensionUpdatedV2.toBinary(data))
|
|
17
|
+
.with({ type: "MaintenanceTenantDeleted" }, ({ data }) => MaintenanceTenantDeletedV2.toBinary(data))
|
|
18
|
+
.with({ type: "TenantKindUpdated" }, ({ data }) => TenantKindUpdatedV2.toBinary(data))
|
|
19
|
+
.exhaustive();
|
|
20
|
+
}
|
|
21
|
+
export const TenantEventV2 = z.discriminatedUnion("type", [
|
|
22
|
+
z.object({
|
|
23
|
+
event_version: z.literal(2),
|
|
24
|
+
type: z.literal("TenantOnboarded"),
|
|
25
|
+
data: protobufDecoder(TenantOnboardedV2),
|
|
26
|
+
stream_id: z.string(),
|
|
27
|
+
version: z.number(),
|
|
28
|
+
timestamp: z.coerce.date(),
|
|
29
|
+
}),
|
|
30
|
+
z.object({
|
|
31
|
+
event_version: z.literal(2),
|
|
32
|
+
type: z.literal("TenantOnboardDetailsUpdated"),
|
|
33
|
+
data: protobufDecoder(TenantOnboardDetailsUpdatedV2),
|
|
34
|
+
stream_id: z.string(),
|
|
35
|
+
version: z.number(),
|
|
36
|
+
timestamp: z.coerce.date(),
|
|
37
|
+
}),
|
|
38
|
+
z.object({
|
|
39
|
+
event_version: z.literal(2),
|
|
40
|
+
type: z.literal("TenantCertifiedAttributeAssigned"),
|
|
41
|
+
data: protobufDecoder(TenantCertifiedAttributeAssignedV2),
|
|
42
|
+
stream_id: z.string(),
|
|
43
|
+
version: z.number(),
|
|
44
|
+
timestamp: z.coerce.date(),
|
|
45
|
+
}),
|
|
46
|
+
z.object({
|
|
47
|
+
event_version: z.literal(2),
|
|
48
|
+
type: z.literal("TenantCertifiedAttributeRevoked"),
|
|
49
|
+
data: protobufDecoder(TenantCertifiedAttributeRevokedV2),
|
|
50
|
+
stream_id: z.string(),
|
|
51
|
+
version: z.number(),
|
|
52
|
+
timestamp: z.coerce.date(),
|
|
53
|
+
}),
|
|
54
|
+
z.object({
|
|
55
|
+
event_version: z.literal(2),
|
|
56
|
+
type: z.literal("TenantDeclaredAttributeAssigned"),
|
|
57
|
+
data: protobufDecoder(TenantDeclaredAttributeAssignedV2),
|
|
58
|
+
stream_id: z.string(),
|
|
59
|
+
version: z.number(),
|
|
60
|
+
timestamp: z.coerce.date(),
|
|
61
|
+
}),
|
|
62
|
+
z.object({
|
|
63
|
+
event_version: z.literal(2),
|
|
64
|
+
type: z.literal("TenantDeclaredAttributeRevoked"),
|
|
65
|
+
data: protobufDecoder(TenantDeclaredAttributeRevokedV2),
|
|
66
|
+
stream_id: z.string(),
|
|
67
|
+
version: z.number(),
|
|
68
|
+
timestamp: z.coerce.date(),
|
|
69
|
+
}),
|
|
70
|
+
z.object({
|
|
71
|
+
event_version: z.literal(2),
|
|
72
|
+
type: z.literal("TenantVerifiedAttributeAssigned"),
|
|
73
|
+
data: protobufDecoder(TenantVerifiedAttributeAssignedV2),
|
|
74
|
+
stream_id: z.string(),
|
|
75
|
+
version: z.number(),
|
|
76
|
+
timestamp: z.coerce.date(),
|
|
77
|
+
}),
|
|
78
|
+
z.object({
|
|
79
|
+
event_version: z.literal(2),
|
|
80
|
+
type: z.literal("TenantVerifiedAttributeRevoked"),
|
|
81
|
+
data: protobufDecoder(TenantVerifiedAttributeRevokedV2),
|
|
82
|
+
stream_id: z.string(),
|
|
83
|
+
version: z.number(),
|
|
84
|
+
timestamp: z.coerce.date(),
|
|
85
|
+
}),
|
|
86
|
+
z.object({
|
|
87
|
+
event_version: z.literal(2),
|
|
88
|
+
type: z.literal("TenantVerifiedAttributeExpirationUpdated"),
|
|
89
|
+
data: protobufDecoder(TenantVerifiedAttributeExpirationUpdatedV2),
|
|
90
|
+
stream_id: z.string(),
|
|
91
|
+
version: z.number(),
|
|
92
|
+
timestamp: z.coerce.date(),
|
|
93
|
+
}),
|
|
94
|
+
z.object({
|
|
95
|
+
event_version: z.literal(2),
|
|
96
|
+
type: z.literal("TenantVerifiedAttributeExtensionUpdated"),
|
|
97
|
+
data: protobufDecoder(TenantVerifiedAttributeExtensionUpdatedV2),
|
|
98
|
+
stream_id: z.string(),
|
|
99
|
+
version: z.number(),
|
|
100
|
+
timestamp: z.coerce.date(),
|
|
101
|
+
}),
|
|
102
|
+
z.object({
|
|
103
|
+
event_version: z.literal(2),
|
|
104
|
+
type: z.literal("MaintenanceTenantDeleted"),
|
|
105
|
+
data: protobufDecoder(MaintenanceTenantDeletedV2),
|
|
106
|
+
stream_id: z.string(),
|
|
107
|
+
version: z.number(),
|
|
108
|
+
timestamp: z.coerce.date(),
|
|
109
|
+
}),
|
|
110
|
+
z.object({
|
|
111
|
+
event_version: z.literal(2),
|
|
112
|
+
type: z.literal("TenantKindUpdated"),
|
|
113
|
+
data: protobufDecoder(TenantKindUpdatedV2),
|
|
114
|
+
stream_id: z.string(),
|
|
115
|
+
version: z.number(),
|
|
116
|
+
timestamp: z.coerce.date(),
|
|
117
|
+
}),
|
|
118
|
+
]);
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TenantEventV1 } from "./eventsV1.js";
|
|
3
|
+
import { TenantEventV2 } from "./eventsV2.js";
|
|
4
|
+
export declare function encodeOutboundTenantEvent(event: TenantEvent): string;
|
|
5
|
+
export declare function decodeOutboundTenantEvent(encodedEvent: string): TenantEvent;
|
|
6
|
+
export declare const TenantEvent: z.ZodEffects<z.ZodDiscriminatedUnion<"event_version", [z.ZodObject<{
|
|
7
|
+
event_version: z.ZodLiteral<1>;
|
|
8
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
9
|
+
event_version: z.ZodLiteral<1>;
|
|
10
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
11
|
+
event_version: z.ZodLiteral<1>;
|
|
12
|
+
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
|
|
13
|
+
event_version: z.ZodLiteral<2>;
|
|
14
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
15
|
+
event_version: z.ZodLiteral<2>;
|
|
16
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
17
|
+
event_version: z.ZodLiteral<2>;
|
|
18
|
+
}, z.ZodTypeAny, "passthrough">>]>, {
|
|
19
|
+
event_version: 1;
|
|
20
|
+
type: "TenantCreated";
|
|
21
|
+
version: number;
|
|
22
|
+
data: import("../index.js").TenantCreatedV1;
|
|
23
|
+
stream_id: string;
|
|
24
|
+
timestamp: Date;
|
|
25
|
+
} | {
|
|
26
|
+
event_version: 1;
|
|
27
|
+
type: "TenantUpdated";
|
|
28
|
+
version: number;
|
|
29
|
+
data: import("../index.js").TenantUpdatedV1;
|
|
30
|
+
stream_id: string;
|
|
31
|
+
timestamp: Date;
|
|
32
|
+
} | {
|
|
33
|
+
event_version: 1;
|
|
34
|
+
type: "TenantDeleted";
|
|
35
|
+
version: number;
|
|
36
|
+
data: import("../index.js").TenantDeletedV1;
|
|
37
|
+
stream_id: string;
|
|
38
|
+
timestamp: Date;
|
|
39
|
+
} | {
|
|
40
|
+
event_version: 2;
|
|
41
|
+
type: "TenantOnboarded";
|
|
42
|
+
version: number;
|
|
43
|
+
data: import("../index.js").TenantOnboardedV2;
|
|
44
|
+
stream_id: string;
|
|
45
|
+
timestamp: Date;
|
|
46
|
+
} | {
|
|
47
|
+
event_version: 2;
|
|
48
|
+
type: "TenantOnboardDetailsUpdated";
|
|
49
|
+
version: number;
|
|
50
|
+
data: import("../index.js").TenantOnboardDetailsUpdatedV2;
|
|
51
|
+
stream_id: string;
|
|
52
|
+
timestamp: Date;
|
|
53
|
+
} | {
|
|
54
|
+
event_version: 2;
|
|
55
|
+
type: "TenantCertifiedAttributeAssigned";
|
|
56
|
+
version: number;
|
|
57
|
+
data: import("../index.js").TenantCertifiedAttributeAssignedV2;
|
|
58
|
+
stream_id: string;
|
|
59
|
+
timestamp: Date;
|
|
60
|
+
} | {
|
|
61
|
+
event_version: 2;
|
|
62
|
+
type: "TenantCertifiedAttributeRevoked";
|
|
63
|
+
version: number;
|
|
64
|
+
data: import("../index.js").TenantCertifiedAttributeRevokedV2;
|
|
65
|
+
stream_id: string;
|
|
66
|
+
timestamp: Date;
|
|
67
|
+
} | {
|
|
68
|
+
event_version: 2;
|
|
69
|
+
type: "TenantDeclaredAttributeAssigned";
|
|
70
|
+
version: number;
|
|
71
|
+
data: import("../index.js").TenantDeclaredAttributeAssignedV2;
|
|
72
|
+
stream_id: string;
|
|
73
|
+
timestamp: Date;
|
|
74
|
+
} | {
|
|
75
|
+
event_version: 2;
|
|
76
|
+
type: "TenantDeclaredAttributeRevoked";
|
|
77
|
+
version: number;
|
|
78
|
+
data: import("../index.js").TenantDeclaredAttributeRevokedV2;
|
|
79
|
+
stream_id: string;
|
|
80
|
+
timestamp: Date;
|
|
81
|
+
} | {
|
|
82
|
+
event_version: 2;
|
|
83
|
+
type: "TenantVerifiedAttributeAssigned";
|
|
84
|
+
version: number;
|
|
85
|
+
data: import("../index.js").TenantVerifiedAttributeAssignedV2;
|
|
86
|
+
stream_id: string;
|
|
87
|
+
timestamp: Date;
|
|
88
|
+
} | {
|
|
89
|
+
event_version: 2;
|
|
90
|
+
type: "TenantVerifiedAttributeRevoked";
|
|
91
|
+
version: number;
|
|
92
|
+
data: import("../index.js").TenantVerifiedAttributeRevokedV2;
|
|
93
|
+
stream_id: string;
|
|
94
|
+
timestamp: Date;
|
|
95
|
+
} | {
|
|
96
|
+
event_version: 2;
|
|
97
|
+
type: "TenantVerifiedAttributeExpirationUpdated";
|
|
98
|
+
version: number;
|
|
99
|
+
data: import("../index.js").TenantVerifiedAttributeExpirationUpdatedV2;
|
|
100
|
+
stream_id: string;
|
|
101
|
+
timestamp: Date;
|
|
102
|
+
} | {
|
|
103
|
+
event_version: 2;
|
|
104
|
+
type: "TenantVerifiedAttributeExtensionUpdated";
|
|
105
|
+
version: number;
|
|
106
|
+
data: import("../index.js").TenantVerifiedAttributeExtensionUpdatedV2;
|
|
107
|
+
stream_id: string;
|
|
108
|
+
timestamp: Date;
|
|
109
|
+
} | {
|
|
110
|
+
event_version: 2;
|
|
111
|
+
type: "MaintenanceTenantDeleted";
|
|
112
|
+
version: number;
|
|
113
|
+
data: import("../index.js").MaintenanceTenantDeletedV2;
|
|
114
|
+
stream_id: string;
|
|
115
|
+
timestamp: Date;
|
|
116
|
+
} | {
|
|
117
|
+
event_version: 2;
|
|
118
|
+
type: "TenantKindUpdated";
|
|
119
|
+
version: number;
|
|
120
|
+
data: import("../index.js").TenantKindUpdatedV2;
|
|
121
|
+
stream_id: string;
|
|
122
|
+
timestamp: Date;
|
|
123
|
+
}, z.objectInputType<{
|
|
124
|
+
event_version: z.ZodLiteral<1>;
|
|
125
|
+
}, z.ZodTypeAny, "passthrough"> | z.objectInputType<{
|
|
126
|
+
event_version: z.ZodLiteral<2>;
|
|
127
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
128
|
+
export type TenantEvent = z.infer<typeof TenantEvent>;
|
|
129
|
+
export { TenantEventV1, TenantEventV2 };
|
|
130
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tenant/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AASzE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CASpE;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAE3E;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAWtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { match } from "ts-pattern";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { VersionedEvent } from "../utils.js";
|
|
4
|
+
import { TenantEventV1, tenantEventToBinaryDataV1 } from "./eventsV1.js";
|
|
5
|
+
import { TenantEventV2, tenantEventToBinaryDataV2 } from "./eventsV2.js";
|
|
6
|
+
function tenantEventToBinaryData(event) {
|
|
7
|
+
return match(event)
|
|
8
|
+
.with({ event_version: 1 }, tenantEventToBinaryDataV1)
|
|
9
|
+
.with({ event_version: 2 }, tenantEventToBinaryDataV2)
|
|
10
|
+
.exhaustive();
|
|
11
|
+
}
|
|
12
|
+
export function encodeOutboundTenantEvent(event) {
|
|
13
|
+
return JSON.stringify({
|
|
14
|
+
event_version: event.event_version,
|
|
15
|
+
type: event.type,
|
|
16
|
+
data: tenantEventToBinaryData(event),
|
|
17
|
+
stream_id: event.stream_id,
|
|
18
|
+
version: event.version,
|
|
19
|
+
timestamp: event.timestamp,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function decodeOutboundTenantEvent(encodedEvent) {
|
|
23
|
+
return TenantEvent.parse(JSON.parse(encodedEvent));
|
|
24
|
+
}
|
|
25
|
+
export const TenantEvent = VersionedEvent.transform((obj, ctx) => {
|
|
26
|
+
const res = match(obj)
|
|
27
|
+
.with({ event_version: 1 }, () => TenantEventV1.safeParse(obj))
|
|
28
|
+
.with({ event_version: 2 }, () => TenantEventV2.safeParse(obj))
|
|
29
|
+
.exhaustive();
|
|
30
|
+
if (!res.success) {
|
|
31
|
+
res.error.issues.forEach(ctx.addIssue);
|
|
32
|
+
return z.NEVER;
|
|
33
|
+
}
|
|
34
|
+
return res.data;
|
|
35
|
+
});
|
|
36
|
+
export { TenantEventV1, TenantEventV2 };
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MessageType } from "@protobuf-ts/runtime";
|
|
2
|
+
import { ZodAny, ZodTransformer, z } from "zod";
|
|
3
|
+
export declare const VersionedEvent: z.ZodDiscriminatedUnion<"event_version", [z.ZodObject<{
|
|
4
|
+
event_version: z.ZodLiteral<1>;
|
|
5
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
6
|
+
event_version: z.ZodLiteral<1>;
|
|
7
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
8
|
+
event_version: z.ZodLiteral<1>;
|
|
9
|
+
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
|
|
10
|
+
event_version: z.ZodLiteral<2>;
|
|
11
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
12
|
+
event_version: z.ZodLiteral<2>;
|
|
13
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
14
|
+
event_version: z.ZodLiteral<2>;
|
|
15
|
+
}, z.ZodTypeAny, "passthrough">>]>;
|
|
16
|
+
export declare function protobufDecoder<I extends object>(decoder: MessageType<I>): ZodTransformer<ZodAny, I>;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAEhD,eAAO,MAAM,cAAc;;;;;;;;;;;;kCAWzB,CAAC;AAEH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAM3B"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const VersionedEvent = z.discriminatedUnion("event_version", [
|
|
3
|
+
z
|
|
4
|
+
.object({
|
|
5
|
+
event_version: z.literal(1),
|
|
6
|
+
})
|
|
7
|
+
.passthrough(),
|
|
8
|
+
z
|
|
9
|
+
.object({
|
|
10
|
+
event_version: z.literal(2),
|
|
11
|
+
})
|
|
12
|
+
.passthrough(),
|
|
13
|
+
]);
|
|
14
|
+
export function protobufDecoder(decoder) {
|
|
15
|
+
return z
|
|
16
|
+
.any()
|
|
17
|
+
.transform((v) => decoder.fromBinary(Buffer.from(Object.values(v), "hex")));
|
|
18
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pagopa/interop-outbound-models",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "PagoPA Interoperability outbound models",
|
|
5
|
+
"main": "dist",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "vitest run",
|
|
12
|
+
"lint": "eslint . --ext .ts,.tsx",
|
|
13
|
+
"lint:autofix": "eslint . --ext .ts,.tsx --fix",
|
|
14
|
+
"format:check": "prettier --check src",
|
|
15
|
+
"format:write": "prettier --write src",
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"check": "tsc --project tsconfig.check.json",
|
|
18
|
+
"generate-protobuf": "mkdirp ./src/gen && npx protoc --ts_opt=eslint_disable --ts_out ./src/gen --proto_path ./proto ./proto/**/**/*.proto && tsc-esm-fix --src='src/gen/' --ext='.js'"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [],
|
|
21
|
+
"author": "",
|
|
22
|
+
"repository": {
|
|
23
|
+
"url": "https://github.com/pagopa/interop-outbound-models"
|
|
24
|
+
},
|
|
25
|
+
"license": "Apache-2.0",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"ts-pattern": "5.2.0",
|
|
28
|
+
"zod": "3.23.8",
|
|
29
|
+
"@protobuf-ts/runtime": "2.9.4"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"eslint": "8.57.0",
|
|
33
|
+
"mkdirp": "3.0.1",
|
|
34
|
+
"prettier": "2.8.8",
|
|
35
|
+
"tsc-esm-fix": "2.20.27",
|
|
36
|
+
"typescript": "5.4.5",
|
|
37
|
+
"@types/node": "20.14.6",
|
|
38
|
+
"@protobuf-ts/protoc": "2.9.4",
|
|
39
|
+
"@protobuf-ts/plugin": "2.9.4",
|
|
40
|
+
"@tsconfig/node-lts": "20.1.3",
|
|
41
|
+
"@pagopa/eslint-config": "3.0.0",
|
|
42
|
+
"vitest": "^2.0.4"
|
|
43
|
+
},
|
|
44
|
+
"config": {
|
|
45
|
+
"protocVersion": "26.1"
|
|
46
|
+
},
|
|
47
|
+
"packageManager": "pnpm@8.15.8"
|
|
48
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
package agreement;
|
|
4
|
+
|
|
5
|
+
message AgreementV1 {
|
|
6
|
+
required string id = 1;
|
|
7
|
+
required string eserviceId = 2;
|
|
8
|
+
required string descriptorId = 3;
|
|
9
|
+
required string producerId = 4;
|
|
10
|
+
required string consumerId = 5;
|
|
11
|
+
required AgreementStateV1 state = 6;
|
|
12
|
+
repeated VerifiedAttributeV1 verifiedAttributes = 7;
|
|
13
|
+
optional bool suspendedByConsumer = 8;
|
|
14
|
+
optional bool suspendedByProducer = 9;
|
|
15
|
+
required int64 createdAt = 10;
|
|
16
|
+
optional int64 updatedAt = 11;
|
|
17
|
+
optional bool suspendedByPlatform = 12;
|
|
18
|
+
repeated CertifiedAttributeV1 certifiedAttributes = 13;
|
|
19
|
+
repeated DeclaredAttributeV1 declaredAttributes = 14;
|
|
20
|
+
repeated AgreementDocumentV1 consumerDocuments = 15;
|
|
21
|
+
optional string consumerNotes = 16;
|
|
22
|
+
optional AgreementDocumentV1 contract = 17;
|
|
23
|
+
optional StampsV1 stamps = 18;
|
|
24
|
+
optional string rejectionReason = 19;
|
|
25
|
+
optional int64 suspendedAt = 20;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
message VerifiedAttributeV1 {
|
|
29
|
+
required string id = 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message CertifiedAttributeV1 {
|
|
33
|
+
required string id = 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
message DeclaredAttributeV1 {
|
|
37
|
+
required string id = 1;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message AgreementDocumentV1 {
|
|
41
|
+
required string id = 1;
|
|
42
|
+
required string name = 2;
|
|
43
|
+
required string prettyName = 3;
|
|
44
|
+
required string contentType = 4;
|
|
45
|
+
required int64 createdAt = 5;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
enum AgreementStateV1 {
|
|
49
|
+
PENDING = 1;
|
|
50
|
+
ACTIVE = 2;
|
|
51
|
+
SUSPENDED = 3;
|
|
52
|
+
ARCHIVED = 4;
|
|
53
|
+
DRAFT = 5;
|
|
54
|
+
MISSING_CERTIFIED_ATTRIBUTES = 6;
|
|
55
|
+
REJECTED = 7;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
message StampV1 {
|
|
59
|
+
required int64 when = 1;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
message StampsV1 {
|
|
63
|
+
optional StampV1 submission = 1;
|
|
64
|
+
optional StampV1 activation = 2;
|
|
65
|
+
optional StampV1 rejection = 3;
|
|
66
|
+
optional StampV1 suspensionByProducer = 4;
|
|
67
|
+
optional StampV1 upgrade = 5;
|
|
68
|
+
optional StampV1 archiving = 6;
|
|
69
|
+
optional StampV1 suspensionByConsumer = 7;
|
|
70
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
package agreement;
|
|
4
|
+
|
|
5
|
+
import "v1/agreement/agreement.proto";
|
|
6
|
+
|
|
7
|
+
message AgreementAddedV1 {
|
|
8
|
+
required AgreementV1 agreement = 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
message AgreementActivatedV1 {
|
|
12
|
+
required AgreementV1 agreement = 1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message AgreementSuspendedV1 {
|
|
16
|
+
required AgreementV1 agreement = 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
message AgreementDeactivatedV1 {
|
|
20
|
+
required AgreementV1 agreement = 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
message AgreementUpdatedV1 {
|
|
24
|
+
required AgreementV1 agreement = 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message AgreementDeletedV1 {
|
|
28
|
+
required string agreementId = 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
message VerifiedAttributeUpdatedV1 {
|
|
32
|
+
required AgreementV1 agreement = 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
message AgreementConsumerDocumentAddedV1 {
|
|
36
|
+
required string agreementId = 1;
|
|
37
|
+
required AgreementDocumentV1 document = 2;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message AgreementConsumerDocumentRemovedV1 {
|
|
41
|
+
required string agreementId = 1;
|
|
42
|
+
required string documentId = 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
message AgreementContractAddedV1 {
|
|
46
|
+
required string agreementId = 1;
|
|
47
|
+
required AgreementDocumentV1 contract = 2;
|
|
48
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
package eservice;
|
|
4
|
+
|
|
5
|
+
message EServiceV1 {
|
|
6
|
+
required string id = 1;
|
|
7
|
+
required string producerId = 2;
|
|
8
|
+
required string name = 3;
|
|
9
|
+
required string description = 4;
|
|
10
|
+
required EServiceTechnologyV1 technology = 5;
|
|
11
|
+
optional EServiceAttributesV1 attributes = 6;
|
|
12
|
+
repeated EServiceDescriptorV1 descriptors = 7;
|
|
13
|
+
optional int64 createdAt = 8;
|
|
14
|
+
optional EServiceModeV1 mode = 9;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
message EServiceAttributeValueV1 {
|
|
18
|
+
required string id = 1;
|
|
19
|
+
required bool explicitAttributeVerification = 2;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
message EServiceAttributeV1 {
|
|
23
|
+
optional EServiceAttributeValueV1 single = 1;
|
|
24
|
+
repeated EServiceAttributeValueV1 group = 2;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message EServiceAttributesV1 {
|
|
28
|
+
repeated EServiceAttributeV1 certified = 1;
|
|
29
|
+
repeated EServiceAttributeV1 declared = 2;
|
|
30
|
+
repeated EServiceAttributeV1 verified = 3;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
message EServiceDescriptorV1 {
|
|
34
|
+
required string id = 1;
|
|
35
|
+
required string version = 2;
|
|
36
|
+
optional string description = 3;
|
|
37
|
+
repeated EServiceDocumentV1 docs = 4;
|
|
38
|
+
required EServiceDescriptorStateV1 state = 5;
|
|
39
|
+
optional EServiceDocumentV1 interface = 6;
|
|
40
|
+
repeated string audience = 7;
|
|
41
|
+
required int32 voucherLifespan = 8;
|
|
42
|
+
required int32 dailyCallsPerConsumer = 9;
|
|
43
|
+
required int32 dailyCallsTotal = 10;
|
|
44
|
+
optional AgreementApprovalPolicyV1 agreementApprovalPolicy = 11;
|
|
45
|
+
optional int64 createdAt = 12;
|
|
46
|
+
optional int64 publishedAt = 13;
|
|
47
|
+
repeated string serverUrls = 14;
|
|
48
|
+
optional int64 suspendedAt = 15;
|
|
49
|
+
optional int64 deprecatedAt = 16;
|
|
50
|
+
optional int64 archivedAt = 17;
|
|
51
|
+
optional EServiceAttributesV1 attributes = 18;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
message EServiceDocumentV1 {
|
|
55
|
+
required string id = 1;
|
|
56
|
+
required string name = 2;
|
|
57
|
+
required string contentType = 3;
|
|
58
|
+
required string checksum = 4;
|
|
59
|
+
required string uploadDate = 5;
|
|
60
|
+
required string prettyName = 6;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
enum EServiceDescriptorStateV1 {
|
|
64
|
+
DRAFT = 1;
|
|
65
|
+
PUBLISHED = 2;
|
|
66
|
+
DEPRECATED = 3;
|
|
67
|
+
SUSPENDED = 4;
|
|
68
|
+
ARCHIVED = 5;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
enum EServiceTechnologyV1 {
|
|
72
|
+
REST = 1;
|
|
73
|
+
SOAP = 2;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
enum AgreementApprovalPolicyV1 {
|
|
77
|
+
AUTOMATIC = 1;
|
|
78
|
+
MANUAL = 2;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
enum EServiceModeV1 {
|
|
82
|
+
RECEIVE = 1;
|
|
83
|
+
DELIVER = 2;
|
|
84
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
package eservice;
|
|
4
|
+
|
|
5
|
+
import "v1/eservice/eservice.proto";
|
|
6
|
+
|
|
7
|
+
message EServiceAddedV1 {
|
|
8
|
+
required EServiceV1 eservice = 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
message ClonedEServiceAddedV1 {
|
|
12
|
+
required EServiceV1 eservice = 1;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message EServiceUpdatedV1 {
|
|
16
|
+
required EServiceV1 eservice = 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
message EServiceWithDescriptorsDeletedV1 {
|
|
20
|
+
required EServiceV1 eservice = 1;
|
|
21
|
+
required string descriptorId = 2;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
message EServiceDocumentUpdatedV1 {
|
|
25
|
+
required string eserviceId = 1;
|
|
26
|
+
required string descriptorId = 2;
|
|
27
|
+
required string documentId = 3;
|
|
28
|
+
required EServiceDocumentV1 updatedDocument = 4;
|
|
29
|
+
repeated string serverUrls = 5;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message EServiceDeletedV1 {
|
|
33
|
+
required string eserviceId = 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
message EServiceDocumentAddedV1 {
|
|
37
|
+
required string eserviceId = 1;
|
|
38
|
+
required string descriptorId = 2;
|
|
39
|
+
required EServiceDocumentV1 document = 3;
|
|
40
|
+
required bool isInterface = 4;
|
|
41
|
+
repeated string serverUrls = 5;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
message EServiceDocumentDeletedV1 {
|
|
45
|
+
required string eserviceId = 1;
|
|
46
|
+
required string descriptorId = 2;
|
|
47
|
+
required string documentId = 3;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
message EServiceDescriptorAddedV1 {
|
|
51
|
+
required string eserviceId = 1;
|
|
52
|
+
required EServiceDescriptorV1 eserviceDescriptor = 2;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message EServiceDescriptorUpdatedV1 {
|
|
56
|
+
required string eserviceId = 1;
|
|
57
|
+
required EServiceDescriptorV1 eserviceDescriptor = 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
message MovedAttributesFromEserviceToDescriptorsV1 {
|
|
61
|
+
required EServiceV1 eservice = 1;
|
|
62
|
+
}
|
|
63
|
+
|