@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,197 @@
1
+ import { Either, Schema } from "effect";
2
+ import { parseUnknown } from "../domain/parse.js";
3
+ import { ActiveShoppingContextInputSchema, ApplyDeliveryContextChangeInputSchema, CartQuantityDeltaSchema, CategoryPageInputSchema, DeliveryContextPreviewInputSchema, DeliveryDestinationByIdInputSchema, DeliveryDestinationsInputSchema, DeliveryPropositionDetailsInputSchema, SearchInputSchema, SetActiveCartPropositionInputSchema, SetActiveDeliveryDestinationInputSchema } from "../domain/schemas/index.js";
4
+ export const VOILA_BASE_URL = "https://voila.ca";
5
+ const SEARCH_PATH = "/api/webproductpagews/v6/product-pages/search";
6
+ const CATEGORY_PRODUCTS_PATH = "/api/webproductpagews/v6/product-pages";
7
+ const CART_APPLY_QUANTITY_PATH = "/api/cart/v1/carts/active/apply-quantity";
8
+ const CART_VIEW_PATH = "/api/cart/v2/carts/active/cart-view";
9
+ const ACTIVE_CUSTOMER_SESSION_PATH = "/api/customersessions/v2/sessions/active";
10
+ const CUSTOMER_SESSION_PROPOSITION_PATH = "/api/customersessions/v2/sessions/proposition";
11
+ const DELIVERY_DESTINATIONS_PATH = "/api/ecomdeliverydestinations/v4/delivery-addresses";
12
+ const DELIVERY_PROPOSITIONS_PATH = "/api/ecomdeliverydestinations/v1/propositions";
13
+ const TAG_WEB = "web";
14
+ const filterSeparator = ":";
15
+ const CartQuantityDeltaArraySchema = Schema.Array(CartQuantityDeltaSchema).pipe(Schema.minItems(1));
16
+ const searchInputInvalid = () => ({
17
+ _tag: "SearchInputInvalid",
18
+ message: "Search input does not match the SDK schema"
19
+ });
20
+ const categoryPageInputInvalid = () => ({
21
+ _tag: "CategoryPageInputInvalid",
22
+ message: "Category page input does not match the SDK schema"
23
+ });
24
+ const cartQuantityInputInvalid = () => ({
25
+ _tag: "CartQuantityInputInvalid",
26
+ message: "Cart quantity request input does not match the SDK schema"
27
+ });
28
+ const deliveryDestinationsInputInvalid = () => ({
29
+ _tag: "DeliveryDestinationsInputInvalid",
30
+ message: "Delivery destinations request input does not match the SDK schema"
31
+ });
32
+ const deliveryDestinationInputInvalid = () => ({
33
+ _tag: "DeliveryDestinationInputInvalid",
34
+ message: "Delivery destination request input does not match the SDK schema"
35
+ });
36
+ const activeShoppingContextInputInvalid = () => ({
37
+ _tag: "ActiveShoppingContextInputInvalid",
38
+ message: "Active shopping context request input does not match the SDK schema"
39
+ });
40
+ const deliveryPropositionDetailsInputInvalid = () => ({
41
+ _tag: "DeliveryPropositionDetailsInputInvalid",
42
+ message: "Delivery proposition details request input does not match the SDK schema"
43
+ });
44
+ const deliveryContextPreviewInputInvalid = () => ({
45
+ _tag: "DeliveryContextPreviewInputInvalid",
46
+ message: "Delivery context preview request input does not match the SDK schema"
47
+ });
48
+ const setActiveDeliveryDestinationInputInvalid = () => ({
49
+ _tag: "SetActiveDeliveryDestinationInputInvalid",
50
+ message: "Set active delivery destination request input does not match the SDK schema"
51
+ });
52
+ const setActiveCartPropositionInputInvalid = () => ({
53
+ _tag: "SetActiveCartPropositionInputInvalid",
54
+ message: "Set active cart proposition request input does not match the SDK schema"
55
+ });
56
+ const applyDeliveryContextChangeInputInvalid = () => ({
57
+ _tag: "ApplyDeliveryContextChangeInputInvalid",
58
+ message: "Apply delivery context change input does not match the SDK schema"
59
+ });
60
+ const addProductPageParameters = (url, input) => {
61
+ url.searchParams.set("tag", TAG_WEB);
62
+ url.searchParams.set("includeAdditionalPageInfo", "true");
63
+ url.searchParams.set("maxProductsToDecorate", String(input.pageSize));
64
+ url.searchParams.set("maxPageSize", String(input.pageSize));
65
+ if (input.pageToken !== undefined) {
66
+ url.searchParams.set("pageToken", input.pageToken);
67
+ }
68
+ return url;
69
+ };
70
+ const buildSearchUrl = (input) => {
71
+ const url = addProductPageParameters(new URL(SEARCH_PATH, VOILA_BASE_URL), input);
72
+ url.searchParams.set("q", input.query);
73
+ if (input.categoryContext !== undefined && "categoryId" in input.categoryContext) {
74
+ url.searchParams.set("categoryId", input.categoryContext.categoryId);
75
+ }
76
+ if (input.categoryContext !== undefined && "retailerCategoryId" in input.categoryContext) {
77
+ url.searchParams.set("retailerCategoryId", input.categoryContext.retailerCategoryId);
78
+ }
79
+ return url;
80
+ };
81
+ const addCategoryProductParameters = (url, input) => {
82
+ addProductPageParameters(url, input);
83
+ if (input.categoryId !== undefined) {
84
+ url.searchParams.set("categoryId", input.categoryId);
85
+ }
86
+ if (input.retailerCategoryId !== undefined) {
87
+ url.searchParams.set("retailerCategoryId", input.retailerCategoryId);
88
+ }
89
+ for (const filter of input.filters ?? []) {
90
+ url.searchParams.append("filter", `${filter.id}${filterSeparator}${filter.value}`);
91
+ }
92
+ return url;
93
+ };
94
+ const buildDeliveryDestinationsUrl = (input) => {
95
+ const url = new URL(DELIVERY_DESTINATIONS_PATH, VOILA_BASE_URL);
96
+ url.searchParams.set("deliveryMethod", input.deliveryMethod);
97
+ return url;
98
+ };
99
+ const buildActiveShoppingContextUrl = (input) => {
100
+ const url = new URL(ACTIVE_CUSTOMER_SESSION_PATH, VOILA_BASE_URL);
101
+ if (input.regionId !== undefined) {
102
+ url.searchParams.set("regionId", input.regionId);
103
+ }
104
+ return url;
105
+ };
106
+ const buildDeliveryPropositionDetailsUrl = (input) => {
107
+ const url = new URL(DELIVERY_PROPOSITIONS_PATH, VOILA_BASE_URL);
108
+ url.searchParams.set("regionId", input.regionId);
109
+ url.searchParams.set("deliveryDestinationId", input.deliveryDestinationId);
110
+ return url;
111
+ };
112
+ const makeAccountContextHeaders = (input) => {
113
+ const headers = {
114
+ ...(input.visitorId === undefined ? {} : { "visitor-id": input.visitorId }),
115
+ ...(input.customerId === undefined ? {} : { "customer-id": input.customerId })
116
+ };
117
+ return Object.keys(headers).length === 0 ? undefined : headers;
118
+ };
119
+ export const makeSearchRequest = (input) => Either.map(Either.mapLeft(parseUnknown(SearchInputSchema, input), searchInputInvalid), (searchInput) => ({
120
+ method: "GET",
121
+ url: buildSearchUrl(searchInput)
122
+ }));
123
+ export const makeCategoryProductsRequest = (input) => Either.map(Either.mapLeft(parseUnknown(CategoryPageInputSchema, input), categoryPageInputInvalid), (categoryPageInput) => ({
124
+ method: "GET",
125
+ url: addCategoryProductParameters(new URL(CATEGORY_PRODUCTS_PATH, VOILA_BASE_URL), categoryPageInput)
126
+ }));
127
+ export const makeCartViewRequest = () => ({
128
+ method: "GET",
129
+ url: new URL(CART_VIEW_PATH, VOILA_BASE_URL)
130
+ });
131
+ export const makeActiveCustomerSessionRequest = () => ({
132
+ method: "GET",
133
+ url: new URL(ACTIVE_CUSTOMER_SESSION_PATH, VOILA_BASE_URL)
134
+ });
135
+ export const makeActiveShoppingContextRequest = (input = {}) => Either.map(Either.mapLeft(parseUnknown(ActiveShoppingContextInputSchema, input), activeShoppingContextInputInvalid), (activeShoppingContextInput) => ({
136
+ method: "GET",
137
+ url: buildActiveShoppingContextUrl(activeShoppingContextInput)
138
+ }));
139
+ export const makeDeliveryDestinationsRequest = (input = {}) => Either.map(Either.mapLeft(parseUnknown(DeliveryDestinationsInputSchema, input), deliveryDestinationsInputInvalid), (deliveryDestinationsInput) => ({
140
+ method: "GET",
141
+ url: buildDeliveryDestinationsUrl(deliveryDestinationsInput)
142
+ }));
143
+ export const makeDeliveryDestinationRequest = (input) => Either.map(Either.mapLeft(parseUnknown(DeliveryDestinationByIdInputSchema, input), deliveryDestinationInputInvalid), ({ deliveryDestinationId }) => ({
144
+ method: "GET",
145
+ url: new URL(`${DELIVERY_DESTINATIONS_PATH}/${encodeURIComponent(deliveryDestinationId)}`, VOILA_BASE_URL)
146
+ }));
147
+ export const makeDeliveryPropositionDetailsRequest = (input) => Either.map(Either.mapLeft(parseUnknown(DeliveryPropositionDetailsInputSchema, input), deliveryPropositionDetailsInputInvalid), (deliveryPropositionDetailsInput) => ({
148
+ method: "GET",
149
+ url: buildDeliveryPropositionDetailsUrl(deliveryPropositionDetailsInput)
150
+ }));
151
+ export const makeDeliveryContextPreviewRequest = (input) => Either.map(Either.mapLeft(parseUnknown(DeliveryContextPreviewInputSchema, input), deliveryContextPreviewInputInvalid), (previewInput) => ({
152
+ body: JSON.stringify({
153
+ deliveryDestinationId: previewInput.deliveryDestinationId,
154
+ destinationRegionId: previewInput.destinationRegionId
155
+ }),
156
+ method: "POST",
157
+ url: new URL(CUSTOMER_SESSION_PROPOSITION_PATH, VOILA_BASE_URL)
158
+ }));
159
+ export const makeSetActiveDeliveryDestinationRequest = (input) => Either.map(Either.mapLeft(parseUnknown(SetActiveDeliveryDestinationInputSchema, input), setActiveDeliveryDestinationInputInvalid), (setInput) => {
160
+ const headers = makeAccountContextHeaders(setInput);
161
+ return {
162
+ body: JSON.stringify({
163
+ deliveryDestinationId: setInput.deliveryDestinationId,
164
+ regionId: setInput.regionId
165
+ }),
166
+ ...(headers === undefined ? {} : { headers }),
167
+ method: "PUT",
168
+ url: new URL(ACTIVE_CUSTOMER_SESSION_PATH, VOILA_BASE_URL)
169
+ };
170
+ });
171
+ export const makeSetActiveCartPropositionRequest = (input) => Either.map(Either.mapLeft(parseUnknown(SetActiveCartPropositionInputSchema, input), setActiveCartPropositionInputInvalid), (setInput) => {
172
+ const headers = makeAccountContextHeaders(setInput);
173
+ return {
174
+ body: JSON.stringify({
175
+ destinationCartPropositionId: setInput.destinationCartPropositionId,
176
+ originCartPropositionId: setInput.originCartPropositionId
177
+ }),
178
+ ...(headers === undefined ? {} : { headers }),
179
+ method: "POST",
180
+ url: new URL(ACTIVE_CUSTOMER_SESSION_PATH, VOILA_BASE_URL)
181
+ };
182
+ });
183
+ export const parseApplyDeliveryContextChangeInput = (input) => Either.mapLeft(parseUnknown(ApplyDeliveryContextChangeInputSchema, input), applyDeliveryContextChangeInputInvalid);
184
+ export const makeApplyQuantityRequest = (deltas) => {
185
+ const parsedDeltas = Either.mapLeft(parseUnknown(CartQuantityDeltaArraySchema, deltas), cartQuantityInputInvalid);
186
+ if (Either.isLeft(parsedDeltas)) {
187
+ return Either.left(parsedDeltas.left);
188
+ }
189
+ const url = new URL(CART_APPLY_QUANTITY_PATH, VOILA_BASE_URL);
190
+ url.searchParams.set("cartProductSorting", "CATEGORIES");
191
+ return Either.right({
192
+ body: JSON.stringify(parsedDeltas.right),
193
+ method: "POST",
194
+ url
195
+ });
196
+ };
197
+ //# sourceMappingURL=urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/voila/urls.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@firfi/voila-sdk",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript SDK for Voila grocery search, sessions, and cart workflows",
5
+ "type": "module",
6
+ "main": "./dist/src/index.js",
7
+ "types": "./dist/src/index.d.ts",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/src/index.d.ts",
12
+ "import": "./dist/src/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist/src"
17
+ ],
18
+ "keywords": [
19
+ "voila",
20
+ "groceries",
21
+ "sdk",
22
+ "effect",
23
+ "typescript"
24
+ ],
25
+ "author": "firfi",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+ssh://git@github.com/dearlordylord/voila-sdk.git"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/dearlordylord/voila-sdk/issues"
33
+ },
34
+ "homepage": "https://github.com/dearlordylord/voila-sdk#readme",
35
+ "engines": {
36
+ "node": ">=20"
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "dependencies": {
42
+ "effect": "^3.19.15",
43
+ "tough-cookie": "^6.0.0"
44
+ },
45
+ "scripts": {
46
+ "build": "tsc -p tsconfig.json",
47
+ "typecheck": "tsc -p tsconfig.json --noEmit",
48
+ "test": "vitest run --config ../../vitest.config.ts",
49
+ "test:coverage": "vitest run --coverage --config ../../vitest.config.ts",
50
+ "test:watch": "vitest --config ../../vitest.config.ts",
51
+ "smoke:catalog-search": "tsx test/live/catalog-search.smoke.ts",
52
+ "smoke:cart": "tsx test/live/cart.smoke.ts",
53
+ "smoke:auth-readonly": "tsx test/live/auth-readonly.smoke.ts",
54
+ "auth:capture": "bash ../../scripts/host-auth-capture.sh",
55
+ "drift:audit": "tsx test/live/drift-audit.smoke.ts",
56
+ "fixtures:audit": "node ../../scripts/audit-fixtures.mjs test/fixtures",
57
+ "lint": "find src test -name '*.ts' -print0 | xargs -0 eslint && jscpd src",
58
+ "lint:fix": "find src test -name '*.ts' -print0 | xargs -0 eslint --fix",
59
+ "format": "find src test -name '*.ts' -print0 | xargs -0 eslint --fix --rule '@effect/dprint: error'",
60
+ "check-format": "find src test -name '*.ts' -print0 | xargs -0 eslint --rule '@effect/dprint: error'",
61
+ "circular": "madge --extensions ts --circular src",
62
+ "package:audit": "pnpm build && node ../../scripts/audit-package.mjs . sdk",
63
+ "release:check": "pnpm check-all && pnpm package:audit",
64
+ "check-all": "pnpm build && pnpm typecheck && pnpm circular && pnpm lint && pnpm fixtures:audit && pnpm test:coverage"
65
+ }
66
+ }