@volontariapp/contracts-nest 0.0.0-snap-398faec

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.
Files changed (141) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/README.md +49 -0
  3. package/dist/common/geo.d.ts +9 -0
  4. package/dist/common/geo.d.ts.map +1 -0
  5. package/dist/common/geo.js +2 -0
  6. package/dist/common/geo.js.map +1 -0
  7. package/dist/common/index.d.ts +4 -0
  8. package/dist/common/index.d.ts.map +1 -0
  9. package/dist/common/index.js +4 -0
  10. package/dist/common/index.js.map +1 -0
  11. package/dist/common/pagination.d.ts +11 -0
  12. package/dist/common/pagination.d.ts.map +1 -0
  13. package/dist/common/pagination.js +2 -0
  14. package/dist/common/pagination.js.map +1 -0
  15. package/dist/common/timestamp.d.ts +6 -0
  16. package/dist/common/timestamp.d.ts.map +1 -0
  17. package/dist/common/timestamp.js +2 -0
  18. package/dist/common/timestamp.js.map +1 -0
  19. package/dist/date.mapper.d.ts +6 -0
  20. package/dist/date.mapper.d.ts.map +1 -0
  21. package/dist/date.mapper.js +28 -0
  22. package/dist/date.mapper.js.map +1 -0
  23. package/dist/event/event.command.d.ts +52 -0
  24. package/dist/event/event.command.d.ts.map +1 -0
  25. package/dist/event/event.command.js +2 -0
  26. package/dist/event/event.command.js.map +1 -0
  27. package/dist/event/event.d.ts +46 -0
  28. package/dist/event/event.d.ts.map +1 -0
  29. package/dist/event/event.js +16 -0
  30. package/dist/event/event.js.map +1 -0
  31. package/dist/event/event.query.d.ts +20 -0
  32. package/dist/event/event.query.d.ts.map +1 -0
  33. package/dist/event/event.query.js +2 -0
  34. package/dist/event/event.query.js.map +1 -0
  35. package/dist/event/event.responses.d.ts +40 -0
  36. package/dist/event/event.responses.d.ts.map +1 -0
  37. package/dist/event/event.responses.js +2 -0
  38. package/dist/event/event.responses.js.map +1 -0
  39. package/dist/event/event.services.d.ts +53 -0
  40. package/dist/event/event.services.d.ts.map +1 -0
  41. package/dist/event/event.services.js +68 -0
  42. package/dist/event/event.services.js.map +1 -0
  43. package/dist/event/grpc-helpers.d.ts +23 -0
  44. package/dist/event/grpc-helpers.d.ts.map +1 -0
  45. package/dist/event/grpc-helpers.js +29 -0
  46. package/dist/event/grpc-helpers.js.map +1 -0
  47. package/dist/event/index.d.ts +7 -0
  48. package/dist/event/index.d.ts.map +1 -0
  49. package/dist/event/index.js +7 -0
  50. package/dist/event/index.js.map +1 -0
  51. package/dist/google/index.d.ts +2 -0
  52. package/dist/google/index.d.ts.map +1 -0
  53. package/dist/google/index.js +2 -0
  54. package/dist/google/index.js.map +1 -0
  55. package/dist/google/protobuf/timestamp.d.ts +5 -0
  56. package/dist/google/protobuf/timestamp.d.ts.map +1 -0
  57. package/dist/google/protobuf/timestamp.js +2 -0
  58. package/dist/google/protobuf/timestamp.js.map +1 -0
  59. package/dist/grpc.helpers.d.ts +40 -0
  60. package/dist/grpc.helpers.d.ts.map +1 -0
  61. package/dist/grpc.helpers.js +68 -0
  62. package/dist/grpc.helpers.js.map +1 -0
  63. package/dist/index.d.ts +10 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +10 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/post/grpc-helpers.d.ts +10 -0
  68. package/dist/post/grpc-helpers.d.ts.map +1 -0
  69. package/dist/post/grpc-helpers.js +13 -0
  70. package/dist/post/grpc-helpers.js.map +1 -0
  71. package/dist/post/index.d.ts +7 -0
  72. package/dist/post/index.d.ts.map +1 -0
  73. package/dist/post/index.js +7 -0
  74. package/dist/post/index.js.map +1 -0
  75. package/dist/post/post.command.d.ts +14 -0
  76. package/dist/post/post.command.d.ts.map +1 -0
  77. package/dist/post/post.command.js +2 -0
  78. package/dist/post/post.command.js.map +1 -0
  79. package/dist/post/post.d.ts +7 -0
  80. package/dist/post/post.d.ts.map +1 -0
  81. package/dist/post/post.js +2 -0
  82. package/dist/post/post.js.map +1 -0
  83. package/dist/post/post.query.d.ts +9 -0
  84. package/dist/post/post.query.d.ts.map +1 -0
  85. package/dist/post/post.query.js +2 -0
  86. package/dist/post/post.query.js.map +1 -0
  87. package/dist/post/post.responses.d.ts +19 -0
  88. package/dist/post/post.responses.d.ts.map +1 -0
  89. package/dist/post/post.responses.js +2 -0
  90. package/dist/post/post.responses.js.map +1 -0
  91. package/dist/post/post.services.d.ts +21 -0
  92. package/dist/post/post.services.d.ts.map +1 -0
  93. package/dist/post/post.services.js +17 -0
  94. package/dist/post/post.services.js.map +1 -0
  95. package/dist/user/grpc-helpers.d.ts +10 -0
  96. package/dist/user/grpc-helpers.d.ts.map +1 -0
  97. package/dist/user/grpc-helpers.js +13 -0
  98. package/dist/user/grpc-helpers.js.map +1 -0
  99. package/dist/user/index.d.ts +7 -0
  100. package/dist/user/index.d.ts.map +1 -0
  101. package/dist/user/index.js +7 -0
  102. package/dist/user/index.js.map +1 -0
  103. package/dist/user/user.command.d.ts +32 -0
  104. package/dist/user/user.command.d.ts.map +1 -0
  105. package/dist/user/user.command.js +2 -0
  106. package/dist/user/user.command.js.map +1 -0
  107. package/dist/user/user.d.ts +24 -0
  108. package/dist/user/user.d.ts.map +1 -0
  109. package/dist/user/user.js +2 -0
  110. package/dist/user/user.js.map +1 -0
  111. package/dist/user/user.query.d.ts +8 -0
  112. package/dist/user/user.query.d.ts.map +1 -0
  113. package/dist/user/user.query.js +2 -0
  114. package/dist/user/user.query.js.map +1 -0
  115. package/dist/user/user.responses.d.ts +28 -0
  116. package/dist/user/user.responses.d.ts.map +1 -0
  117. package/dist/user/user.responses.js +2 -0
  118. package/dist/user/user.responses.js.map +1 -0
  119. package/dist/user/user.services.d.ts +25 -0
  120. package/dist/user/user.services.d.ts.map +1 -0
  121. package/dist/user/user.services.js +25 -0
  122. package/dist/user/user.services.js.map +1 -0
  123. package/package.json +57 -0
  124. package/proto/volontariapp/common/geo.proto +13 -0
  125. package/proto/volontariapp/common/pagination.proto +16 -0
  126. package/proto/volontariapp/common/timestamp.proto +11 -0
  127. package/proto/volontariapp/event/event.command.proto +67 -0
  128. package/proto/volontariapp/event/event.proto +52 -0
  129. package/proto/volontariapp/event/event.query.proto +27 -0
  130. package/proto/volontariapp/event/event.responses.proto +56 -0
  131. package/proto/volontariapp/event/event.services.proto +31 -0
  132. package/proto/volontariapp/post/post.command.proto +19 -0
  133. package/proto/volontariapp/post/post.proto +11 -0
  134. package/proto/volontariapp/post/post.query.proto +15 -0
  135. package/proto/volontariapp/post/post.responses.proto +28 -0
  136. package/proto/volontariapp/post/post.services.proto +17 -0
  137. package/proto/volontariapp/user/user.command.proto +40 -0
  138. package/proto/volontariapp/user/user.proto +30 -0
  139. package/proto/volontariapp/user/user.query.proto +13 -0
  140. package/proto/volontariapp/user/user.responses.proto +39 -0
  141. package/proto/volontariapp/user/user.services.proto +17 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,185 @@
