@hanzo/booker 8.2.1 → 8.3.2

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 (166) hide show
  1. package/README.md +6 -6
  2. package/dist/cjs/Booker.js +23 -0
  3. package/dist/cjs/Booker.js.map +1 -0
  4. package/dist/cjs/BookingForm.js +32 -0
  5. package/dist/cjs/BookingForm.js.map +1 -0
  6. package/dist/cjs/CalendarEmbed.js +20 -0
  7. package/dist/cjs/CalendarEmbed.js.map +1 -0
  8. package/dist/cjs/Confirmation.js +34 -0
  9. package/dist/cjs/Confirmation.js.map +1 -0
  10. package/dist/cjs/EventHeader.js +31 -0
  11. package/dist/cjs/EventHeader.js.map +1 -0
  12. package/dist/cjs/MonthCalendar.js +24 -0
  13. package/dist/cjs/MonthCalendar.js.map +1 -0
  14. package/dist/cjs/TimeSlots.js +21 -0
  15. package/dist/cjs/TimeSlots.js.map +1 -0
  16. package/dist/cjs/client.js +113 -0
  17. package/dist/cjs/client.js.map +1 -0
  18. package/dist/cjs/hooks.js +121 -0
  19. package/dist/cjs/hooks.js.map +1 -0
  20. package/dist/cjs/index.js +55 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/package.json +1 -0
  23. package/dist/cjs/time.js +129 -0
  24. package/dist/cjs/time.js.map +1 -0
  25. package/dist/cjs/useBooker.js +135 -0
  26. package/dist/cjs/useBooker.js.map +1 -0
  27. package/dist/esm/Booker.js +20 -0
  28. package/dist/esm/Booker.js.map +1 -0
  29. package/dist/esm/BookingForm.js +29 -0
  30. package/dist/esm/BookingForm.js.map +1 -0
  31. package/dist/esm/CalendarEmbed.js +17 -0
  32. package/dist/esm/CalendarEmbed.js.map +1 -0
  33. package/dist/esm/Confirmation.js +31 -0
  34. package/dist/esm/Confirmation.js.map +1 -0
  35. package/dist/esm/EventHeader.js +28 -0
  36. package/dist/esm/EventHeader.js.map +1 -0
  37. package/dist/esm/MonthCalendar.js +21 -0
  38. package/dist/esm/MonthCalendar.js.map +1 -0
  39. package/dist/esm/TimeSlots.js +18 -0
  40. package/dist/esm/TimeSlots.js.map +1 -0
  41. package/dist/esm/client.js +104 -0
  42. package/dist/esm/client.js.map +1 -0
  43. package/dist/esm/hooks.js +115 -0
  44. package/dist/esm/hooks.js.map +1 -0
  45. package/dist/esm/index.js +18 -13
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/time.js +113 -0
  48. package/dist/esm/time.js.map +1 -0
  49. package/dist/esm/useBooker.js +132 -0
  50. package/dist/esm/useBooker.js.map +1 -0
  51. package/package.json +28 -28
  52. package/src/Booker.tsx +7 -7
  53. package/src/BookingForm.tsx +2 -2
  54. package/src/CalendarEmbed.tsx +7 -7
  55. package/src/Confirmation.tsx +4 -4
  56. package/src/EventHeader.tsx +1 -1
  57. package/src/MonthCalendar.tsx +1 -1
  58. package/src/TimeSlots.tsx +2 -2
  59. package/src/hooks.ts +1 -1
  60. package/src/index.ts +11 -11
  61. package/src/useBooker.ts +9 -4
  62. package/types/Booker.d.ts +2 -2
  63. package/types/Booker.d.ts.map +1 -1
  64. package/types/BookingForm.d.ts +2 -2
  65. package/types/BookingForm.d.ts.map +1 -1
  66. package/types/CalendarEmbed.d.ts +2 -2
  67. package/types/CalendarEmbed.d.ts.map +1 -1
  68. package/types/Confirmation.d.ts +2 -2
  69. package/types/Confirmation.d.ts.map +1 -1
  70. package/types/EventHeader.d.ts +2 -2
  71. package/types/EventHeader.d.ts.map +1 -1
  72. package/types/MonthCalendar.d.ts +1 -1
  73. package/types/MonthCalendar.d.ts.map +1 -1
  74. package/types/TimeSlots.d.ts +2 -2
  75. package/types/TimeSlots.d.ts.map +1 -1
  76. package/types/client.d.ts.map +1 -1
  77. package/types/hooks.d.ts +1 -1
  78. package/types/hooks.d.ts.map +1 -1
  79. package/types/index.d.ts +11 -11
  80. package/types/index.d.ts.map +1 -1
  81. package/types/useBooker.d.ts +3 -3
  82. package/types/useBooker.d.ts.map +1 -1
  83. package/dist/cjs/Booker.cjs +0 -153
  84. package/dist/cjs/Booker.native.js +0 -158
  85. package/dist/cjs/Booker.native.js.map +0 -1
  86. package/dist/cjs/BookingForm.cjs +0 -197
  87. package/dist/cjs/BookingForm.native.js +0 -203
  88. package/dist/cjs/BookingForm.native.js.map +0 -1
  89. package/dist/cjs/CalendarEmbed.cjs +0 -121
  90. package/dist/cjs/CalendarEmbed.native.js +0 -125
  91. package/dist/cjs/CalendarEmbed.native.js.map +0 -1
  92. package/dist/cjs/Confirmation.cjs +0 -177
  93. package/dist/cjs/Confirmation.native.js +0 -185
  94. package/dist/cjs/Confirmation.native.js.map +0 -1
  95. package/dist/cjs/EventHeader.cjs +0 -112
  96. package/dist/cjs/EventHeader.native.js +0 -118
  97. package/dist/cjs/EventHeader.native.js.map +0 -1
  98. package/dist/cjs/MonthCalendar.cjs +0 -177
  99. package/dist/cjs/MonthCalendar.native.js +0 -191
  100. package/dist/cjs/MonthCalendar.native.js.map +0 -1
  101. package/dist/cjs/TimeSlots.cjs +0 -119
  102. package/dist/cjs/TimeSlots.native.js +0 -126
  103. package/dist/cjs/TimeSlots.native.js.map +0 -1
  104. package/dist/cjs/client.cjs +0 -136
  105. package/dist/cjs/client.native.js +0 -267
  106. package/dist/cjs/client.native.js.map +0 -1
  107. package/dist/cjs/hooks.cjs +0 -193
  108. package/dist/cjs/hooks.native.js +0 -221
  109. package/dist/cjs/hooks.native.js.map +0 -1
  110. package/dist/cjs/index.cjs +0 -71
  111. package/dist/cjs/index.native.js +0 -74
  112. package/dist/cjs/index.native.js.map +0 -1
  113. package/dist/cjs/time.cjs +0 -145
  114. package/dist/cjs/time.native.js +0 -150
  115. package/dist/cjs/time.native.js.map +0 -1
  116. package/dist/cjs/useBooker.cjs +0 -151
  117. package/dist/cjs/useBooker.native.js +0 -173
  118. package/dist/cjs/useBooker.native.js.map +0 -1
  119. package/dist/esm/Booker.mjs +0 -128
  120. package/dist/esm/Booker.mjs.map +0 -1
  121. package/dist/esm/Booker.native.js +0 -130
  122. package/dist/esm/Booker.native.js.map +0 -1
  123. package/dist/esm/BookingForm.mjs +0 -172
  124. package/dist/esm/BookingForm.mjs.map +0 -1
  125. package/dist/esm/BookingForm.native.js +0 -175
  126. package/dist/esm/BookingForm.native.js.map +0 -1
  127. package/dist/esm/CalendarEmbed.mjs +0 -96
  128. package/dist/esm/CalendarEmbed.mjs.map +0 -1
  129. package/dist/esm/CalendarEmbed.native.js +0 -97
  130. package/dist/esm/CalendarEmbed.native.js.map +0 -1
  131. package/dist/esm/Confirmation.mjs +0 -152
  132. package/dist/esm/Confirmation.mjs.map +0 -1
  133. package/dist/esm/Confirmation.native.js +0 -157
  134. package/dist/esm/Confirmation.native.js.map +0 -1
  135. package/dist/esm/EventHeader.mjs +0 -87
  136. package/dist/esm/EventHeader.mjs.map +0 -1
  137. package/dist/esm/EventHeader.native.js +0 -90
  138. package/dist/esm/EventHeader.native.js.map +0 -1
  139. package/dist/esm/MonthCalendar.mjs +0 -152
  140. package/dist/esm/MonthCalendar.mjs.map +0 -1
  141. package/dist/esm/MonthCalendar.native.js +0 -163
  142. package/dist/esm/MonthCalendar.native.js.map +0 -1
  143. package/dist/esm/TimeSlots.mjs +0 -94
  144. package/dist/esm/TimeSlots.mjs.map +0 -1
  145. package/dist/esm/TimeSlots.native.js +0 -98
  146. package/dist/esm/TimeSlots.native.js.map +0 -1
  147. package/dist/esm/client.mjs +0 -104
  148. package/dist/esm/client.mjs.map +0 -1
  149. package/dist/esm/client.native.js +0 -232
  150. package/dist/esm/client.native.js.map +0 -1
  151. package/dist/esm/hooks.mjs +0 -165
  152. package/dist/esm/hooks.mjs.map +0 -1
  153. package/dist/esm/hooks.native.js +0 -190
  154. package/dist/esm/hooks.native.js.map +0 -1
  155. package/dist/esm/index.mjs +0 -13
  156. package/dist/esm/index.mjs.map +0 -1
  157. package/dist/esm/index.native.js +0 -13
  158. package/dist/esm/index.native.js.map +0 -1
  159. package/dist/esm/time.mjs +0 -107
  160. package/dist/esm/time.mjs.map +0 -1
  161. package/dist/esm/time.native.js +0 -109
  162. package/dist/esm/time.native.js.map +0 -1
  163. package/dist/esm/useBooker.mjs +0 -126
  164. package/dist/esm/useBooker.mjs.map +0 -1
  165. package/dist/esm/useBooker.native.js +0 -145
  166. package/dist/esm/useBooker.native.js.map +0 -1
