arky-sdk 0.1.0 → 0.1.1

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 (104) hide show
  1. package/dist/config-CPkOgumU.d.cts +16 -0
  2. package/dist/config-CPkOgumU.d.ts +16 -0
  3. package/dist/index.cjs +1517 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +268 -0
  6. package/dist/index.d.ts +268 -26
  7. package/dist/index.js +1457 -56
  8. package/dist/index.js.map +1 -0
  9. package/dist/stores.cjs +2148 -0
  10. package/dist/stores.cjs.map +1 -0
  11. package/dist/stores.d.cts +218 -0
  12. package/dist/stores.d.ts +218 -0
  13. package/dist/stores.js +2111 -0
  14. package/dist/stores.js.map +1 -0
  15. package/dist/types.cjs +13 -0
  16. package/dist/types.cjs.map +1 -0
  17. package/dist/{types/index.d.ts → types.d.cts} +25 -24
  18. package/dist/types.d.ts +245 -0
  19. package/dist/types.js +11 -0
  20. package/dist/types.js.map +1 -0
  21. package/dist/utils.cjs +725 -0
  22. package/dist/utils.cjs.map +1 -0
  23. package/dist/utils.d.cts +9 -0
  24. package/dist/utils.d.ts +9 -0
  25. package/dist/utils.js +680 -0
  26. package/dist/utils.js.map +1 -0
  27. package/dist/validation-C9UAYKke.d.cts +245 -0
  28. package/dist/validation-DIvAzYjG.d.ts +245 -0
  29. package/package.json +17 -11
  30. package/dist/api/cms.d.ts +0 -19
  31. package/dist/api/cms.d.ts.map +0 -1
  32. package/dist/api/cms.js +0 -41
  33. package/dist/api/eshop.d.ts +0 -89
  34. package/dist/api/eshop.d.ts.map +0 -1
  35. package/dist/api/eshop.js +0 -183
  36. package/dist/api/index.d.ts +0 -6
  37. package/dist/api/index.d.ts.map +0 -1
  38. package/dist/api/index.js +0 -5
  39. package/dist/api/newsletter.d.ts +0 -32
  40. package/dist/api/newsletter.d.ts.map +0 -1
  41. package/dist/api/newsletter.js +0 -70
  42. package/dist/api/reservation.d.ts +0 -84
  43. package/dist/api/reservation.d.ts.map +0 -1
  44. package/dist/api/reservation.js +0 -239
  45. package/dist/config.d.ts +0 -15
  46. package/dist/config.d.ts.map +0 -1
  47. package/dist/config.js +0 -20
  48. package/dist/index.d.ts.map +0 -1
  49. package/dist/services/auth.d.ts +0 -17
  50. package/dist/services/auth.d.ts.map +0 -1
  51. package/dist/services/auth.js +0 -62
  52. package/dist/services/http.d.ts +0 -20
  53. package/dist/services/http.d.ts.map +0 -1
  54. package/dist/services/http.js +0 -73
  55. package/dist/stores/business.d.ts +0 -28
  56. package/dist/stores/business.d.ts.map +0 -1
  57. package/dist/stores/business.js +0 -122
  58. package/dist/stores/cart.d.ts +0 -8
  59. package/dist/stores/cart.d.ts.map +0 -1
  60. package/dist/stores/cart.js +0 -20
  61. package/dist/stores/eshop.d.ts +0 -121
  62. package/dist/stores/eshop.d.ts.map +0 -1
  63. package/dist/stores/eshop.js +0 -377
  64. package/dist/stores/index.d.ts +0 -7
  65. package/dist/stores/index.d.ts.map +0 -1
  66. package/dist/stores/index.js +0 -19
  67. package/dist/stores/reservation.d.ts +0 -237
  68. package/dist/stores/reservation.d.ts.map +0 -1
  69. package/dist/stores/reservation.js +0 -853
  70. package/dist/types/index.d.ts.map +0 -1
  71. package/dist/types/index.js +0 -8
  72. package/dist/utils/blocks.d.ts +0 -30
  73. package/dist/utils/blocks.d.ts.map +0 -1
  74. package/dist/utils/blocks.js +0 -237
  75. package/dist/utils/currency.d.ts +0 -9
  76. package/dist/utils/currency.d.ts.map +0 -1
  77. package/dist/utils/currency.js +0 -99
  78. package/dist/utils/errors.d.ts +0 -121
  79. package/dist/utils/errors.d.ts.map +0 -1
  80. package/dist/utils/errors.js +0 -114
  81. package/dist/utils/i18n.d.ts +0 -5
  82. package/dist/utils/i18n.d.ts.map +0 -1
  83. package/dist/utils/i18n.js +0 -37
  84. package/dist/utils/index.d.ts +0 -9
  85. package/dist/utils/index.d.ts.map +0 -1
  86. package/dist/utils/index.js +0 -10
  87. package/dist/utils/price.d.ts +0 -33
  88. package/dist/utils/price.d.ts.map +0 -1
  89. package/dist/utils/price.js +0 -141
  90. package/dist/utils/queryParams.d.ts +0 -21
  91. package/dist/utils/queryParams.d.ts.map +0 -1
  92. package/dist/utils/queryParams.js +0 -47
  93. package/dist/utils/svg.d.ts +0 -17
  94. package/dist/utils/svg.d.ts.map +0 -1
  95. package/dist/utils/svg.js +0 -62
  96. package/dist/utils/text.d.ts +0 -26
  97. package/dist/utils/text.d.ts.map +0 -1
  98. package/dist/utils/text.js +0 -64
  99. package/dist/utils/timezone.d.ts +0 -9
  100. package/dist/utils/timezone.d.ts.map +0 -1
  101. package/dist/utils/timezone.js +0 -49
  102. package/dist/utils/validation.d.ts +0 -9
  103. package/dist/utils/validation.d.ts.map +0 -1
  104. package/dist/utils/validation.js +0 -44