1
+ # Changelog
2
+
3
+ ## 2.2.8
4
+
5
+ ### Patch Changes
6
+
7
+ - moving database config on config package
8
+
9
+ ## 2.2.7
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies []:
14
+ - @volontariapp/logger@0.2.3
15
+
16
+ ## 2.2.6
17
+
18
+ ### Patch Changes
19
+
20
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
21
+
22
+ ## 2.2.5
23
+
24
+ ### Patch Changes
25
+
26
+ - fix: date mappers to return undefined instead of new Date()
27
+
28
+ ## 2.2.4
29
+
30
+ ### Patch Changes
31
+
32
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
33
+
34
+ ## 2.2.3
35
+
36
+ ### Patch Changes
37
+
38
+ - fix grpc timestamps
39
+
40
+ ## 2.2.2
41
+
42
+ ### Patch Changes
43
+
44
+ - af499d7: adding grpc helpers enum
45
+ - including google GRPC timestamps + update mappers
46
+
47
+ ## 2.2.1
48
+
49
+ ### Patch Changes
50
+
51
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
52
+
53
+ ## 2.2.0
54
+
55
+ ### Minor Changes
56
+
57
+ - patch version
58
+
59
+ ## 2.1.3
60
+
61
+ ### Patch Changes
62
+
63
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
64
+
65
+ ## 2.1.2
66
+
67
+ ### Patch Changes
68
+
69
+ - bump global version
70
+
71
+ - Updated dependencies []:
72
+ - @volontariapp/logger@0.2.2
73
+
74
+ ## 2.1.1
75
+
76
+ ### Patch Changes
77
+
78
+ - bump ci
79
+
80
+ - Updated dependencies []:
81
+ - @volontariapp/logger@0.2.1
82
+
83
+ ## 2.1.0
84
+
85
+ ### Minor Changes
86
+
87
+ - adding tag grpc
88
+
89
+ ## 2.0.11
90
+
91
+ ### Patch Changes
92
+
93
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
94
+
95
+ ## 2.0.10
96
+
97
+ ### Patch Changes
98
+
99
+ - adding grpc-microservice enum
100
+
101
+ ## 2.0.9
102
+
103
+ ### Patch Changes
104
+
105
+ - Bump contract-nest packages
106
+
107
+ ## 2.0.8
108
+
109
+ ### Patch Changes
110
+
111
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
112
+
113
+ ## 2.0.7
114
+
115
+ ### Patch Changes
116
+
117
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
118
+
119
+ ## 2.0.6
120
+
121
+ ### Patch Changes
122
+
123
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
124
+
125
+ ## 2.0.5
126
+
127
+ ### Patch Changes
128
+
129
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
130
+
131
+ ## 2.0.4
132
+
133
+ ### Patch Changes
134
+
135
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
136
+
137
+ ## 2.0.3
138
+
139
+ ### Patch Changes
140
+
141
+ - Auto-generated proto typings update for both pure contracts and NestJS integration.
142
+
143
+ ## 2.0.2
144
+
145
+ ### Patch Changes
146
+
147
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
148
+
149
+ ## 2.0.1
150
+
151
+ ### Patch Changes
152
+
153
+ - This PR performs a full regeneration of all proto files and TypeScript types for both pure @volontariapp/contracts and NestJS @volontariapp/contracts-nest packages.
154
+
155
+ ## 2.0.0
156
+
157
+ ### Major Changes
158
+
159
+ - BREAKING CHANGES: split libs contracts
160
+
161
+ ### Patch Changes
162
+
163
+ - Updated dependencies []:
164
+ - @volontariapp/contracts@3.0.0
165
+
166
+ ## 0.2.0
167
+
168
+ ### Minor Changes
169
+
170
+ - logger added
171
+
172
+ ### Patch Changes
173
+
174
+ - Updated dependencies []:
175
+ - @volontariapp/errors-nest@0.4.0
176
+ - @volontariapp/bridge@0.2.0
177
+ - @volontariapp/errors@0.3.0
178
+
179
+ All notable changes to this project will be documented in this file.
180
+
181
+ ## 0.1.0
182
+
183
+ ### Minor Changes
184
+
185
+ - Initial package scaffold.
package/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # @volontariapp/contracts-nest
2
+
3
+ NestJS-specific integration for Volontariapp gRPC contracts.
4
+
5
+ ## 🚀 Purpose
6
+
7
+ This package provides the integration layer for NestJS microservices. It contains:
8
+ - **gRPC Helpers**: `getGrpcOptions` and configuration utilities.
9
+ - **Service Controllers**: Generated decorators like `UserServiceControllerMethods`.
10
+ - **Service Clients**: Interfaces for gRPC clients using RxJS.
11
+ - **Proto Files**: Contains the original `.proto` definition files in the `proto/` directory.
12
+
13
+ ## ⚠️ Compatibility
14
+
15
+ This package depends on `@nestjs/microservices` and `rxjs`. It is **not** compatible with front-end environments (React/React Native). For front-end usage, use `@volontariapp/contracts`.
16
+
17
+ ## 💻 Usage
18
+
19
+ ### Microservice Setup
20
+ ```typescript
21
+ import { NestFactory } from '@nestjs/core';
22
+ import { GRPC_SERVICES, getGrpcOptions } from '@volontariapp/contracts-nest';
23
+
24
+ async function bootstrap() {
25
+ const app = await NestFactory.createMicroservice(AppModule, {
26
+ ...getGrpcOptions(GRPC_SERVICES.USER, process.env.MS_USER_URL)
27
+ });
28
+ await app.listen();
29
+ }
30
+ ```
31
+
32
+ ### gRPC Service Controller
33
+ ```typescript
34
+ import { Controller } from '@nestjs/common';
35
+ import { GrpcMethod } from '@nestjs/microservices';
36
+ import { USER_SERVICE_NAME, USER_GRPC_METHODS } from '@volontariapp/contracts-nest';
37
+
38
+ @Controller()
39
+ export class UserQueryController {
40
+ @GrpcMethod(USER_SERVICE_NAME, USER_GRPC_METHODS.GET_USER)
41
+ async getUser(query: UserQuery) {
42
+ // ...
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## 🛠 Maintenance
48
+
49
+ The source code in `src/` is automatically generated by the CI. Do **not** edit files inside `src/` manually, except for `grpc.helpers.ts`.
@@ -0,0 +1,9 @@
1
+ export interface Point {
2
+ latitude: number;
3
+ longitude: number;
4
+ }
5
+ export interface GeoCircle {
6
+ center: Point | undefined;
7
+ radiusMeters: number;
8
+ }
9
+ //# sourceMappingURL=geo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geo.d.ts","sourceRoot":"","sources":["../../src/common/geo.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=geo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geo.js","sourceRoot":"","sources":["../../src/common/geo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './timestamp.js';
2
+ export * from './pagination.js';
3
+ export * from './geo.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './timestamp.js';
2
+ export * from './pagination.js';
3
+ export * from './geo.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface PaginationRequest {
2
+ page: number;
3
+ limit: number;
4
+ }
5
+ export interface PaginationResponse {
6
+ total: number;
7
+ page: number;
8
+ limit: number;
9
+ totalPages: number;
10
+ }
11
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/common/pagination.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/common/pagination.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { Timestamp } from "../google/protobuf/timestamp.js";
2
+ export interface DateRange {
3
+ start: Timestamp | undefined;
4
+ end: Timestamp | undefined;
5
+ }
6
+ //# sourceMappingURL=timestamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/common/timestamp.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/common/timestamp.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { Timestamp } from './index.js';
2
+ export declare class GrpcDateMapper {
3
+ static toTimestamp(date: Date | undefined | null): Timestamp | undefined;
4
+ static toDate(value: Timestamp | Date | string | undefined | null): Date | undefined;
5
+ }
6
+ //# sourceMappingURL=date.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.mapper.d.ts","sourceRoot":"","sources":["../src/date.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,qBAAa,cAAc;IAKzB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS;IAexE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS;CAgBrF"}
@@ -0,0 +1,28 @@
1
+ export class GrpcDateMapper {
2
+ static toTimestamp(date) {
3
+ if (!date || isNaN(date.getTime()))
4
+ return undefined;
5
+ const ms = date.getTime();
6
+ return {
7
+ seconds: Math.floor(ms / 1000),
8
+ nanos: (ms % 1000) * 1e6,
9
+ };
10
+ }
11
+ static toDate(value) {
12
+ if (value === null || value === undefined)
13
+ return undefined;
14
+ if (value instanceof Date)
15
+ return value;
16
+ if (typeof value === 'string')
17
+ return new Date(value);
18
+ if (typeof value === 'object' && ('seconds' in value || 'nanos' in value)) {
19
+ const seconds = Number(value.seconds);
20
+ const nanos = Number(value.nanos);
21
+ if (seconds === 0 && nanos === 0)
22
+ return undefined;
23
+ return new Date(seconds * 1000 + nanos / 1e6);
24
+ }
25
+ return undefined;
26
+ }
27
+ }
28
+ //# sourceMappingURL=date.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.mapper.js","sourceRoot":"","sources":["../src/date.mapper.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IAKzB,MAAM,CAAC,WAAW,CAAC,IAA6B;QAC9C,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QAErD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;SACzB,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,MAAM,CAAC,KAAmD;QAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5D,IAAI,KAAK,YAAY,IAAI;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAEnD,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ import { Timestamp } from "../google/protobuf/timestamp.js";
2
+ import { Event, EventState, EventType } from "./event.js";
3
+ export interface CreateEventCommand {
4
+ title: string;
5
+ description: string;
6
+ startAt: Timestamp | undefined;
7
+ endAt: Timestamp | undefined;
8
+ localisationName: string;
9
+ type: EventType;
10
+ awardedImpactScore: number;
11
+ maxParticipants: number;
12
+ tagIds: string[];
13
+ }
14
+ export interface UpdateEventCommand {
15
+ id: string;
16
+ event: Event | undefined;
17
+ updateMask: string[];
18
+ }
19
+ export interface ChangeEventStateCommand {
20
+ id: string;
21
+ newState: EventState;
22
+ }
23
+ export interface ManageRequirementCommand {
24
+ eventId: string;
25
+ add?: AddRequirement | undefined;
26
+ remove?: RemoveRequirement | undefined;
27
+ }
28
+ export interface AddRequirement {
29
+ name: string;
30
+ description: string;
31
+ neededQuantity: number;
32
+ }
33
+ export interface RemoveRequirement {
34
+ requirementId: string;
35
+ }
36
+ export interface CreateTagCommand {
37
+ slug: string;
38
+ name: string;
39
+ balise: string;
40
+ }
41
+ export interface UpdateTagCommand {
42
+ id: string;
43
+ name: string;
44
+ balise: string;
45
+ }
46
+ export interface DeleteEventCommand {
47
+ id: string;
48
+ }
49
+ export interface DeleteTagCommand {
50
+ id: string;
51
+ }
52
+ //# sourceMappingURL=event.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.command.d.ts","sourceRoot":"","sources":["../../src/event/event.command.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;CACZ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.command.js","sourceRoot":"","sources":["../../src/event/event.command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { Timestamp } from "../google/protobuf/timestamp.js";
2
+ import { Point } from "../common/geo.js";
3
+ export declare enum EventType {
4
+ EVENT_TYPE_UNSPECIFIED = 0,
5
+ EVENT_TYPE_SOCIAL = 1,
6
+ EVENT_TYPE_ECOLOGY = 2,
7
+ UNRECOGNIZED = -1
8
+ }
9
+ export declare enum EventState {
10
+ EVENT_STATE_UNSPECIFIED = 0,
11
+ EVENT_STATE_DRAFT = 1,
12
+ EVENT_STATE_PUBLISHED = 2,
13
+ EVENT_STATE_CANCELLED = 3,
14
+ UNRECOGNIZED = -1
15
+ }
16
+ export interface Tag {
17
+ id: string;
18
+ slug: string;
19
+ name: string;
20
+ balise: string;
21
+ }
22
+ export interface Requirement {
23
+ id: string;
24
+ name: string;
25
+ description: string;
26
+ neededQuantity: number;
27
+ currentQuantity: number;
28
+ }
29
+ export interface Event {
30
+ id: string;
31
+ title: string;
32
+ description: string;
33
+ startAt: Timestamp | undefined;
34
+ endAt: Timestamp | undefined;
35
+ location: Point | undefined;
36
+ localisationName: string;
37
+ type: EventType;
38
+ state: EventState;
39
+ awardedImpactScore: number;
40
+ maxParticipants: number;
41
+ currentParticipants: number;
42
+ organizerId?: string | undefined;
43
+ tags: Tag[];
44
+ requirements: Requirement[];
45
+ }
46
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,oBAAY,SAAS;IACnB,sBAAsB,IAAI;IAC1B,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,YAAY,KAAK;CAClB;AAED,oBAAY,UAAU;IACpB,uBAAuB,IAAI;IAC3B,iBAAiB,IAAI;IACrB,qBAAqB,IAAI;IACzB,qBAAqB,IAAI;IACzB,YAAY,KAAK;CAClB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B"}
@@ -0,0 +1,16 @@
1
+ export var EventType;
2
+ (function (EventType) {
3
+ EventType[EventType["EVENT_TYPE_UNSPECIFIED"] = 0] = "EVENT_TYPE_UNSPECIFIED";
4
+ EventType[EventType["EVENT_TYPE_SOCIAL"] = 1] = "EVENT_TYPE_SOCIAL";
5
+ EventType[EventType["EVENT_TYPE_ECOLOGY"] = 2] = "EVENT_TYPE_ECOLOGY";
6
+ EventType[EventType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
7
+ })(EventType || (EventType = {}));
8
+ export var EventState;
9
+ (function (EventState) {
10
+ EventState[EventState["EVENT_STATE_UNSPECIFIED"] = 0] = "EVENT_STATE_UNSPECIFIED";
11
+ EventState[EventState["EVENT_STATE_DRAFT"] = 1] = "EVENT_STATE_DRAFT";
12
+ EventState[EventState["EVENT_STATE_PUBLISHED"] = 2] = "EVENT_STATE_PUBLISHED";
13
+ EventState[EventState["EVENT_STATE_CANCELLED"] = 3] = "EVENT_STATE_CANCELLED";
14
+ EventState[EventState["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
15
+ })(EventState || (EventState = {}));
16
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"AAUA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,6EAA0B,CAAA;IAC1B,mEAAqB,CAAA;IACrB,qEAAsB,CAAA;IACtB,0DAAiB,CAAA;AACnB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,iFAA2B,CAAA;IAC3B,qEAAqB,CAAA;IACrB,6EAAyB,CAAA;IACzB,6EAAyB,CAAA;IACzB,4DAAiB,CAAA;AACnB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB"}
@@ -0,0 +1,20 @@
1
+ import { GeoCircle } from "../common/geo.js";
2
+ import { EventType } from "./event.js";
3
+ export interface GetEventQuery {
4
+ id: string;
5
+ }
6
+ export interface SearchEventsQuery {
7
+ area: GeoCircle | undefined;
8
+ types: EventType[];
9
+ tagSlugs: string[];
10
+ onlyAvailable: boolean;
11
+ searchTerm: string;
12
+ organizerId: string;
13
+ }
14
+ export interface ListRequirementsQuery {
15
+ eventId: string;
16
+ }
17
+ export interface GetTagsQuery {
18
+ slugs: string[];
19
+ }
20
+ //# sourceMappingURL=event.query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.query.d.ts","sourceRoot":"","sources":["../../src/event/event.query.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.query.js","sourceRoot":"","sources":["../../src/event/event.query.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { Event, Requirement, Tag } from "./event.js";
2
+ export interface CreateEventResponse {
3
+ event: Event | undefined;
4
+ }
5
+ export interface UpdateEventResponse {
6
+ event: Event | undefined;
7
+ }
8
+ export interface ChangeEventStateResponse {
9
+ event: Event | undefined;
10
+ }
11
+ export interface ManageRequirementsResponse {
12
+ success: boolean;
13
+ message: string;
14
+ }
15
+ export interface DeleteEventResponse {
16
+ success: boolean;
17
+ }
18
+ export interface GetEventResponse {
19
+ event: Event | undefined;
20
+ }
21
+ export interface SearchEventsResponse {
22
+ events: Event[];
23
+ totalCount: number;
24
+ }
25
+ export interface ListRequirementsResponse {
26
+ requirements: Requirement[];
27
+ }
28
+ export interface GetTagsResponse {
29
+ tags: Tag[];
30
+ }
31
+ export interface CreateTagResponse {
32
+ tag: Tag | undefined;
33
+ }
34
+ export interface UpdateTagResponse {
35
+ tag: Tag | undefined;
36
+ }
37
+ export interface DeleteTagResponse {
38
+ success: boolean;
39
+ }
40
+ //# sourceMappingURL=event.responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.responses.d.ts","sourceRoot":"","sources":["../../src/event/event.responses.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event.responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.responses.js","sourceRoot":"","sources":["../../src/event/event.responses.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { Observable } from "rxjs";
2
+ import { ChangeEventStateCommand, CreateEventCommand, CreateTagCommand, DeleteEventCommand, DeleteTagCommand, ManageRequirementCommand, UpdateEventCommand, UpdateTagCommand } from "./event.command.js";
3
+ import { GetEventQuery, GetTagsQuery, ListRequirementsQuery, SearchEventsQuery } from "./event.query.js";
4
+ import { ChangeEventStateResponse, CreateEventResponse, CreateTagResponse, DeleteEventResponse, DeleteTagResponse, GetEventResponse, GetTagsResponse, ListRequirementsResponse, ManageRequirementsResponse, SearchEventsResponse, UpdateEventResponse, UpdateTagResponse } from "./event.responses.js";
5
+ export interface EventCommandServiceClient {
6
+ createEvent(request: CreateEventCommand): Observable<CreateEventResponse>;
7
+ updateEvent(request: UpdateEventCommand): Observable<UpdateEventResponse>;
8
+ changeEventState(request: ChangeEventStateCommand): Observable<ChangeEventStateResponse>;
9
+ manageRequirements(request: ManageRequirementCommand): Observable<ManageRequirementsResponse>;
10
+ deleteEvent(request: DeleteEventCommand): Observable<DeleteEventResponse>;
11
+ }
12
+ export interface EventCommandServiceController {
13
+ createEvent(request: CreateEventCommand): Promise<CreateEventResponse> | Observable<CreateEventResponse> | CreateEventResponse;
14
+ updateEvent(request: UpdateEventCommand): Promise<UpdateEventResponse> | Observable<UpdateEventResponse> | UpdateEventResponse;
15
+ changeEventState(request: ChangeEventStateCommand): Promise<ChangeEventStateResponse> | Observable<ChangeEventStateResponse> | ChangeEventStateResponse;
16
+ manageRequirements(request: ManageRequirementCommand): Promise<ManageRequirementsResponse> | Observable<ManageRequirementsResponse> | ManageRequirementsResponse;
17
+ deleteEvent(request: DeleteEventCommand): Promise<DeleteEventResponse> | Observable<DeleteEventResponse> | DeleteEventResponse;
18
+ }
19
+ export declare function EventCommandServiceControllerMethods(): (constructor: Function) => void;
20
+ export declare const EVENT_COMMAND_SERVICE_NAME = "EventCommandService";
21
+ export interface EventQueryServiceClient {
22
+ getEvent(request: GetEventQuery): Observable<GetEventResponse>;
23
+ searchEvents(request: SearchEventsQuery): Observable<SearchEventsResponse>;
24
+ listRequirements(request: ListRequirementsQuery): Observable<ListRequirementsResponse>;
25
+ }
26
+ export interface EventQueryServiceController {
27
+ getEvent(request: GetEventQuery): Promise<GetEventResponse> | Observable<GetEventResponse> | GetEventResponse;
28
+ searchEvents(request: SearchEventsQuery): Promise<SearchEventsResponse> | Observable<SearchEventsResponse> | SearchEventsResponse;
29
+ listRequirements(request: ListRequirementsQuery): Promise<ListRequirementsResponse> | Observable<ListRequirementsResponse> | ListRequirementsResponse;
30
+ }
31
+ export declare function EventQueryServiceControllerMethods(): (constructor: Function) => void;
32
+ export declare const EVENT_QUERY_SERVICE_NAME = "EventQueryService";
33
+ export interface TagCommandServiceClient {
34
+ createTag(request: CreateTagCommand): Observable<CreateTagResponse>;
35
+ updateTag(request: UpdateTagCommand): Observable<UpdateTagResponse>;
36
+ deleteTag(request: DeleteTagCommand): Observable<DeleteTagResponse>;
37
+ }
38
+ export interface TagCommandServiceController {
39
+ createTag(request: CreateTagCommand): Promise<CreateTagResponse> | Observable<CreateTagResponse> | CreateTagResponse;
40
+ updateTag(request: UpdateTagCommand): Promise<UpdateTagResponse> | Observable<UpdateTagResponse> | UpdateTagResponse;
41
+ deleteTag(request: DeleteTagCommand): Promise<DeleteTagResponse> | Observable<DeleteTagResponse> | DeleteTagResponse;
42
+ }
43
+ export declare function TagCommandServiceControllerMethods(): (constructor: Function) => void;
44
+ export declare const TAG_COMMAND_SERVICE_NAME = "TagCommandService";
45
+ export interface TagQueryServiceClient {
46
+ getTags(request: GetTagsQuery): Observable<GetTagsResponse>;
47
+ }
48
+ export interface TagQueryServiceController {
49
+ getTags(request: GetTagsQuery): Promise<GetTagsResponse> | Observable<GetTagsResponse> | GetTagsResponse;
50
+ }
51
+ export declare function TagQueryServiceControllerMethods(): (constructor: Function) => void;
52
+ export declare const TAG_QUERY_SERVICE_NAME = "TagQueryService";
53
+ //# sourceMappingURL=event.services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.services.d.ts","sourceRoot":"","sources":["../../src/event/event.services.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE1E,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE1E,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAEzF,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAE9F,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,CACT,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IAExF,WAAW,CACT,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IAExF,gBAAgB,CACd,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;IAEvG,kBAAkB,CAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,0BAA0B,CAAC,GAAG,UAAU,CAAC,0BAA0B,CAAC,GAAG,0BAA0B,CAAC;IAE7G,WAAW,CACT,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;CACzF;AAED,wBAAgB,oCAAoC,kBACpB,QAAQ,UAkBvC;AAED,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE/D,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAE3E,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;IAE9G,YAAY,CACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,oBAAoB,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;IAE3F,gBAAgB,CACd,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;CACxG;AAED,wBAAgB,kCAAkC,kBAClB,QAAQ,UAYvC;AAED,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEpE,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEpE,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;IAErH,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;IAErH,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;CACtH;AAED,wBAAgB,kCAAkC,kBAClB,QAAQ,UAYvC;AAED,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;CAC1G;AAED,wBAAgB,gCAAgC,kBAChB,QAAQ,UAYvC;AAED,eAAO,MAAM,sBAAsB,oBAAoB,CAAC"}