@firfi/voila-sdk 0.1.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.
Files changed (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/dist/src/domain/cart.d.ts +10 -0
  4. package/dist/src/domain/cart.d.ts.map +1 -0
  5. package/dist/src/domain/cart.js +14 -0
  6. package/dist/src/domain/cart.js.map +1 -0
  7. package/dist/src/domain/checkout-readiness.d.ts +3 -0
  8. package/dist/src/domain/checkout-readiness.d.ts.map +1 -0
  9. package/dist/src/domain/checkout-readiness.js +18 -0
  10. package/dist/src/domain/checkout-readiness.js.map +1 -0
  11. package/dist/src/domain/parse.d.ts +5 -0
  12. package/dist/src/domain/parse.d.ts.map +1 -0
  13. package/dist/src/domain/parse.js +11 -0
  14. package/dist/src/domain/parse.js.map +1 -0
  15. package/dist/src/domain/schemas/auth.d.ts +123 -0
  16. package/dist/src/domain/schemas/auth.d.ts.map +1 -0
  17. package/dist/src/domain/schemas/auth.js +36 -0
  18. package/dist/src/domain/schemas/auth.js.map +1 -0
  19. package/dist/src/domain/schemas/cart.d.ts +1224 -0
  20. package/dist/src/domain/schemas/cart.d.ts.map +1 -0
  21. package/dist/src/domain/schemas/cart.js +123 -0
  22. package/dist/src/domain/schemas/cart.js.map +1 -0
  23. package/dist/src/domain/schemas/category-page.d.ts +187 -0
  24. package/dist/src/domain/schemas/category-page.d.ts.map +1 -0
  25. package/dist/src/domain/schemas/category-page.js +43 -0
  26. package/dist/src/domain/schemas/category-page.js.map +1 -0
  27. package/dist/src/domain/schemas/category.d.ts +25 -0
  28. package/dist/src/domain/schemas/category.d.ts.map +1 -0
  29. package/dist/src/domain/schemas/category.js +30 -0
  30. package/dist/src/domain/schemas/category.js.map +1 -0
  31. package/dist/src/domain/schemas/checkout-summary.d.ts +1035 -0
  32. package/dist/src/domain/schemas/checkout-summary.d.ts.map +1 -0
  33. package/dist/src/domain/schemas/checkout-summary.js +103 -0
  34. package/dist/src/domain/schemas/checkout-summary.js.map +1 -0
  35. package/dist/src/domain/schemas/delivery-destination.d.ts +176 -0
  36. package/dist/src/domain/schemas/delivery-destination.d.ts.map +1 -0
  37. package/dist/src/domain/schemas/delivery-destination.js +52 -0
  38. package/dist/src/domain/schemas/delivery-destination.js.map +1 -0
  39. package/dist/src/domain/schemas/index.d.ts +13 -0
  40. package/dist/src/domain/schemas/index.d.ts.map +1 -0
  41. package/dist/src/domain/schemas/index.js +13 -0
  42. package/dist/src/domain/schemas/index.js.map +1 -0
  43. package/dist/src/domain/schemas/money.d.ts +18 -0
  44. package/dist/src/domain/schemas/money.d.ts.map +1 -0
  45. package/dist/src/domain/schemas/money.js +11 -0
  46. package/dist/src/domain/schemas/money.js.map +1 -0
  47. package/dist/src/domain/schemas/product.d.ts +230 -0
  48. package/dist/src/domain/schemas/product.d.ts.map +1 -0
  49. package/dist/src/domain/schemas/product.js +32 -0
  50. package/dist/src/domain/schemas/product.js.map +1 -0
  51. package/dist/src/domain/schemas/proposition.d.ts +746 -0
  52. package/dist/src/domain/schemas/proposition.d.ts.map +1 -0
  53. package/dist/src/domain/schemas/proposition.js +110 -0
  54. package/dist/src/domain/schemas/proposition.js.map +1 -0
  55. package/dist/src/domain/schemas/search.d.ts +31 -0
  56. package/dist/src/domain/schemas/search.d.ts.map +1 -0
  57. package/dist/src/domain/schemas/search.js +16 -0
  58. package/dist/src/domain/schemas/search.js.map +1 -0
  59. package/dist/src/domain/schemas/session.d.ts +1341 -0
  60. package/dist/src/domain/schemas/session.d.ts.map +1 -0
  61. package/dist/src/domain/schemas/session.js +140 -0
  62. package/dist/src/domain/schemas/session.js.map +1 -0
  63. package/dist/src/domain/schemas/slot.d.ts +844 -0
  64. package/dist/src/domain/schemas/slot.d.ts.map +1 -0
  65. package/dist/src/domain/schemas/slot.js +130 -0
  66. package/dist/src/domain/schemas/slot.js.map +1 -0
  67. package/dist/src/index.d.ts +26 -0
  68. package/dist/src/index.d.ts.map +1 -0
  69. package/dist/src/index.js +26 -0
  70. package/dist/src/index.js.map +1 -0
  71. package/dist/src/voila/browser-login-adapter.d.ts +108 -0
  72. package/dist/src/voila/browser-login-adapter.d.ts.map +1 -0
  73. package/dist/src/voila/browser-login-adapter.js +128 -0
  74. package/dist/src/voila/browser-login-adapter.js.map +1 -0
  75. package/dist/src/voila/browser-login.d.ts +32 -0
  76. package/dist/src/voila/browser-login.d.ts.map +1 -0
  77. package/dist/src/voila/browser-login.js +86 -0
  78. package/dist/src/voila/browser-login.js.map +1 -0
  79. package/dist/src/voila/cart-mutation.d.ts +23 -0
  80. package/dist/src/voila/cart-mutation.d.ts.map +1 -0
  81. package/dist/src/voila/cart-mutation.js +52 -0
  82. package/dist/src/voila/cart-mutation.js.map +1 -0
  83. package/dist/src/voila/cart-view.d.ts +14 -0
  84. package/dist/src/voila/cart-view.d.ts.map +1 -0
  85. package/dist/src/voila/cart-view.js +45 -0
  86. package/dist/src/voila/cart-view.js.map +1 -0
  87. package/dist/src/voila/catalog-search.d.ts +27 -0
  88. package/dist/src/voila/catalog-search.d.ts.map +1 -0
  89. package/dist/src/voila/catalog-search.js +40 -0
  90. package/dist/src/voila/catalog-search.js.map +1 -0
  91. package/dist/src/voila/categories.d.ts +4 -0
  92. package/dist/src/voila/categories.d.ts.map +1 -0
  93. package/dist/src/voila/categories.js +22 -0
  94. package/dist/src/voila/categories.js.map +1 -0
  95. package/dist/src/voila/category-products.d.ts +22 -0
  96. package/dist/src/voila/category-products.d.ts.map +1 -0
  97. package/dist/src/voila/category-products.js +32 -0
  98. package/dist/src/voila/category-products.js.map +1 -0
  99. package/dist/src/voila/checkout-summary.d.ts +15 -0
  100. package/dist/src/voila/checkout-summary.d.ts.map +1 -0
  101. package/dist/src/voila/checkout-summary.js +93 -0
  102. package/dist/src/voila/checkout-summary.js.map +1 -0
  103. package/dist/src/voila/checkout-urls.d.ts +11 -0
  104. package/dist/src/voila/checkout-urls.d.ts.map +1 -0
  105. package/dist/src/voila/checkout-urls.js +23 -0
  106. package/dist/src/voila/checkout-urls.js.map +1 -0
  107. package/dist/src/voila/delivery-destinations.d.ts +22 -0
  108. package/dist/src/voila/delivery-destinations.d.ts.map +1 -0
  109. package/dist/src/voila/delivery-destinations.js +70 -0
  110. package/dist/src/voila/delivery-destinations.js.map +1 -0
  111. package/dist/src/voila/guest-bootstrap.d.ts +40 -0
  112. package/dist/src/voila/guest-bootstrap.d.ts.map +1 -0
  113. package/dist/src/voila/guest-bootstrap.js +108 -0
  114. package/dist/src/voila/guest-bootstrap.js.map +1 -0
  115. package/dist/src/voila/headers.d.ts +5 -0
  116. package/dist/src/voila/headers.d.ts.map +1 -0
  117. package/dist/src/voila/headers.js +20 -0
  118. package/dist/src/voila/headers.js.map +1 -0
  119. package/dist/src/voila/http-client.d.ts +60 -0
  120. package/dist/src/voila/http-client.d.ts.map +1 -0
  121. package/dist/src/voila/http-client.js +124 -0
  122. package/dist/src/voila/http-client.js.map +1 -0
  123. package/dist/src/voila/initial-state.d.ts +19 -0
  124. package/dist/src/voila/initial-state.d.ts.map +1 -0
  125. package/dist/src/voila/initial-state.js +117 -0
  126. package/dist/src/voila/initial-state.js.map +1 -0
  127. package/dist/src/voila/session-health.d.ts +10 -0
  128. package/dist/src/voila/session-health.d.ts.map +1 -0
  129. package/dist/src/voila/session-health.js +176 -0
  130. package/dist/src/voila/session-health.js.map +1 -0
  131. package/dist/src/voila/session-snapshot.d.ts +41 -0
  132. package/dist/src/voila/session-snapshot.d.ts.map +1 -0
  133. package/dist/src/voila/session-snapshot.js +101 -0
  134. package/dist/src/voila/session-snapshot.js.map +1 -0
  135. package/dist/src/voila/session-storage.d.ts +22 -0
  136. package/dist/src/voila/session-storage.d.ts.map +1 -0
  137. package/dist/src/voila/session-storage.js +54 -0
  138. package/dist/src/voila/session-storage.js.map +1 -0
  139. package/dist/src/voila/shopping-context.d.ts +33 -0
  140. package/dist/src/voila/shopping-context.d.ts.map +1 -0
  141. package/dist/src/voila/shopping-context.js +159 -0
  142. package/dist/src/voila/shopping-context.js.map +1 -0
  143. package/dist/src/voila/slot-urls.d.ts +22 -0
  144. package/dist/src/voila/slot-urls.d.ts.map +1 -0
  145. package/dist/src/voila/slot-urls.js +51 -0
  146. package/dist/src/voila/slot-urls.js.map +1 -0
  147. package/dist/src/voila/slots.d.ts +41 -0
  148. package/dist/src/voila/slots.d.ts.map +1 -0
  149. package/dist/src/voila/slots.js +137 -0
  150. package/dist/src/voila/slots.js.map +1 -0
  151. package/dist/src/voila/urls.d.ts +114 -0
  152. package/dist/src/voila/urls.d.ts.map +1 -0
  153. package/dist/src/voila/urls.js +197 -0
  154. package/dist/src/voila/urls.js.map +1 -0
  155. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../../../src/domain/schemas/cart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { Schema } from "effect";
2
+ import { MoneySchema } from "./money.js";
3
+ const UnknownStringRecordSchema = Schema.Record({ key: Schema.String, value: Schema.Unknown });
4
+ const NonEmptyTrimmedStringSchema = Schema.String.pipe(Schema.trimmed(), Schema.minLength(1));
5
+ const NonNegativeIntegerSchema = Schema.Number.pipe(Schema.finite(), Schema.int(), Schema.nonNegative());
6
+ const CartQuantityDeltaIntegerSchema = Schema.Number.pipe(Schema.finite(), Schema.int(), Schema.filter((quantity) => quantity !== 0, {
7
+ message: () => "Cart quantity delta must not be zero"
8
+ }));
9
+ const ProductUuidSchema = Schema.String.pipe(Schema.trimmed(), Schema.pattern(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i));
10
+ export const CartQuantityDeltaSchema = Schema.Struct({
11
+ productId: ProductUuidSchema,
12
+ quantity: CartQuantityDeltaIntegerSchema
13
+ });
14
+ export const CartItemQuantityInputSchema = Schema.Struct({
15
+ productId: NonEmptyTrimmedStringSchema,
16
+ quantity: CartQuantityDeltaIntegerSchema
17
+ });
18
+ export const CartItemSchema = Schema.Struct({
19
+ finalPrice: Schema.optionalWith(MoneySchema, { exact: true }),
20
+ maxQuantityReached: Schema.optionalWith(Schema.Boolean, { exact: true }),
21
+ price: Schema.optionalWith(MoneySchema, { exact: true }),
22
+ productId: Schema.String,
23
+ quantity: NonNegativeIntegerSchema
24
+ });
25
+ export const CartItemGroupSchema = Schema.Struct({
26
+ items: Schema.Array(CartItemSchema)
27
+ });
28
+ export const CartTotalsSchema = Schema.Struct({
29
+ itemPriceAfterPromos: MoneySchema,
30
+ itemsRetailPrice: MoneySchema,
31
+ savingsPrice: MoneySchema,
32
+ taxation: Schema.String
33
+ });
34
+ export const CartUpdateResultSchema = Schema.Struct({
35
+ itemGroups: Schema.optionalWith(Schema.Array(CartItemGroupSchema), { exact: true }),
36
+ totals: CartTotalsSchema
37
+ });
38
+ export const CartViewSignalSchema = Schema.asSchema(Schema.Struct({
39
+ code: Schema.optionalWith(Schema.String, { exact: true }),
40
+ message: Schema.optionalWith(Schema.String, { exact: true }),
41
+ severity: Schema.optionalWith(Schema.String, { exact: true })
42
+ }).pipe(Schema.extend(UnknownStringRecordSchema)));
43
+ export const LimitedCartItemSchema = Schema.asSchema(Schema.Struct({
44
+ productId: Schema.String,
45
+ quantity: NonNegativeIntegerSchema,
46
+ reason: Schema.String
47
+ }).pipe(Schema.extend(CartViewSignalSchema)));
48
+ export const CartUpdateResponseSchema = Schema.Struct({
49
+ basketUpdateResult: CartUpdateResultSchema,
50
+ limitedItems: Schema.Array(LimitedCartItemSchema),
51
+ limitedPromotionIds: Schema.Array(Schema.String),
52
+ pricingNotifications: Schema.Array(CartViewSignalSchema),
53
+ unavailableData: Schema.Array(CartViewSignalSchema)
54
+ });
55
+ export const NormalizedCartMutationResultSchema = Schema.Struct({
56
+ itemCount: NonNegativeIntegerSchema,
57
+ itemGroups: Schema.Array(CartItemGroupSchema),
58
+ limitedItems: Schema.Array(LimitedCartItemSchema),
59
+ limitedPromotionIds: Schema.Array(Schema.String),
60
+ pricingNotifications: Schema.Array(CartViewSignalSchema),
61
+ totals: CartTotalsSchema,
62
+ unavailableData: Schema.Array(CartViewSignalSchema)
63
+ });
64
+ export const CartViewItemSchema = Schema.Struct({
65
+ available: Schema.optionalWith(Schema.Boolean, { exact: true }),
66
+ finalPrice: Schema.optionalWith(MoneySchema, { exact: true }),
67
+ imageUrl: Schema.optionalWith(Schema.String, { exact: true }),
68
+ maxQuantityReached: Schema.optionalWith(Schema.Boolean, { exact: true }),
69
+ name: Schema.optionalWith(Schema.String, { exact: true }),
70
+ price: Schema.optionalWith(MoneySchema, { exact: true }),
71
+ productId: Schema.String,
72
+ quantity: NonNegativeIntegerSchema,
73
+ retailerProductId: Schema.optionalWith(Schema.String, { exact: true }),
74
+ unavailable: Schema.optionalWith(Schema.Boolean, { exact: true })
75
+ });
76
+ export const CartViewItemGroupSchema = Schema.Struct({
77
+ items: Schema.Array(CartViewItemSchema),
78
+ name: Schema.optionalWith(Schema.String, { exact: true })
79
+ });
80
+ export const CartCheckoutRestrictionSchema = CartViewSignalSchema;
81
+ export const CartViewResponseSchema = Schema.Struct({
82
+ basket: Schema.Struct({
83
+ basketId: Schema.String,
84
+ itemGroups: Schema.optionalWith(Schema.Array(CartViewItemGroupSchema), { exact: true }),
85
+ totals: CartTotalsSchema
86
+ }),
87
+ checkoutRestrictions: Schema.optionalWith(Schema.Array(CartCheckoutRestrictionSchema), { exact: true }),
88
+ limitedItems: Schema.optionalWith(Schema.Array(CartViewSignalSchema), { exact: true }),
89
+ pricingNotifications: Schema.optionalWith(Schema.Array(CartViewSignalSchema), { exact: true }),
90
+ unavailableData: Schema.optionalWith(Schema.Array(CartViewSignalSchema), { exact: true })
91
+ });
92
+ export const ActiveCartCheckoutGroupSchema = Schema.asSchema(Schema.Struct({
93
+ checkoutRestrictions: Schema.optionalWith(Schema.Array(Schema.String), { exact: true }),
94
+ itemGroups: Schema.optionalWith(Schema.Array(CartViewItemGroupSchema), { exact: true }),
95
+ totals: Schema.optionalWith(CartTotalsSchema, { exact: true })
96
+ }).pipe(Schema.extend(UnknownStringRecordSchema)));
97
+ export const ActiveCartViewResponseSchema = Schema.asSchema(Schema.Struct({
98
+ activeCheckoutGroup: Schema.optionalWith(Schema.Struct({
99
+ checkoutRestrictions: Schema.optionalWith(Schema.Array(Schema.String), { exact: true })
100
+ }).pipe(Schema.extend(UnknownStringRecordSchema)), { exact: true }),
101
+ cartId: Schema.String,
102
+ checkoutGroups: Schema.optionalWith(Schema.Struct({
103
+ assignedCheckoutGroups: Schema.optionalWith(Schema.Array(ActiveCartCheckoutGroupSchema), { exact: true })
104
+ }).pipe(Schema.extend(UnknownStringRecordSchema)), { exact: true }),
105
+ pricingNotifications: Schema.optionalWith(Schema.Array(CartViewSignalSchema), { exact: true }),
106
+ totals: CartTotalsSchema,
107
+ unavailableData: Schema.optionalWith(Schema.Array(CartViewSignalSchema), { exact: true })
108
+ }).pipe(Schema.extend(UnknownStringRecordSchema)));
109
+ export const AnyCartViewResponseSchema = Schema.Union(CartViewResponseSchema, ActiveCartViewResponseSchema);
110
+ export const NormalizedCartItemSchema = CartViewItemSchema.pipe(Schema.extend(Schema.Struct({
111
+ groupName: Schema.optionalWith(Schema.String, { exact: true })
112
+ })));
113
+ export const NormalizedCartViewSchema = Schema.Struct({
114
+ basketId: Schema.String,
115
+ checkoutRestrictions: Schema.Array(CartCheckoutRestrictionSchema),
116
+ itemCount: NonNegativeIntegerSchema,
117
+ items: Schema.Array(NormalizedCartItemSchema),
118
+ limitedItems: Schema.Array(CartViewSignalSchema),
119
+ pricingNotifications: Schema.Array(CartViewSignalSchema),
120
+ totals: CartTotalsSchema,
121
+ unavailableData: Schema.Array(CartViewSignalSchema)
122
+ });
123
+ //# sourceMappingURL=cart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.js","sourceRoot":"","sources":["../../../../src/domain/schemas/cart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import { Schema } from "effect";
2
+ export declare const MIN_CATEGORY_PAGE_SIZE = 1;
3
+ export declare const MAX_CATEGORY_PAGE_SIZE = 24;
4
+ export declare const CategoryPageFilterInputSchema: Schema.Struct<{
5
+ id: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
6
+ value: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
7
+ }>;
8
+ export type CategoryPageFilterInput = Schema.Schema.Type<typeof CategoryPageFilterInputSchema>;
9
+ export declare const CategoryPageInputSchema: Schema.filter<Schema.Struct<{
10
+ categoryId: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
11
+ exact: true;
12
+ }>;
13
+ filters: Schema.optionalWith<Schema.Array$<Schema.Struct<{
14
+ id: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
15
+ value: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
16
+ }>>, {
17
+ exact: true;
18
+ }>;
19
+ pageSize: Schema.filter<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>>;
20
+ pageToken: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
21
+ exact: true;
22
+ }>;
23
+ retailerCategoryId: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
24
+ exact: true;
25
+ }>;
26
+ }>>;
27
+ export type CategoryPageInput = Schema.Schema.Type<typeof CategoryPageInputSchema>;
28
+ export declare const CategoryPageSummarySchema: Schema.Struct<{
29
+ categoryId: Schema.filter<Schema.filter<typeof Schema.String>>;
30
+ name: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
31
+ exact: true;
32
+ }>;
33
+ retailerCategoryId: Schema.filter<Schema.filter<typeof Schema.String>>;
34
+ urlPath: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
35
+ exact: true;
36
+ }>;
37
+ }>;
38
+ export type CategoryPageSummary = Schema.Schema.Type<typeof CategoryPageSummarySchema>;
39
+ export declare const CategoryPageFilterOptionSchema: Schema.Struct<{
40
+ count: Schema.optionalWith<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>, {
41
+ exact: true;
42
+ }>;
43
+ id: Schema.filter<Schema.filter<typeof Schema.String>>;
44
+ label: Schema.filter<Schema.filter<typeof Schema.String>>;
45
+ selected: Schema.optionalWith<typeof Schema.Boolean, {
46
+ exact: true;
47
+ }>;
48
+ }>;
49
+ export type CategoryPageFilterOption = Schema.Schema.Type<typeof CategoryPageFilterOptionSchema>;
50
+ export declare const CategoryPageFilterSchema: Schema.Struct<{
51
+ id: Schema.filter<Schema.filter<typeof Schema.String>>;
52
+ label: Schema.filter<Schema.filter<typeof Schema.String>>;
53
+ options: Schema.Array$<Schema.Struct<{
54
+ count: Schema.optionalWith<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>, {
55
+ exact: true;
56
+ }>;
57
+ id: Schema.filter<Schema.filter<typeof Schema.String>>;
58
+ label: Schema.filter<Schema.filter<typeof Schema.String>>;
59
+ selected: Schema.optionalWith<typeof Schema.Boolean, {
60
+ exact: true;
61
+ }>;
62
+ }>>;
63
+ }>;
64
+ export type CategoryPageFilter = Schema.Schema.Type<typeof CategoryPageFilterSchema>;
65
+ export declare const CategoryProductPageResponseSchema: Schema.extend<Schema.Struct<{
66
+ nextPageToken: Schema.optionalWith<typeof Schema.String, {
67
+ exact: true;
68
+ }>;
69
+ productGroups: Schema.Array$<Schema.Struct<{
70
+ decoratedProducts: Schema.optionalWith<Schema.Array$<Schema.Struct<{
71
+ available: typeof Schema.Boolean;
72
+ brand: Schema.optionalWith<typeof Schema.String, {
73
+ exact: true;
74
+ }>;
75
+ image: Schema.optionalWith<Schema.Struct<{
76
+ description: Schema.optionalWith<typeof Schema.String, {
77
+ exact: true;
78
+ }>;
79
+ src: typeof Schema.String;
80
+ }>, {
81
+ exact: true;
82
+ }>;
83
+ maxQuantityReached: typeof Schema.Boolean;
84
+ name: typeof Schema.String;
85
+ packSizeDescription: Schema.optionalWith<typeof Schema.String, {
86
+ exact: true;
87
+ }>;
88
+ price: Schema.Struct<{
89
+ amount: typeof Schema.String;
90
+ currency: typeof Schema.String;
91
+ }>;
92
+ productId: typeof Schema.String;
93
+ quantityInBasket: typeof Schema.Number;
94
+ retailerProductId: typeof Schema.String;
95
+ unitPrice: Schema.optionalWith<Schema.Struct<{
96
+ price: Schema.Struct<{
97
+ amount: typeof Schema.String;
98
+ currency: typeof Schema.String;
99
+ }>;
100
+ unit: typeof Schema.String;
101
+ unitName: Schema.optionalWith<typeof Schema.String, {
102
+ exact: true;
103
+ }>;
104
+ }>, {
105
+ exact: true;
106
+ }>;
107
+ }>>, {
108
+ exact: true;
109
+ }>;
110
+ name: Schema.optionalWith<typeof Schema.String, {
111
+ exact: true;
112
+ }>;
113
+ products: Schema.optionalWith<Schema.Array$<Schema.Struct<{
114
+ available: typeof Schema.Boolean;
115
+ brand: Schema.optionalWith<typeof Schema.String, {
116
+ exact: true;
117
+ }>;
118
+ image: Schema.optionalWith<Schema.Struct<{
119
+ description: Schema.optionalWith<typeof Schema.String, {
120
+ exact: true;
121
+ }>;
122
+ src: typeof Schema.String;
123
+ }>, {
124
+ exact: true;
125
+ }>;
126
+ maxQuantityReached: typeof Schema.Boolean;
127
+ name: typeof Schema.String;
128
+ packSizeDescription: Schema.optionalWith<typeof Schema.String, {
129
+ exact: true;
130
+ }>;
131
+ price: Schema.Struct<{
132
+ amount: typeof Schema.String;
133
+ currency: typeof Schema.String;
134
+ }>;
135
+ productId: typeof Schema.String;
136
+ quantityInBasket: typeof Schema.Number;
137
+ retailerProductId: typeof Schema.String;
138
+ unitPrice: Schema.optionalWith<Schema.Struct<{
139
+ price: Schema.Struct<{
140
+ amount: typeof Schema.String;
141
+ currency: typeof Schema.String;
142
+ }>;
143
+ unit: typeof Schema.String;
144
+ unitName: Schema.optionalWith<typeof Schema.String, {
145
+ exact: true;
146
+ }>;
147
+ }>, {
148
+ exact: true;
149
+ }>;
150
+ }>>, {
151
+ exact: true;
152
+ }>;
153
+ type: typeof Schema.String;
154
+ }>>;
155
+ totalProducts: Schema.optionalWith<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>, {
156
+ exact: true;
157
+ }>;
158
+ }>, Schema.Struct<{
159
+ category: Schema.Struct<{
160
+ categoryId: Schema.filter<Schema.filter<typeof Schema.String>>;
161
+ name: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
162
+ exact: true;
163
+ }>;
164
+ retailerCategoryId: Schema.filter<Schema.filter<typeof Schema.String>>;
165
+ urlPath: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.String>>, {
166
+ exact: true;
167
+ }>;
168
+ }>;
169
+ filters: Schema.optionalWith<Schema.Array$<Schema.Struct<{
170
+ id: Schema.filter<Schema.filter<typeof Schema.String>>;
171
+ label: Schema.filter<Schema.filter<typeof Schema.String>>;
172
+ options: Schema.Array$<Schema.Struct<{
173
+ count: Schema.optionalWith<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>, {
174
+ exact: true;
175
+ }>;
176
+ id: Schema.filter<Schema.filter<typeof Schema.String>>;
177
+ label: Schema.filter<Schema.filter<typeof Schema.String>>;
178
+ selected: Schema.optionalWith<typeof Schema.Boolean, {
179
+ exact: true;
180
+ }>;
181
+ }>>;
182
+ }>>, {
183
+ exact: true;
184
+ }>;
185
+ }>>;
186
+ export type CategoryProductPageResponse = Schema.Schema.Type<typeof CategoryProductPageResponseSchema>;
187
+ //# sourceMappingURL=category-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-page.d.ts","sourceRoot":"","sources":["../../../../src/domain/schemas/category-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,eAAO,MAAM,sBAAsB,IAAI,CAAA;AACvC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AA0BxC,eAAO,MAAM,6BAA6B;;;EAGxC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAE9F,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;GAWnC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAElF,eAAO,MAAM,yBAAyB;;;;;;;;;EAKpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEtF,eAAO,MAAM,8BAA8B;;;;;;;;;EAKzC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAEhG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;EAInC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEpF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK7C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iCAAiC,CAAC,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { Schema } from "effect";
2
+ import { ProductSearchResponseSchema } from "./product.js";
3
+ export const MIN_CATEGORY_PAGE_SIZE = 1;
4
+ export const MAX_CATEGORY_PAGE_SIZE = 24;
5
+ const NonEmptyTrimmedStringSchema = Schema.String.pipe(Schema.trimmed(), Schema.minLength(1));
6
+ const FilterSeparatorFreeStringSchema = NonEmptyTrimmedStringSchema.pipe(Schema.filter((value) => !value.includes(":"), {
7
+ message: () => "Category page filter values must not include ':'"
8
+ }));
9
+ const NonNegativeIntegerSchema = Schema.Number.pipe(Schema.finite(), Schema.int(), Schema.nonNegative());
10
+ const CategoryPageSizeSchema = Schema.Number.pipe(Schema.finite(), Schema.int(), Schema.greaterThanOrEqualTo(MIN_CATEGORY_PAGE_SIZE), Schema.lessThanOrEqualTo(MAX_CATEGORY_PAGE_SIZE));
11
+ export const CategoryPageFilterInputSchema = Schema.Struct({
12
+ id: FilterSeparatorFreeStringSchema,
13
+ value: FilterSeparatorFreeStringSchema
14
+ });
15
+ export const CategoryPageInputSchema = Schema.Struct({
16
+ categoryId: Schema.optionalWith(NonEmptyTrimmedStringSchema, { exact: true }),
17
+ filters: Schema.optionalWith(Schema.Array(CategoryPageFilterInputSchema), { exact: true }),
18
+ pageSize: CategoryPageSizeSchema,
19
+ pageToken: Schema.optionalWith(NonEmptyTrimmedStringSchema, { exact: true }),
20
+ retailerCategoryId: Schema.optionalWith(NonEmptyTrimmedStringSchema, { exact: true })
21
+ }).pipe(Schema.filter((input) => input.categoryId !== undefined || input.retailerCategoryId !== undefined, { message: () => "Category page input must include categoryId or retailerCategoryId" }));
22
+ export const CategoryPageSummarySchema = Schema.Struct({
23
+ categoryId: NonEmptyTrimmedStringSchema,
24
+ name: Schema.optionalWith(NonEmptyTrimmedStringSchema, { exact: true }),
25
+ retailerCategoryId: NonEmptyTrimmedStringSchema,
26
+ urlPath: Schema.optionalWith(NonEmptyTrimmedStringSchema, { exact: true })
27
+ });
28
+ export const CategoryPageFilterOptionSchema = Schema.Struct({
29
+ count: Schema.optionalWith(NonNegativeIntegerSchema, { exact: true }),
30
+ id: NonEmptyTrimmedStringSchema,
31
+ label: NonEmptyTrimmedStringSchema,
32
+ selected: Schema.optionalWith(Schema.Boolean, { exact: true })
33
+ });
34
+ export const CategoryPageFilterSchema = Schema.Struct({
35
+ id: NonEmptyTrimmedStringSchema,
36
+ label: NonEmptyTrimmedStringSchema,
37
+ options: Schema.Array(CategoryPageFilterOptionSchema)
38
+ });
39
+ export const CategoryProductPageResponseSchema = ProductSearchResponseSchema.pipe(Schema.extend(Schema.Struct({
40
+ category: CategoryPageSummarySchema,
41
+ filters: Schema.optionalWith(Schema.Array(CategoryPageFilterSchema), { exact: true })
42
+ })));
43
+ //# sourceMappingURL=category-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-page.js","sourceRoot":"","sources":["../../../../src/domain/schemas/category-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAA;AAExC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACpD,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;AAED,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,IAAI,CACtE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,kDAAkD;CAClE,CAAC,CACH,CAAA;AAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACjD,MAAM,CAAC,MAAM,EAAE,EACf,MAAM,CAAC,GAAG,EAAE,EACZ,MAAM,CAAC,WAAW,EAAE,CACrB,CAAA;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC/C,MAAM,CAAC,MAAM,EAAE,EACf,MAAM,CAAC,GAAG,EAAE,EACZ,MAAM,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,EACnD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CACjD,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,+BAA+B;CACvC,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1F,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC5E,kBAAkB,EAAE,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACtF,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,CACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EACnF,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mEAAmE,EAAE,CACvF,CACF,CAAA;AAID,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,2BAA2B;IACvC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACvE,kBAAkB,EAAE,2BAA2B;IAC/C,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC3E,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrE,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,2BAA2B;IAClC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC/D,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC;CACtD,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,iCAAiC,GAAG,2BAA2B,CAAC,IAAI,CAC/E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACtF,CAAC,CAAC,CACJ,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { Schema } from "effect";
2
+ interface RawCategoryShape {
3
+ readonly categories?: ReadonlyArray<RawCategory>;
4
+ readonly categoryId: string;
5
+ readonly name: string;
6
+ readonly retailerCategoryId: string;
7
+ readonly urlPath: string;
8
+ }
9
+ export declare const RawCategorySchema: Schema.Schema<RawCategoryShape>;
10
+ export declare const RawCategoryTreeSchema: Schema.Array$<Schema.Schema<RawCategoryShape, RawCategoryShape, never>>;
11
+ export type RawCategory = Schema.Schema.Type<typeof RawCategorySchema>;
12
+ export type RawCategoryTree = Schema.Schema.Type<typeof RawCategoryTreeSchema>;
13
+ interface NormalizedCategoryShape {
14
+ readonly categoryId: string;
15
+ readonly children: ReadonlyArray<NormalizedCategory>;
16
+ readonly fullUrlPath: string;
17
+ readonly name: string;
18
+ readonly retailerCategoryId: string;
19
+ }
20
+ export declare const NormalizedCategorySchema: Schema.Schema<NormalizedCategoryShape>;
21
+ export declare const NormalizedCategoryTreeSchema: Schema.Array$<Schema.Schema<NormalizedCategoryShape, NormalizedCategoryShape, never>>;
22
+ export type NormalizedCategory = Schema.Schema.Type<typeof NormalizedCategorySchema>;
23
+ export type NormalizedCategoryTree = Schema.Schema.Type<typeof NormalizedCategoryTreeSchema>;
24
+ export {};
25
+ //# sourceMappingURL=category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../../../src/domain/schemas/category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAgB/B,UAAU,gBAAgB;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAY7D,CAAA;AAED,eAAO,MAAM,qBAAqB,yEAAkC,CAAA;AAEpE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEtE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE9E,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAa3E,CAAA;AAED,eAAO,MAAM,4BAA4B,uFAAyC,CAAA;AAElF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEpF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { Schema } from "effect";
2
+ const NonEmptyTrimmedStringSchema = Schema.String.pipe(Schema.trimmed(), Schema.minLength(1));
3
+ const RootedUrlPathSchema = NonEmptyTrimmedStringSchema.pipe(Schema.startsWith("/"));
4
+ const normalizedUrlPath = (path) => !path.startsWith("//");
5
+ const distinctCategoryIdentifiers = (category) => category.categoryId !== category.retailerCategoryId;
6
+ export const RawCategorySchema = Schema.Struct({
7
+ categories: Schema.optionalWith(Schema.Array(Schema.suspend(() => RawCategorySchema)), {
8
+ exact: true
9
+ }),
10
+ categoryId: NonEmptyTrimmedStringSchema,
11
+ name: NonEmptyTrimmedStringSchema,
12
+ retailerCategoryId: NonEmptyTrimmedStringSchema,
13
+ urlPath: NonEmptyTrimmedStringSchema
14
+ }).pipe(Schema.filter(distinctCategoryIdentifiers, {
15
+ message: () => "Category ID and retailer category ID must be distinct"
16
+ }));
17
+ export const RawCategoryTreeSchema = Schema.Array(RawCategorySchema);
18
+ export const NormalizedCategorySchema = Schema.Struct({
19
+ categoryId: NonEmptyTrimmedStringSchema,
20
+ children: Schema.Array(Schema.suspend(() => NormalizedCategorySchema)),
21
+ fullUrlPath: RootedUrlPathSchema,
22
+ name: NonEmptyTrimmedStringSchema,
23
+ retailerCategoryId: NonEmptyTrimmedStringSchema
24
+ }).pipe(Schema.filter((category) => normalizedUrlPath(category.fullUrlPath), {
25
+ message: () => "Category full URL path must not start with duplicate slashes"
26
+ }), Schema.filter(distinctCategoryIdentifiers, {
27
+ message: () => "Category ID and retailer category ID must be distinct"
28
+ }));
29
+ export const NormalizedCategoryTreeSchema = Schema.Array(NormalizedCategorySchema);
30
+ //# sourceMappingURL=category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.js","sourceRoot":"","sources":["../../../../src/domain/schemas/category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACpD,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;AAED,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAEpF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAE3E,MAAM,2BAA2B,GAAG,CAAC,QAGpC,EAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,kBAAkB,CAAA;AAUlE,MAAM,CAAC,MAAM,iBAAiB,GAAoC,MAAM,CAAC,MAAM,CAAC;IAC9E,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAA+B,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACjH,KAAK,EAAE,IAAI;KACZ,CAAC;IACF,UAAU,EAAE,2BAA2B;IACvC,IAAI,EAAE,2BAA2B;IACjC,kBAAkB,EAAE,2BAA2B;IAC/C,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,uDAAuD;CACvE,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAcpE,MAAM,CAAC,MAAM,wBAAwB,GAA2C,MAAM,CAAC,MAAM,CAAC;IAC5F,UAAU,EAAE,2BAA2B;IACvC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAsC,EAAE,CAAC,wBAAwB,CAAC,CAAC;IACzG,WAAW,EAAE,mBAAmB;IAChC,IAAI,EAAE,2BAA2B;IACjC,kBAAkB,EAAE,2BAA2B;CAChD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;IACnE,OAAO,EAAE,GAAG,EAAE,CAAC,8DAA8D;CAC9E,CAAC,EACF,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,uDAAuD;CACvE,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA"}