package/package.json CHANGED
@@ -1,26 +1,31 @@
1
1
  {
2
2
  "name": "arky-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Official TypeScript SDK for Arky - All-in-one business platform",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
7
8
  "types": "./dist/index.d.ts",
8
9
  "exports": {
9
10
  ".": {
10
11
  "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
12
14
  },
13
15
  "./stores": {
14
- "types": "./dist/stores/index.d.ts",
15
- "import": "./dist/stores/index.js"
16
+ "types": "./dist/stores.d.ts",
17
+ "import": "./dist/stores.js",
18
+ "require": "./dist/stores.cjs"
16
19
  },
17
20
  "./utils": {
18
- "types": "./dist/utils/index.d.ts",
19
- "import": "./dist/utils/index.js"
21
+ "types": "./dist/utils.d.ts",
22
+ "import": "./dist/utils.js",
23
+ "require": "./dist/utils.cjs"
20
24
  },
21
25
  "./types": {
22
- "types": "./dist/types/index.d.ts",
23
- "import": "./dist/types/index.js"
26
+ "types": "./dist/types.d.ts",
27
+ "import": "./dist/types.js",
28
+ "require": "./dist/types.cjs"
24
29
  }
25
30
  },
26
31
  "files": [
@@ -28,8 +33,8 @@
28
33
  "README.md"
29
34
  ],
30
35
  "scripts": {
31
- "build": "tsc",
32
- "dev": "tsc --watch",
36
+ "build": "tsup",
37
+ "dev": "tsup --watch",
33
38
  "clean": "rm -rf dist"
34
39
  },
35
40
  "keywords": [
@@ -53,6 +58,7 @@
53
58
  "nanostores": "^1.0.1"
54
59
  },
55
60
  "devDependencies": {
61
+ "tsup": "^8.5.0",
56
62
  "typescript": "^5.8.3"
57
63
  }
58
64
  }