@@ -1,104 +0,0 @@
1
- const DEFAULT_API_URL = "https://api.hanzo.ai/v1/calendar";
2
- const CAL_API_VERSION = "2024-08-13";
3
- class CalendarError extends Error {
4
- status;
5
- conflict;
6
- constructor(message, status) {
7
- super(message);
8
- this.name = "CalendarError";
9
- this.status = status;
10
- this.conflict = status === 409;
11
- }
12
- }
13
- function messageOf(body, status) {
14
- const b = body;
15
- return b?.error?.message || b?.message || `Request failed (${status})`;
16
- }
17
- async function readJson(res) {
18
- return res.json().catch(() => null);
19
- }
20
- async function getJson(url, signal) {
21
- const res = await fetch(url, {
22
- headers: {
23
- Accept: "application/json"
24
- },
25
- signal
26
- });
27
- const body = await readJson(res);
28
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
29
- return body.data;
30
- }
31
- function normalizeEventType(raw) {
32
- const length = raw.length ?? raw.lengthInMinutes ?? raw.durationMinutes ?? 30;
33
- return {
34
- id: Number(raw.id ?? 0),
35
- slug: String(raw.slug ?? ""),
36
- title: String(raw.title ?? ""),
37
- description: String(raw.description ?? ""),
38
- length,
39
- locations: raw.locations ?? [],
40
- price: Number(raw.price ?? 0),
41
- currency: String(raw.currency ?? "usd"),
42
- profile: raw.profile
43
- };
44
- }
45
- async function fetchEventType(api, eventSlug, username, signal) {
46
- const url = `${api}/atoms/event-types/${encodeURIComponent(eventSlug)}/public?username=${encodeURIComponent(username)}`;
47
- const raw = await getJson(url, signal);
48
- return normalizeEventType(raw);
49
- }
50
- async function fetchSlots(api, input, signal) {
51
- const q = new URLSearchParams({
52
- eventTypeSlug: input.eventTypeSlug,
53
- usernameList: input.username,
54
- startTime: input.startTime,
55
- endTime: input.endTime,
56
- timeZone: input.timeZone
57
- });
58
- const data = await getJson(`${api}/slots/available?${q.toString()}`, signal);
59
- const slots = data.slots ?? data;
60
- return slots ?? {};
61
- }
62
- async function createBooking(api, input, signal) {
63
- const res = await fetch(`${api}/bookings`, {
64
- method: "POST",
65
- headers: {
66
- "Content-Type": "application/json",
67
- Accept: "application/json",
68
- "cal-api-version": CAL_API_VERSION
69
- },
70
- body: JSON.stringify({
71
- eventTypeSlug: input.eventTypeSlug,
72
- user: input.username,
73
- start: input.start,
74
- timeZone: input.timeZone,
75
- responses: input.responses
76
- }),
77
- signal
78
- });
79
- const body = await readJson(res);
80
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
81
- return body.data;
82
- }
83
- async function fetchBooking(api, uid, signal) {
84
- return getJson(`${api}/bookings/${encodeURIComponent(uid)}`, signal);
85
- }
86
- async function cancelBooking(api, uid, reason, signal) {
87
- const res = await fetch(`${api}/bookings/${encodeURIComponent(uid)}/cancel`, {
88
- method: "POST",
89
- headers: {
90
- "Content-Type": "application/json",
91
- Accept: "application/json",
92
- "cal-api-version": CAL_API_VERSION
93
- },
94
- body: JSON.stringify({
95
- reason: reason ?? ""
96
- }),
97
- signal
98
- });
99
- const body = await readJson(res);
100
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
101
- return body.data;
102
- }
103
- export { CAL_API_VERSION, CalendarError, DEFAULT_API_URL, cancelBooking, createBooking, fetchBooking, fetchEventType, fetchSlots };
104
- //# sourceMappingURL=client.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DEFAULT_API_URL","CAL_API_VERSION","CalendarError","Error","status","conflict","constructor","message","name","messageOf","body","b","error","readJson","res","json","catch","getJson","url","signal","fetch","headers","Accept","ok","data","normalizeEventType","raw","length","lengthInMinutes","durationMinutes","id","Number","slug","String","title","description","locations","price","currency","profile","fetchEventType","api","eventSlug","username","encodeURIComponent","fetchSlots","input","q","URLSearchParams","eventTypeSlug","usernameList","startTime","endTime","timeZone","toString","slots","createBooking","method","JSON","stringify","user","start","responses","fetchBooking","uid","cancelBooking","reason"],"sources":["../../src/client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,232 +0,0 @@
1
- function _assert_this_initialized(self) {
2
- if (self === void 0) {
3
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
4
- }
5
- return self;
6
- }
7
- function _call_super(_this, derived, args) {
8
- derived = _get_prototype_of(derived);
9
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
10
- }
11
- function _class_call_check(instance, Constructor) {
12
- if (!(instance instanceof Constructor)) {
13
- throw new TypeError("Cannot call a class as a function");
14
- }
15
- }
16
- function _construct(Parent, args, Class) {
17
- if (_is_native_reflect_construct()) {
18
- _construct = Reflect.construct;
19
- } else {
20
- _construct = function construct(Parent2, args2, Class2) {
21
- var a = [null];
22
- a.push.apply(a, args2);
23
- var Constructor = Function.bind.apply(Parent2, a);
24
- var instance = new Constructor();
25
- if (Class2) _set_prototype_of(instance, Class2.prototype);
26
- return instance;
27
- };
28
- }
29
- return _construct.apply(null, arguments);
30
- }
31
- function _define_property(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
41
- }
42
- return obj;
43
- }
44
- function _get_prototype_of(o) {
45
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
46
- return o2.__proto__ || Object.getPrototypeOf(o2);
47
- };
48
- return _get_prototype_of(o);
49
- }
50
- function _inherits(subClass, superClass) {
51
- if (typeof superClass !== "function" && superClass !== null) {
52
- throw new TypeError("Super expression must either be null or a function");
53
- }
54
- subClass.prototype = Object.create(superClass && superClass.prototype, {
55
- constructor: {
56
- value: subClass,
57
- writable: true,
58
- configurable: true
59
- }
60
- });
61
- if (superClass) _set_prototype_of(subClass, superClass);
62
- }
63
- function _is_native_function(fn) {
64
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
65
- }
66
- function _possible_constructor_return(self, call) {
67
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
68
- return call;
69
- }
70
- return _assert_this_initialized(self);
71
- }
72
- function _set_prototype_of(o, p) {
73
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
74
- o2.__proto__ = p2;
75
- return o2;
76
- };
77
- return _set_prototype_of(o, p);
78
- }
79
- function _type_of(obj) {
80
- "@swc/helpers - typeof";
81
-
82
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
83
- }
84
- function _wrap_native_super(Class) {
85
- var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
86
- _wrap_native_super = function wrapNativeSuper(Class2) {
87
- if (Class2 === null || !_is_native_function(Class2)) return Class2;
88
- if (typeof Class2 !== "function") {
89
- throw new TypeError("Super expression must either be null or a function");
90
- }
91
- if (typeof _cache !== "undefined") {
92
- if (_cache.has(Class2)) return _cache.get(Class2);
93
- _cache.set(Class2, Wrapper);
94
- }
95
- function Wrapper() {
96
- return _construct(Class2, arguments, _get_prototype_of(this).constructor);
97
- }
98
- Wrapper.prototype = Object.create(Class2.prototype, {
99
- constructor: {
100
- value: Wrapper,
101
- enumerable: false,
102
- writable: true,
103
- configurable: true
104
- }
105
- });
106
- return _set_prototype_of(Wrapper, Class2);
107
- };
108
- return _wrap_native_super(Class);
109
- }
110
- function _is_native_reflect_construct() {
111
- try {
112
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
113
- } catch (_) {}
114
- return (_is_native_reflect_construct = function () {
115
- return !!result;
116
- })();
117
- }
118
- var DEFAULT_API_URL = "https://api.hanzo.ai/v1/calendar";
119
- var CAL_API_VERSION = "2024-08-13";
120
- var CalendarError = /* @__PURE__ */function (Error1) {
121
- "use strict";
122
-
123
- _inherits(CalendarError2, Error1);
124
- function CalendarError2(message, status) {
125
- _class_call_check(this, CalendarError2);
126
- var _this;
127
- _this = _call_super(this, CalendarError2, [message]), _define_property(_this, "status", void 0), _define_property(_this, "conflict", void 0);
128
- _this.name = "CalendarError";
129
- _this.status = status;
130
- _this.conflict = status === 409;
131
- return _this;
132
- }
133
- return CalendarError2;
134
- }(_wrap_native_super(Error));
135
- function messageOf(body, status) {
136
- var _b_error;
137
- var b = body;
138
- return (b === null || b === void 0 ? void 0 : (_b_error = b.error) === null || _b_error === void 0 ? void 0 : _b_error.message) || (b === null || b === void 0 ? void 0 : b.message) || `Request failed (${status})`;
139
- }
140
- async function readJson(res) {
141
- return res.json().catch(function () {
142
- return null;
143
- });
144
- }
145
- async function getJson(url, signal) {
146
- var res = await fetch(url, {
147
- headers: {
148
- Accept: "application/json"
149
- },
150
- signal
151
- });
152
- var body = await readJson(res);
153
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
154
- return body.data;
155
- }
156
- function normalizeEventType(raw) {
157
- var _raw_length, _ref, _ref1;
158
- var length = (_ref1 = (_ref = (_raw_length = raw.length) !== null && _raw_length !== void 0 ? _raw_length : raw.lengthInMinutes) !== null && _ref !== void 0 ? _ref : raw.durationMinutes) !== null && _ref1 !== void 0 ? _ref1 : 30;
159
- var _raw_id, _raw_slug, _raw_title, _raw_description, _raw_locations, _raw_price, _raw_currency;
160
- return {
161
- id: Number((_raw_id = raw.id) !== null && _raw_id !== void 0 ? _raw_id : 0),
162
- slug: String((_raw_slug = raw.slug) !== null && _raw_slug !== void 0 ? _raw_slug : ""),
163
- title: String((_raw_title = raw.title) !== null && _raw_title !== void 0 ? _raw_title : ""),
164
- description: String((_raw_description = raw.description) !== null && _raw_description !== void 0 ? _raw_description : ""),
165
- length,
166
- locations: (_raw_locations = raw.locations) !== null && _raw_locations !== void 0 ? _raw_locations : [],
167
- price: Number((_raw_price = raw.price) !== null && _raw_price !== void 0 ? _raw_price : 0),
168
- currency: String((_raw_currency = raw.currency) !== null && _raw_currency !== void 0 ? _raw_currency : "usd"),
169
- profile: raw.profile
170
- };
171
- }
172
- async function fetchEventType(api, eventSlug, username, signal) {
173
- var url = `${api}/atoms/event-types/${encodeURIComponent(eventSlug)}/public?username=${encodeURIComponent(username)}`;
174
- var raw = await getJson(url, signal);
175
- return normalizeEventType(raw);
176
- }
177
- async function fetchSlots(api, input, signal) {
178
- var q = new URLSearchParams({
179
- eventTypeSlug: input.eventTypeSlug,
180
- usernameList: input.username,
181
- startTime: input.startTime,
182
- endTime: input.endTime,
183
- timeZone: input.timeZone
184
- });
185
- var data = await getJson(`${api}/slots/available?${q.toString()}`, signal);
186
- var _data_slots;
187
- var slots = (_data_slots = data.slots) !== null && _data_slots !== void 0 ? _data_slots : data;
188
- return slots !== null && slots !== void 0 ? slots : {};
189
- }
190
- async function createBooking(api, input, signal) {
191
- var res = await fetch(`${api}/bookings`, {
192
- method: "POST",
193
- headers: {
194
- "Content-Type": "application/json",
195
- Accept: "application/json",
196
- "cal-api-version": CAL_API_VERSION
197
- },
198
- body: JSON.stringify({
199
- eventTypeSlug: input.eventTypeSlug,
200
- user: input.username,
201
- start: input.start,
202
- timeZone: input.timeZone,
203
- responses: input.responses
204
- }),
205
- signal
206
- });
207
- var body = await readJson(res);
208
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
209
- return body.data;
210
- }
211
- async function fetchBooking(api, uid, signal) {
212
- return getJson(`${api}/bookings/${encodeURIComponent(uid)}`, signal);
213
- }
214
- async function cancelBooking(api, uid, reason, signal) {
215
- var res = await fetch(`${api}/bookings/${encodeURIComponent(uid)}/cancel`, {
216
- method: "POST",
217
- headers: {
218
- "Content-Type": "application/json",
219
- Accept: "application/json",
220
- "cal-api-version": CAL_API_VERSION
221
- },
222
- body: JSON.stringify({
223
- reason: reason !== null && reason !== void 0 ? reason : ""
224
- }),
225
- signal
226
- });
227
- var body = await readJson(res);
228
- if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
229
- return body.data;
230
- }
231
- export { CAL_API_VERSION, CalendarError, DEFAULT_API_URL, cancelBooking, createBooking, fetchBooking, fetchEventType, fetchSlots };
232
- //# sourceMappingURL=client.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper"],"sources":["../../src/client.ts"],"sourcesContent":[null],"mappings":"AAGO,SAAMA,wBAAkBA,CAAAC,IAAA;EACxB,IAAMA,IAAA;IA4EN,MAAM,IAAAC,cAAsB,4DAAM;EACvC;EACA,OAAAD,IAAA;AAAA;AAEE,SAAAE,WAAaA,CAAAC,KAAA,EAAAC,OAAA,EAAAC,IAAA;EACbD,OAAK,GAAAE,iBAAO,CAAAF,OAAA;EACZ,OAAKG,4BAAS,CAAAJ,KAAA,EAAAK,4BAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,OAAA,EAAAC,IAAA,QAAAC,iBAAA,CAAAH,KAAA,EAAAQ,WAAA,IAAAP,OAAA,CAAAQ,KAAA,CAAAT,KAAA,EAAAE,IAAA;AACd;AAA2B,SAC7BQ,kBAAAC,QAAA,EAAAC,WAAA;EACF,MAAAD,QAAA,YAAAC,WAAA;IAQA,MAAS,IAAAC,SAAU,oCAAuC;EACxD;AACA;AACF,SAAAC,WAAAC,MAAA,EAAAb,IAAA,EAAAc,KAAA;EAEA,IAAAX,4BAAyD;IACvDS,UAAW,GAAAR,OAAO,CAAAC,SAAY;EAChC;IAEAO,UAAA,GAAe,SAAWP,SAAaA,CAAkCU,OAAA,EAAAC,KAAA,EAAAC,MAAA;MACvE,IAAMC,CAAA,GAAM,CACN,KACD;MACLA,CAAA,CAAAC,IAAQ,CAAAZ,KAAqB,CAAAW,CAAA,EAAAF,KAAA;MAC/B,IAAAN,WAAA,GAAAU,QAAA,CAAAC,IAAA,CAAAd,KAAA,CAAAQ,OAAA,EAAAG,CAAA;MAEA,IAAST,QAAA,OAAAC,WAA4D;MACnE,IAAMO,MAAA,EACHK,iBACI,CAAAb,QAAA,EAAAQ,MAAA,CAAAM,SACA;MAEP,OAAOd,QAAA;IACL;EAAsB;EACK,OAC3BG,UAAc,CAAAL,KAAI,OAASiB,SAAE;AAAA;AACY,SACzCC,iBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA;EAAA,IACAD,GAAA,IAAAD,GAAY;IACZG,MAAA,CAAOC,cAAW,CAAAJ,GAAA,EAASC,GAAC;MAC5BC,KAAA;MACAG,UAAS,EAAI;MACfC,YAAA;MACFC,QAAA;IAEA;EAME,OAAM;IACNP,GAAA,CAAMC,GAAA,IAAMC,KAAM;EAClB;EACF,OAAAF,GAAA;AAEA;AAKE,SAAMzB,iBAAQA,CAAAiC,CAAA;EAAgBjC,iBACb,GAAA4B,MAAM,CAAAM,cAAA,GAAAN,MAAA,CAAAO,cAAA,YAAAA,eAAAC,EAAA;IACrB,OAAAA,EAAA,CAAAC,SAAc,IAAMT,MAAA,CAAAO,cAAA,CAAAC,EAAA;EAAA;EACH,OACjBpC,iBAAe,CAAAiC,CAAA;AAAA;AACC,SACjBK,UAAAC,QAAA,EAAAC,UAAA;EACD,WAAMA,UAAa,mBAAAA,UAAA;IACjB,MAAM,IAAA9B,SAAA,qDAAgC;EAAA;EAExC6B,QAAA,CAAAjB,SAAA,GAAAM,MAAA,CAAAa,MAAA,CAAAD,UAAA,IAAAA,UAAA,CAAAlB,SAAA;IAEAjB,WAAM,EAAS;MACfsB,KAAO,EAAAY,QAAU;MACnBP,QAAA;MAEAD,YAAsB;IAKpB;EAA2C,EACzC;EAAQ,IACRS,UAAS,EAAAnB,iBAAA,CAAAkB,QAAA,EAAAC,UAAA;AAAA;AACS,SAChBE,mBAAQA,CAAAC,EAAA;EAAA,OACRxB,QAAA,CAAAyB,QAAmB,CAAAC,IAAA,CAAAF,EAAA,EAAAG,OAAA;AAAA;AACrB,SACA7C,4BAAqBA,CAAAP,IAAA,EAAAmD,IAAA;EAAA,IACnBA,IAAA,KAAAE,QAAe,CAAAF,IAAM,yBAAAA,IAAA;IAAA,OACrBA,IAAM;EAAM;EACC,OACbpD,wBAAgB,CAAAC,IAAA;AAAA;AACC,SAClB2B,kBAAAY,CAAA,EAAAe,CAAA;EAAA3B,iBACD,GAAAO,MAAA,CAAAM,cAAA,aAAAA,eAAAE,EAAA,EAAAa,EAAA;IACDb,EAAA,CAAAC,SAAA,GAAAY,EAAA;IACD,OAAMb,EAAA;EACN;EACA,OAAQf,iBAA2B,CAAAY,CAAA,EAAAe,CAAA;AACrC;AAEA,SAAAD,QAAsBA,CAAAtB,GAAA;EAKpB,uBAA8B;;EAChC,OAAAA,GAAA,WAAAyB,MAAA,oBAAAzB,GAAA,CAAApB,WAAA,KAAA6C,MAAA,qBAAAzB,GAAA;AAEA;AAME,SAAM0B,kBAAkBA,CAAAtC,KAAM;EAA+C,IAC3EuC,MAAQ,UAAAC,GAAA,qCAAAA,GAAA;EAAAF,kBACC,YAAAG,gBAAAtC,MAAA;IAAA,IACPA,MAAA,SAAgB,KAAA0B,mBAAA,CAAA1B,MAAA,UAAAA,MAAA;IAAA,IAChB,OAAQA,MAAA;MACR,UAAAN,SAAmB;IACrB;IACA,WAAW0C,MAAA,KAAU,WAAU;MAC/B,IAAAA,MAAA,CAAAG,GAAA,CAAAvC,MAAA,UAAAoC,MAAA,CAAAI,GAAA,CAAAxC,MAAA;MACDoC,MAAA,CAAAK,GAAA,CAAAzC,MAAA,EAAA0C,OAAA;IACD;IACA,SAASA,OAAIA,CAAA,EAAM;MACnB,OAAQ/C,UAA2B,CAAAK,MAAA,EAAAO,SAAA,EAAAvB,iBAAA,OAAAK,WAAA;IACrC","ignoreList":[]}
@@ -1,165 +0,0 @@
1
- import { useCallback, useEffect, useRef, useState } from "react";
2
- import { createBooking, fetchBooking, fetchEventType, fetchSlots, CalendarError } from "./client.mjs";
3
- function useEventType(api, eventSlug, username) {
4
- const [state, setState] = useState({
5
- data: null,
6
- loading: true,
7
- error: null
8
- });
9
- useEffect(() => {
10
- const ctrl = new AbortController();
11
- setState({
12
- data: null,
13
- loading: true,
14
- error: null
15
- });
16
- fetchEventType(api, eventSlug, username, ctrl.signal).then(data => setState({
17
- data,
18
- loading: false,
19
- error: null
20
- })).catch(err => {
21
- if (ctrl.signal.aborted) return;
22
- setState({
23
- data: null,
24
- loading: false,
25
- error: errorText(err)
26
- });
27
- });
28
- return () => ctrl.abort();
29
- }, [api, eventSlug, username]);
30
- return state;
31
- }
32
- function useAvailableSlots(api, query) {
33
- const {
34
- eventTypeSlug,
35
- username,
36
- startTime,
37
- endTime,
38
- timeZone,
39
- enabled = true
40
- } = query;
41
- const [state, setState] = useState({
42
- data: null,
43
- loading: enabled,
44
- error: null
45
- });
46
- const [nonce, setNonce] = useState(0);
47
- const refetch = useCallback(() => setNonce(n => n + 1), []);
48
- useEffect(() => {
49
- if (!enabled) return;
50
- const ctrl = new AbortController();
51
- setState(s => ({
52
- data: s.data,
53
- loading: true,
54
- error: null
55
- }));
56
- fetchSlots(api, {
57
- eventTypeSlug,
58
- username,
59
- startTime,
60
- endTime,
61
- timeZone
62
- }, ctrl.signal).then(data => setState({
63
- data,
64
- loading: false,
65
- error: null
66
- })).catch(err => {
67
- if (ctrl.signal.aborted) return;
68
- setState({
69
- data: null,
70
- loading: false,
71
- error: errorText(err)
72
- });
73
- });
74
- return () => ctrl.abort();
75
- }, [api, eventTypeSlug, username, startTime, endTime, timeZone, enabled, nonce]);
76
- return {
77
- ...state,
78
- refetch
79
- };
80
- }
81
- function useCreateBooking(api) {
82
- const [submitting, setSubmitting] = useState(false);
83
- const [error, setError] = useState(null);
84
- const [conflict, setConflict] = useState(false);
85
- const mounted = useRef(true);
86
- useEffect(() => {
87
- mounted.current = true;
88
- return () => {
89
- mounted.current = false;
90
- };
91
- }, []);
92
- const reset = useCallback(() => {
93
- setError(null);
94
- setConflict(false);
95
- }, []);
96
- const submit = useCallback(async input => {
97
- setSubmitting(true);
98
- setError(null);
99
- setConflict(false);
100
- try {
101
- const booking = await createBooking(api, input);
102
- return {
103
- ok: true,
104
- booking
105
- };
106
- } catch (err) {
107
- const isConflict = err instanceof CalendarError && err.conflict;
108
- const message = errorText(err);
109
- if (mounted.current) {
110
- setError(message);
111
- setConflict(isConflict);
112
- }
113
- return {
114
- ok: false,
115
- conflict: isConflict,
116
- message
117
- };
118
- } finally {
119
- if (mounted.current) setSubmitting(false);
120
- }
121
- }, [api]);
122
- return {
123
- submit,
124
- submitting,
125
- error,
126
- conflict,
127
- reset
128
- };
129
- }
130
- function useBooking(api, uid) {
131
- const [state, setState] = useState({
132
- data: null,
133
- loading: !!uid,
134
- error: null
135
- });
136
- useEffect(() => {
137
- if (!uid) return;
138
- const ctrl = new AbortController();
139
- setState({
140
- data: null,
141
- loading: true,
142
- error: null
143
- });
144
- fetchBooking(api, uid, ctrl.signal).then(data => setState({
145
- data,
146
- loading: false,
147
- error: null
148
- })).catch(err => {
149
- if (ctrl.signal.aborted) return;
150
- setState({
151
- data: null,
152
- loading: false,
153
- error: errorText(err)
154
- });
155
- });
156
- return () => ctrl.abort();
157
- }, [api, uid]);
158
- return state;
159
- }
160
- function errorText(err) {
161
- if (err instanceof Error) return err.message;
162
- return "Something went wrong";
163
- }
164
- export { useAvailableSlots, useBooking, useCreateBooking, useEventType };
165
- //# sourceMappingURL=hooks.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","createBooking","fetchBooking","fetchEventType","fetchSlots","CalendarError","useEventType","api","eventSlug","username","state","setState","data","loading","error","ctrl","AbortController","signal","then","catch","err","aborted","errorText","abort","useAvailableSlots","query","eventTypeSlug","startTime","endTime","timeZone","enabled","nonce","setNonce","refetch","n","s","useCreateBooking","submitting","setSubmitting","setError","conflict","setConflict","mounted","current","reset","submit","input","booking","ok","isConflict","message","useBooking","uid","Error"],"sources":["../../src/hooks.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,WAAA,EAAaC,SAAA,EAAWC,MAAA,EAAQC,QAAA,QAAgB;AACzD,SACEC,aAAA,EACAC,YAAA,EACAC,cAAA,EACAC,UAAA,EACAC,aAAA,QAKK;AAQA,SAASC,aACdC,GAAA,EACAC,SAAA,EACAC,QAAA,EACuB;EACvB,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAAgC;IACxDY,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,KAAA,EAAO;EACT,CAAC;EACDhB,SAAA,CAAU,MAAM;IACd,MAAMiB,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAS;MAAEC,IAAA,EAAM;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,CAAC;IACnDX,cAAA,CAAeI,GAAA,EAAKC,SAAA,EAAWC,QAAA,EAAUM,IAAA,CAAKE,MAAM,EACjDC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAKC,SAAA,EAAWC,QAAQ,CAAC;EAC7B,OAAOC,KAAA;AACT;AAeO,SAASc,kBAAkBjB,GAAA,EAAakB,KAAA,EAA+B;EAC5E,MAAM;IAAEC,aAAA;IAAejB,QAAA;IAAUkB,SAAA;IAAWC,OAAA;IAASC,QAAA;IAAUC,OAAA,GAAU;EAAK,IAAIL,KAAA;EAClF,MAAM,CAACf,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAAiC;IACzDY,IAAA,EAAM;IACNC,OAAA,EAASiB,OAAA;IACThB,KAAA,EAAO;EACT,CAAC;EACD,MAAM,CAACiB,KAAA,EAAOC,QAAQ,IAAIhC,QAAA,CAAS,CAAC;EACpC,MAAMiC,OAAA,GAAUpC,WAAA,CAAY,MAAMmC,QAAA,CAAUE,CAAA,IAAMA,CAAA,GAAI,CAAC,GAAG,EAAE;EAE5DpC,SAAA,CAAU,MAAM;IACd,IAAI,CAACgC,OAAA,EAAS;IACd,MAAMf,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAUwB,CAAA,KAAO;MAAEvB,IAAA,EAAMuB,CAAA,CAAEvB,IAAA;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,EAAE;IAC9DV,UAAA,CACEG,GAAA,EACA;MAAEmB,aAAA;MAAejB,QAAA;MAAUkB,SAAA;MAAWC,OAAA;MAASC;IAAS,GACxDd,IAAA,CAAKE,MACP,EACGC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAKmB,aAAA,EAAejB,QAAA,EAAUkB,SAAA,EAAWC,OAAA,EAASC,QAAA,EAAUC,OAAA,EAASC,KAAK,CAAC;EAE/E,OAAO;IAAE,GAAGrB,KAAA;IAAOuB;EAAQ;AAC7B;AAoBO,SAASG,iBAAiB7B,GAAA,EAAiC;EAChE,MAAM,CAAC8B,UAAA,EAAYC,aAAa,IAAItC,QAAA,CAAS,KAAK;EAClD,MAAM,CAACc,KAAA,EAAOyB,QAAQ,IAAIvC,QAAA,CAAwB,IAAI;EACtD,MAAM,CAACwC,QAAA,EAAUC,WAAW,IAAIzC,QAAA,CAAS,KAAK;EAC9C,MAAM0C,OAAA,GAAU3C,MAAA,CAAO,IAAI;EAC3BD,SAAA,CAAU,MAAM;IACd4C,OAAA,CAAQC,OAAA,GAAU;IAClB,OAAO,MAAM;MACXD,OAAA,CAAQC,OAAA,GAAU;IACpB;EACF,GAAG,EAAE;EAEL,MAAMC,KAAA,GAAQ/C,WAAA,CAAY,MAAM;IAC9B0C,QAAA,CAAS,IAAI;IACbE,WAAA,CAAY,KAAK;EACnB,GAAG,EAAE;EAEL,MAAMI,MAAA,GAAShD,WAAA,CACb,MAAOiD,KAAA,IAMsB;IAC3BR,aAAA,CAAc,IAAI;IAClBC,QAAA,CAAS,IAAI;IACbE,WAAA,CAAY,KAAK;IACjB,IAAI;MACF,MAAMM,OAAA,GAAU,MAAM9C,aAAA,CAAcM,GAAA,EAAKuC,KAAK;MAC9C,OAAO;QAAEE,EAAA,EAAI;QAAMD;MAAQ;IAC7B,SAAS3B,GAAA,EAAc;MACrB,MAAM6B,UAAA,GAAa7B,GAAA,YAAef,aAAA,IAAiBe,GAAA,CAAIoB,QAAA;MACvD,MAAMU,OAAA,GAAU5B,SAAA,CAAUF,GAAG;MAC7B,IAAIsB,OAAA,CAAQC,OAAA,EAAS;QACnBJ,QAAA,CAASW,OAAO;QAChBT,WAAA,CAAYQ,UAAU;MACxB;MACA,OAAO;QAAED,EAAA,EAAI;QAAOR,QAAA,EAAUS,UAAA;QAAYC;MAAQ;IACpD,UAAE;MACA,IAAIR,OAAA,CAAQC,OAAA,EAASL,aAAA,CAAc,KAAK;IAC1C;EACF,GACA,CAAC/B,GAAG,CACN;EAEA,OAAO;IAAEsC,MAAA;IAAQR,UAAA;IAAYvB,KAAA;IAAO0B,QAAA;IAAUI;EAAM;AACtD;AAEO,SAASO,WAAW5C,GAAA,EAAa6C,GAAA,EAA8C;EACpF,MAAM,CAAC1C,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAA8B;IACtDY,IAAA,EAAM;IACNC,OAAA,EAAS,CAAC,CAACuC,GAAA;IACXtC,KAAA,EAAO;EACT,CAAC;EACDhB,SAAA,CAAU,MAAM;IACd,IAAI,CAACsD,GAAA,EAAK;IACV,MAAMrC,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAS;MAAEC,IAAA,EAAM;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,CAAC;IACnDZ,YAAA,CAAaK,GAAA,EAAK6C,GAAA,EAAKrC,IAAA,CAAKE,MAAM,EAC/BC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAK6C,GAAG,CAAC;EACb,OAAO1C,KAAA;AACT;AAEA,SAASY,UAAUF,GAAA,EAAsB;EACvC,IAAIA,GAAA,YAAeiC,KAAA,EAAO,OAAOjC,GAAA,CAAI8B,OAAA;EACrC,OAAO;AACT","ignoreList":[]}