package/dist/api/cms.d.ts DELETED
@@ -1,19 +0,0 @@
1
- export declare const cmsApi: {
2
- getCollection: (id: string) => Promise<any>;
3
- getCollections: ({ name, ids }: {
4
- name?: string | null;
5
- ids?: string[] | null;
6
- }) => Promise<any>;
7
- getCollectionEntries: ({ collectionId, limit, cursor, ids }: {
8
- collectionId: string;
9
- limit?: number;
10
- cursor?: string;
11
- ids?: string[] | null;
12
- }) => Promise<any>;
13
- getCollectionEntry: ({ collectionId, id }: {
14
- collectionId: string;
15
- id: string;
16
- }) => Promise<import("../services/http").HttpResponse<any>>;
17
- createCollectionEntry: (collectionEntryData: any) => Promise<import("../services/http").HttpResponse<any>>;
18
- };
19
- //# sourceMappingURL=cms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/api/cms.ts"],"names":[],"mappings":"AAyDA,eAAO,MAAM,MAAM;wBArDc,MAAM;oCAMoB;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE;iEAcvG;QACC,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACzB;+CAoBuD;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;iDAXlC,GAAG;CAyB5D,CAAC"}
package/dist/api/cms.js DELETED
@@ -1,41 +0,0 @@
1
- import { API_URL, BUSINESS_ID } from '../config';
2
- import httpClient from '../services/http';
3
- const getCollection = async (id) => {
4
- const url = `${API_URL}/v1/businesses/${BUSINESS_ID}/collections/${id}`;
5
- const { value } = await httpClient.get(url);
6
- return value;
7
- };
8
- const getCollections = async ({ name = null, ids = null }) => {
9
- const url = `${API_URL}/v1/businesses/${BUSINESS_ID}/collections`;
10
- const response = await httpClient.get(url, {
11
- params: { name, ids }
12
- });
13
- return response.value;
14
- };
15
- const getCollectionEntries = async ({ collectionId, limit, cursor, ids = null }) => {
16
- const url = `${API_URL}/v1/businesses/${BUSINESS_ID}/collections/${collectionId}/entries`;
17
- const response = await httpClient.get(url, {
18
- params: { limit, cursor, ids }
19
- });
20
- return response.value;
21
- };
22
- const createCollectionEntry = async (collectionEntryData) => {
23
- const url = `${API_URL}/v1/businesses/${BUSINESS_ID}/collections/${collectionEntryData.collectionId}/entries`;
24
- const result = await httpClient.post(url, collectionEntryData, {
25
- successMessage: "Created successfully",
26
- errorMessage: "Failed to create collection",
27
- });
28
- return result;
29
- };
30
- const getCollectionEntry = async ({ collectionId, id }) => {
31
- const url = `${API_URL}/v1/businesses/${BUSINESS_ID}/collections/${collectionId}/entries/${id}`;
32
- const response = await httpClient.get(url);
33
- return response;
34
- };
35
- export const cmsApi = {
36
- getCollection,
37
- getCollections,
38
- getCollectionEntries,
39
- getCollectionEntry,
40
- createCollectionEntry,
41
- };
@@ -1,89 +0,0 @@
1
- import type { ApiResponse, Quote } from '../types';
2
- export declare const eshopApi: {
3
- getProducts({ businessId, categoryIds, status, limit, cursor }: {
4
- businessId: string;
5
- categoryIds?: string[] | null;
6
- status?: string;
7
- limit?: number;
8
- cursor?: string | null;
9
- }): Promise<{
10
- success: boolean;
11
- data: any;
12
- cursor: any;
13
- total: any;
14
- error?: undefined;
15
- } | {
16
- success: boolean;
17
- error: string;
18
- data: any[];
19
- cursor?: undefined;
20
- total?: undefined;
21
- }>;
22
- getProductBySlug({ businessId, slug }: {
23
- businessId: string;
24
- slug: string;
25
- }): Promise<{
26
- success: boolean;
27
- data: any;
28
- error?: undefined;
29
- } | {
30
- success: boolean;
31
- error: any;
32
- data: any;
33
- }>;
34
- getQuote({ token, businessId, items, market, currency, userId, paymentMethod, shippingMethodId, promoCode }: {
35
- token: string;
36
- businessId: string;
37
- items: {
38
- productId: string;
39
- variantId: string;
40
- quantity: number;
41
- }[];
42
- market: string;
43
- currency: string;
44
- userId: string;
45
- paymentMethod: string;
46
- shippingMethodId?: string;
47
- promoCode?: string;
48
- }): Promise<ApiResponse<Quote>>;
49
- checkout({ token, businessId, items, paymentMethod, blocks, market, shippingMethodId, promoCode, paymentIntentId }: {
50
- token: string;
51
- businessId: string;
52
- items: any[];
53
- paymentMethod: string;
54
- blocks: any[];
55
- market?: string;
56
- shippingMethodId?: string;
57
- promoCode?: string;
58
- paymentIntentId?: string | null;
59
- }): Promise<{
60
- success: boolean;
61
- error: any;
62
- code: any;
63
- data?: undefined;
64
- } | {
65
- success: boolean;
66
- data: any;
67
- error?: undefined;
68
- code?: undefined;
69
- } | {
70
- success: boolean;
71
- error: any;
72
- code?: undefined;
73
- data?: undefined;
74
- }>;
75
- createPaymentIntent({ amount, currency, businessId }: {
76
- amount: number;
77
- currency: string;
78
- businessId: string;
79
- }): Promise<{
80
- success: boolean;
81
- data: any;
82
- error?: undefined;
83
- } | {
84
- success: boolean;
85
- error: any;
86
- data?: undefined;
87
- }>;
88
- };
89
- //# sourceMappingURL=eshop.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eshop.d.ts","sourceRoot":"","sources":["../../src/api/eshop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAW,KAAK,EAAE,MAAM,UAAU,CAAC;AAI5D,eAAO,MAAM,QAAQ;oEAQd;QACC,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B;;;;;;;;;;;;;2CA+B4C;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;;;iHA+B9E;QACC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACpE,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wHA6D5B;QACC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC;;;;;;;;;;;;;;;;0DA2C2D;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;;;;;;;;;CAuCvH,CAAC"}
package/dist/api/eshop.js DELETED
@@ -1,183 +0,0 @@
1
- import { API_URL } from '../config';
2
- import { reservationApi } from './reservation';
3
- import httpClient from '../services/http';
4
- export const eshopApi = {
5
- // Get products
6
- async getProducts({ businessId, categoryIds = null, status = "ACTIVE", limit = 20, cursor = null }) {
7
- const url = `${API_URL}/v1/businesses/${encodeURIComponent(businessId)}/products`;
8
- const response = await httpClient.get(url, {
9
- params: {
10
- categoryIds: categoryIds && categoryIds.length > 0 ? categoryIds : undefined,
11
- status,
12
- limit,
13
- cursor
14
- }
15
- });
16
- if (response.success) {
17
- const json = response.value;
18
- return {
19
- success: true,
20
- data: json.items || [],
21
- cursor: json.cursor,
22
- total: json.total || 0,
23
- };
24
- }
25
- else {
26
- console.error("Error fetching products:", response.error);
27
- return {
28
- success: false,
29
- error: response.error,
30
- data: [],
31
- };
32
- }
33
- },
34
- // Get product by slug
35
- async getProductBySlug({ businessId, slug }) {
36
- try {
37
- const url = `${API_URL}/v1/businesses/${encodeURIComponent(businessId)}/products/slug/${encodeURIComponent(businessId)}/${encodeURIComponent(slug)}`;
38
- const res = await fetch(url);
39
- if (!res.ok)
40
- throw new Error("Product not found");
41
- const json = await res.json();
42
- return {
43
- success: true,
44
- data: json,
45
- };
46
- }
47
- catch (e) {
48
- console.error("Error fetching product:", e);
49
- return {
50
- success: false,
51
- error: e.message,
52
- data: null,
53
- };
54
- }
55
- },
56
- // Get quote for cart (pricing with promo codes, shipping, taxes)
57
- async getQuote({ token, businessId, items, market, currency, userId, paymentMethod, shippingMethodId, promoCode }) {
58
- try {
59
- const lines = items.map(item => ({
60
- type: 'PRODUCT_VARIANT',
61
- productId: item.productId,
62
- variantId: item.variantId,
63
- quantity: item.quantity
64
- }));
65
- const payload = {
66
- businessId,
67
- market,
68
- currency,
69
- userId,
70
- paymentMethod,
71
- lines,
72
- ...(shippingMethodId && { shippingMethodId }),
73
- ...(promoCode && { promoCode })
74
- };
75
- const res = await fetch(`${API_URL}/v1/payments/quote`, {
76
- method: "POST",
77
- headers: {
78
- "Content-Type": "application/json",
79
- Authorization: `Bearer ${token}`,
80
- },
81
- body: JSON.stringify(payload),
82
- });
83
- const text = await res.text();
84
- if (!res.ok) {
85
- try {
86
- const json = JSON.parse(text);
87
- return { success: false, error: json.reason || json.error || res.statusText, code: json.code };
88
- }
89
- catch {
90
- return { success: false, error: text || res.statusText };
91
- }
92
- }
93
- const quote = text ? JSON.parse(text) : null;
94
- return { success: true, data: quote };
95
- }
96
- catch (e) {
97
- console.error('Quote fetch failed:', e);
98
- return {
99
- success: false,
100
- error: e.message,
101
- };
102
- }
103
- },
104
- // Checkout - Backend calculates currency from market
105
- async checkout({ token, businessId, items, paymentMethod, blocks, market = "US", shippingMethodId, promoCode, paymentIntentId = null }) {
106
- try {
107
- const payload = {
108
- businessId,
109
- items,
110
- paymentMethod,
111
- blocks,
112
- market,
113
- ...(shippingMethodId && { shippingMethodId }),
114
- ...(promoCode && { promoCode }),
115
- ...(paymentIntentId && { paymentIntentId }),
116
- };
117
- const res = await fetch(`${API_URL}/v1/businesses/${encodeURIComponent(businessId)}/orders/checkout`, {
118
- method: "POST",
119
- headers: {
120
- "Content-Type": "application/json",
121
- Authorization: `Bearer ${token}`,
122
- },
123
- body: JSON.stringify(payload),
124
- });
125
- const text = await res.text();
126
- if (!res.ok) {
127
- try {
128
- const json = JSON.parse(text);
129
- return { success: false, error: json.reason || json.error || res.statusText, code: json.code };
130
- }
131
- catch {
132
- return { success: false, error: text || res.statusText };
133
- }
134
- }
135
- const json = text ? JSON.parse(text) : null;
136
- return { success: true, data: json };
137
- }
138
- catch (e) {
139
- return {
140
- success: false,
141
- error: e.message,
142
- };
143
- }
144
- },
145
- // Create payment intent for Stripe
146
- async createPaymentIntent({ amount, currency, businessId }) {
147
- try {
148
- const tokenResponse = await reservationApi.getGuestToken();
149
- if (!tokenResponse.success || !tokenResponse.data) {
150
- throw new Error('Failed to get guest token');
151
- }
152
- const token = tokenResponse.data.token;
153
- const res = await fetch(`${API_URL}/v1/businesses/${encodeURIComponent(businessId)}/payment/create-intent`, {
154
- method: "POST",
155
- headers: {
156
- "Content-Type": "application/json",
157
- Authorization: `Bearer ${token}`,
158
- },
159
- body: JSON.stringify({
160
- amount,
161
- currency,
162
- businessId,
163
- }),
164
- });
165
- if (!res.ok) {
166
- const error = (await res.text()) || res.statusText;
167
- throw new Error(error);
168
- }
169
- const json = await res.json();
170
- return {
171
- success: true,
172
- data: json,
173
- };
174
- }
175
- catch (e) {
176
- console.error('Payment intent creation failed:', e);
177
- return {
178
- success: false,
179
- error: e.message,
180
- };
181
- }
182
- },
183
- };
@@ -1,6 +0,0 @@
1
- export { cmsApi } from "./cms";
2
- export { eshopApi } from "./eshop";
3
- export { reservationApi } from "./reservation";
4
- export { newsletterApi } from "./newsletter";
5
- export type { ApiResponse, Newsletter, PaginatedResponse } from "../types/index";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/api/index.js DELETED
@@ -1,5 +0,0 @@
1
- // Main API exports
2
- export { cmsApi } from "./cms";
3
- export { eshopApi } from "./eshop";
4
- export { reservationApi } from "./reservation";
5
- export { newsletterApi } from "./newsletter";
@@ -1,32 +0,0 @@
1
- import type { Newsletter, PaginatedResponse, Payment } from '../types';
2
- export interface NewsletterFindPayload {
3
- business_id: string;
4
- }
5
- export interface NewsletterResponse {
6
- data: Newsletter[];
7
- meta?: {
8
- total: number;
9
- page: number;
10
- per_page: number;
11
- };
12
- }
13
- export interface NewsletterSubscribePayload {
14
- newsletterId: string;
15
- email: string;
16
- customerId?: string;
17
- payment?: Payment;
18
- }
19
- export declare const newsletterApi: {
20
- find(payload: NewsletterFindPayload): Promise<PaginatedResponse<Newsletter>>;
21
- get(id: string): Promise<Newsletter>;
22
- subscribe(payload: NewsletterSubscribePayload): Promise<{
23
- success: boolean;
24
- data: any;
25
- error?: undefined;
26
- } | {
27
- success: boolean;
28
- error: string;
29
- data?: undefined;
30
- }>;
31
- };
32
- //# sourceMappingURL=newsletter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newsletter.d.ts","sourceRoot":"","sources":["../../src/api/newsletter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;CACF;AAED,MAAM,WAAW,0BAA0B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,aAAa;kBACL,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YA4BpE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;uBAejB,0BAA0B;;;;;;;;;CAsCnD,CAAC"}
@@ -1,70 +0,0 @@
1
- export const newsletterApi = {
2
- async find(payload) {
3
- const params = new URLSearchParams({
4
- businessId: payload.business_id,
5
- });
6
- // Get the backend API URL from config
7
- const { API_URL } = await import('../config');
8
- const url = `${API_URL}/v1/newsletters?${params.toString()}`;
9
- const response = await fetch(url);
10
- if (!response.ok) {
11
- throw new Error(`HTTP error! status: ${response.status}`);
12
- }
13
- const backendResponse = await response.json();
14
- // Backend returns {items: [], cursor: null}, we need {data: [], meta: {...}}
15
- return {
16
- data: backendResponse.items || [],
17
- meta: {
18
- total: backendResponse.items?.length || 0,
19
- page: 1,
20
- per_page: backendResponse.items?.length || 0,
21
- }
22
- };
23
- },
24
- async get(id) {
25
- // Get the backend API URL from config
26
- const { API_URL } = await import('../config');
27
- const url = `${API_URL}/v1/newsletters/${id}`;
28
- const response = await fetch(url);
29
- if (!response.ok) {
30
- throw new Error(`HTTP error! status: ${response.status}`);
31
- }
32
- return await response.json();
33
- },
34
- async subscribe(payload) {
35
- try {
36
- // Get the backend API URL from config
37
- const { API_URL } = await import('../config');
38
- const url = `${API_URL}/v1/newsletters/${payload.newsletterId}/subscribe`;
39
- const response = await fetch(url, {
40
- method: 'POST',
41
- headers: {
42
- 'Content-Type': 'application/json',
43
- },
44
- body: JSON.stringify({
45
- newsletterId: payload.newsletterId,
46
- email: payload.email,
47
- market: "US", // Backend resolves currency from market
48
- ...(payload.customerId && { customerId: payload.customerId }),
49
- ...(payload.payment && { payment: payload.payment }),
50
- }),
51
- });
52
- if (!response.ok) {
53
- const errorData = await response.json().catch(() => ({}));
54
- throw new Error(errorData.message || `HTTP error! status: ${response.status}`);
55
- }
56
- const data = await response.json();
57
- return {
58
- success: true,
59
- data,
60
- };
61
- }
62
- catch (error) {
63
- console.error('Newsletter subscription error:', error);
64
- return {
65
- success: false,
66
- error: error instanceof Error ? error.message : 'Failed to subscribe to newsletter',
67
- };
68
- }
69
- },
70
- };
@@ -1,84 +0,0 @@
1
- import type { ApiResponse, Quote } from '../types';
2
- export declare const reservationApi: {
3
- getQuote({ token, businessId, market, currency, userId, parts, paymentMethod, promoCode, }: {
4
- token: string;
5
- businessId: string;
6
- market: string;
7
- currency: string;
8
- userId: string;
9
- parts: any[];
10
- paymentMethod?: string;
11
- promoCode?: string;
12
- }): Promise<ApiResponse<Quote>>;
13
- getAvailableSlots({ businessId, serviceId, from, to, limit, providerId, }: {
14
- businessId: string;
15
- serviceId: string;
16
- from: number;
17
- to: number;
18
- limit?: number;
19
- providerId?: string | null;
20
- }): Promise<{
21
- success: boolean;
22
- data: any;
23
- error?: undefined;
24
- } | {
25
- success: boolean;
26
- error: string;
27
- data: any[];
28
- }>;
29
- getProviders({ businessId, serviceId, limit }: {
30
- businessId: string;
31
- serviceId: string;
32
- limit?: number;
33
- }): Promise<{
34
- success: boolean;
35
- data: any;
36
- error?: undefined;
37
- } | {
38
- success: boolean;
39
- error: string;
40
- data: any[];
41
- }>;
42
- getGuestToken(): Promise<ApiResponse<{
43
- token: string;
44
- }>>;
45
- updateProfilePhone({ token, phoneNumber }: {
46
- token: string;
47
- phoneNumber: string;
48
- }): Promise<{
49
- success: boolean;
50
- error?: undefined;
51
- } | {
52
- success: boolean;
53
- error: any;
54
- }>;
55
- verifyPhoneCode({ token, phoneNumber, code }: {
56
- token: string;
57
- phoneNumber: string;
58
- code: string;
59
- }): Promise<{
60
- success: boolean;
61
- error?: undefined;
62
- } | {
63
- success: boolean;
64
- error: any;
65
- }>;
66
- checkout({ token, businessId, parts, paymentMethod, blocks, market, promoCode }: {
67
- token: string;
68
- businessId: string;
69
- parts: any[];
70
- paymentMethod?: string;
71
- blocks?: any[];
72
- market?: string;
73
- promoCode?: string;
74
- }): Promise<{
75
- success: boolean;
76
- data: any;
77
- error?: undefined;
78
- } | {
79
- success: boolean;
80
- error: any;
81
- data?: undefined;
82
- }>;
83
- };
84
- //# sourceMappingURL=reservation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reservation.d.ts","sourceRoot":"","sources":["../../src/api/reservation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAW,KAAK,EAAE,MAAM,UAAU,CAAC;AAG5D,eAAO,MAAM,cAAc;gGAWpB;QACC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;+EAwD5B;QACC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B;;;;;;;;;mDA6ByD;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;qBA2B5F,OAAO,CAAC,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;+CAyBb;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;;;;;;;kDAmCnC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;qFA0CrG;QACC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB;;;;;;;;;CAoDJ,CAAC"}