@antlur/backstage 1.0.8 → 1.0.10

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 (225) hide show
  1. package/dist/cjs/client.js +86 -0
  2. package/dist/cjs/components/json-ld.js +8 -0
  3. package/dist/cjs/config.js +23 -0
  4. package/dist/cjs/constants/google-events.js +15 -0
  5. package/dist/cjs/endpoints/alerts.js +8 -0
  6. package/dist/cjs/endpoints/events.js +21 -0
  7. package/dist/cjs/endpoints/locations.js +24 -0
  8. package/dist/cjs/endpoints/menus.js +27 -0
  9. package/dist/cjs/endpoints/navigation.js +28 -0
  10. package/dist/cjs/endpoints/pages.js +23 -0
  11. package/dist/cjs/endpoints/press.js +8 -0
  12. package/dist/cjs/endpoints/website.js +8 -0
  13. package/dist/cjs/index.js +35 -0
  14. package/dist/cjs/types/alert.js +2 -0
  15. package/dist/cjs/types/api.js +2 -0
  16. package/dist/cjs/types/event.js +2 -0
  17. package/dist/cjs/types/index.js +29 -0
  18. package/dist/cjs/types/location.js +2 -0
  19. package/dist/cjs/types/media-item.js +2 -0
  20. package/dist/cjs/types/menu-category-item.js +2 -0
  21. package/dist/cjs/types/menu-category.js +2 -0
  22. package/dist/cjs/types/menu-item.js +2 -0
  23. package/dist/cjs/types/menu.js +2 -0
  24. package/dist/cjs/types/navigation.js +2 -0
  25. package/dist/cjs/types/page.js +2 -0
  26. package/dist/cjs/types/press.js +2 -0
  27. package/dist/cjs/types/website.js +2 -0
  28. package/dist/cjs/util/event.js +70 -0
  29. package/dist/cjs/util/gtag.js +14 -0
  30. package/dist/cjs/util/imgproxy-loader.js +14 -0
  31. package/dist/cjs/util/publishing.js +6 -0
  32. package/dist/cjs/util/special-hours.js +23 -0
  33. package/dist/{client.d.ts → esm/client.d.ts} +1 -0
  34. package/dist/esm/client.d.ts.map +1 -0
  35. package/dist/esm/components/json-ld.d.ts +7 -0
  36. package/dist/esm/components/json-ld.d.ts.map +1 -0
  37. package/dist/esm/components/json-ld.js +5 -0
  38. package/dist/{config.d.ts → esm/config.d.ts} +1 -0
  39. package/dist/esm/config.d.ts.map +1 -0
  40. package/dist/{constants → esm/constants}/google-events.d.ts +1 -0
  41. package/dist/esm/constants/google-events.d.ts.map +1 -0
  42. package/dist/{endpoints → esm/endpoints}/alerts.d.ts +1 -0
  43. package/dist/esm/endpoints/alerts.d.ts.map +1 -0
  44. package/dist/{endpoints → esm/endpoints}/events.d.ts +1 -0
  45. package/dist/esm/endpoints/events.d.ts.map +1 -0
  46. package/dist/{endpoints → esm/endpoints}/locations.d.ts +1 -0
  47. package/dist/esm/endpoints/locations.d.ts.map +1 -0
  48. package/dist/{endpoints → esm/endpoints}/menus.d.ts +1 -0
  49. package/dist/esm/endpoints/menus.d.ts.map +1 -0
  50. package/dist/{endpoints → esm/endpoints}/navigation.d.ts +1 -0
  51. package/dist/esm/endpoints/navigation.d.ts.map +1 -0
  52. package/dist/{endpoints → esm/endpoints}/pages.d.ts +1 -0
  53. package/dist/esm/endpoints/pages.d.ts.map +1 -0
  54. package/dist/{endpoints → esm/endpoints}/press.d.ts +1 -0
  55. package/dist/esm/endpoints/press.d.ts.map +1 -0
  56. package/dist/{endpoints → esm/endpoints}/website.d.ts +1 -0
  57. package/dist/esm/endpoints/website.d.ts.map +1 -0
  58. package/dist/{index.d.ts → esm/index.d.ts} +1 -0
  59. package/dist/esm/index.d.ts.map +1 -0
  60. package/dist/{types → esm/types}/alert.d.ts +1 -0
  61. package/dist/esm/types/alert.d.ts.map +1 -0
  62. package/dist/{types → esm/types}/api.d.ts +1 -0
  63. package/dist/esm/types/api.d.ts.map +1 -0
  64. package/dist/{types → esm/types}/event.d.ts +1 -0
  65. package/dist/esm/types/event.d.ts.map +1 -0
  66. package/dist/esm/types/index.d.ts +14 -0
  67. package/dist/esm/types/index.d.ts.map +1 -0
  68. package/dist/{types → esm/types}/location.d.ts +3 -0
  69. package/dist/esm/types/location.d.ts.map +1 -0
  70. package/dist/{types → esm/types}/media-item.d.ts +1 -0
  71. package/dist/esm/types/media-item.d.ts.map +1 -0
  72. package/dist/{types → esm/types}/menu-category-item.d.ts +1 -0
  73. package/dist/esm/types/menu-category-item.d.ts.map +1 -0
  74. package/dist/{types → esm/types}/menu-category.d.ts +1 -0
  75. package/dist/esm/types/menu-category.d.ts.map +1 -0
  76. package/dist/{types → esm/types}/menu-item.d.ts +1 -0
  77. package/dist/esm/types/menu-item.d.ts.map +1 -0
  78. package/dist/{types → esm/types}/menu.d.ts +1 -0
  79. package/dist/esm/types/menu.d.ts.map +1 -0
  80. package/dist/{types → esm/types}/navigation.d.ts +1 -0
  81. package/dist/esm/types/navigation.d.ts.map +1 -0
  82. package/dist/{types → esm/types}/page.d.ts +1 -0
  83. package/dist/esm/types/page.d.ts.map +1 -0
  84. package/dist/{types → esm/types}/press.d.ts +1 -0
  85. package/dist/esm/types/press.d.ts.map +1 -0
  86. package/dist/{types → esm/types}/website.d.ts +2 -0
  87. package/dist/esm/types/website.d.ts.map +1 -0
  88. package/dist/esm/util/event.d.ts +8 -0
  89. package/dist/esm/util/event.d.ts.map +1 -0
  90. package/dist/esm/util/event.js +63 -0
  91. package/dist/esm/util/gtag.d.ts +23 -0
  92. package/dist/esm/util/gtag.d.ts.map +1 -0
  93. package/dist/esm/util/gtag.js +10 -0
  94. package/dist/esm/util/imgproxy-loader.d.ts +9 -0
  95. package/dist/esm/util/imgproxy-loader.d.ts.map +1 -0
  96. package/dist/esm/util/imgproxy-loader.js +11 -0
  97. package/dist/esm/util/publishing.d.ts +2 -0
  98. package/dist/esm/util/publishing.d.ts.map +1 -0
  99. package/dist/esm/util/publishing.js +3 -0
  100. package/dist/esm/util/special-hours.d.ts +3 -0
  101. package/dist/esm/util/special-hours.d.ts.map +1 -0
  102. package/dist/esm/util/special-hours.js +20 -0
  103. package/dist/types/client.d.ts +14 -0
  104. package/dist/types/client.d.ts.map +1 -0
  105. package/dist/types/components/json-ld.d.ts +7 -0
  106. package/dist/types/components/json-ld.d.ts.map +1 -0
  107. package/dist/types/config.d.ts +10 -0
  108. package/dist/types/config.d.ts.map +1 -0
  109. package/dist/types/constants/google-events.d.ts +13 -0
  110. package/dist/types/constants/google-events.d.ts.map +1 -0
  111. package/dist/types/endpoints/alerts.d.ts +3 -0
  112. package/dist/types/endpoints/alerts.d.ts.map +1 -0
  113. package/dist/types/endpoints/events.d.ts +5 -0
  114. package/dist/types/endpoints/events.d.ts.map +1 -0
  115. package/dist/types/endpoints/locations.d.ts +4 -0
  116. package/dist/types/endpoints/locations.d.ts.map +1 -0
  117. package/dist/types/endpoints/menus.d.ts +5 -0
  118. package/dist/types/endpoints/menus.d.ts.map +1 -0
  119. package/dist/types/endpoints/navigation.d.ts +5 -0
  120. package/dist/types/endpoints/navigation.d.ts.map +1 -0
  121. package/dist/types/endpoints/pages.d.ts +6 -0
  122. package/dist/types/endpoints/pages.d.ts.map +1 -0
  123. package/dist/types/endpoints/press.d.ts +3 -0
  124. package/dist/types/endpoints/press.d.ts.map +1 -0
  125. package/dist/types/endpoints/website.d.ts +3 -0
  126. package/dist/types/endpoints/website.d.ts.map +1 -0
  127. package/dist/types/index.d.ts +12 -13
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/types/alert.d.ts +12 -0
  130. package/dist/types/types/alert.d.ts.map +1 -0
  131. package/dist/types/types/api.d.ts +12 -0
  132. package/dist/types/types/api.d.ts.map +1 -0
  133. package/dist/types/types/event.d.ts +14 -0
  134. package/dist/types/types/event.d.ts.map +1 -0
  135. package/dist/types/types/index.d.ts +14 -0
  136. package/dist/types/types/index.d.ts.map +1 -0
  137. package/dist/types/types/location.d.ts +70 -0
  138. package/dist/types/types/location.d.ts.map +1 -0
  139. package/dist/types/types/media-item.d.ts +11 -0
  140. package/dist/types/types/media-item.d.ts.map +1 -0
  141. package/dist/types/types/menu-category-item.d.ts +18 -0
  142. package/dist/types/types/menu-category-item.d.ts.map +1 -0
  143. package/dist/types/types/menu-category.d.ts +15 -0
  144. package/dist/types/types/menu-category.d.ts.map +1 -0
  145. package/dist/types/types/menu-item.d.ts +16 -0
  146. package/dist/types/types/menu-item.d.ts.map +1 -0
  147. package/dist/types/types/menu.d.ts +13 -0
  148. package/dist/types/types/menu.d.ts.map +1 -0
  149. package/dist/types/types/navigation.d.ts +17 -0
  150. package/dist/types/types/navigation.d.ts.map +1 -0
  151. package/dist/types/types/page.d.ts +22 -0
  152. package/dist/types/types/page.d.ts.map +1 -0
  153. package/dist/types/types/press.d.ts +13 -0
  154. package/dist/types/types/press.d.ts.map +1 -0
  155. package/dist/types/types/website.d.ts +69 -0
  156. package/dist/types/types/website.d.ts.map +1 -0
  157. package/dist/types/util/event.d.ts +8 -0
  158. package/dist/types/util/event.d.ts.map +1 -0
  159. package/dist/types/util/gtag.d.ts +23 -0
  160. package/dist/types/util/gtag.d.ts.map +1 -0
  161. package/dist/types/util/imgproxy-loader.d.ts +9 -0
  162. package/dist/types/util/imgproxy-loader.d.ts.map +1 -0
  163. package/dist/types/util/publishing.d.ts +2 -0
  164. package/dist/types/util/publishing.d.ts.map +1 -0
  165. package/dist/types/util/special-hours.d.ts +3 -0
  166. package/dist/types/util/special-hours.d.ts.map +1 -0
  167. package/package.json +46 -12
  168. package/src/client.ts +97 -0
  169. package/src/components/json-ld.tsx +9 -0
  170. package/src/config.ts +31 -0
  171. package/src/constants/google-events.ts +13 -0
  172. package/src/endpoints/alerts.ts +7 -0
  173. package/src/endpoints/events.ts +20 -0
  174. package/src/endpoints/locations.ts +25 -0
  175. package/src/endpoints/menus.ts +30 -0
  176. package/src/endpoints/navigation.ts +34 -0
  177. package/src/endpoints/pages.ts +23 -0
  178. package/src/endpoints/press.ts +7 -0
  179. package/src/endpoints/website.ts +7 -0
  180. package/src/index.ts +18 -0
  181. package/src/types/alert.ts +11 -0
  182. package/src/types/api.ts +12 -0
  183. package/src/types/event.ts +14 -0
  184. package/src/types/index.ts +13 -0
  185. package/src/types/location.ts +69 -0
  186. package/src/types/media-item.ts +10 -0
  187. package/src/types/menu-category-item.ts +18 -0
  188. package/src/types/menu-category.ts +15 -0
  189. package/src/types/menu-item.ts +15 -0
  190. package/src/types/menu.ts +12 -0
  191. package/src/types/navigation.ts +17 -0
  192. package/src/types/page.ts +24 -0
  193. package/src/types/press.ts +13 -0
  194. package/src/types/website.ts +76 -0
  195. package/src/util/event.ts +77 -0
  196. package/src/util/gtag.ts +40 -0
  197. package/src/util/imgproxy-loader.ts +22 -0
  198. package/src/util/publishing.ts +3 -0
  199. package/src/util/special-hours.ts +24 -0
  200. /package/dist/{client.js → esm/client.js} +0 -0
  201. /package/dist/{config.js → esm/config.js} +0 -0
  202. /package/dist/{constants → esm/constants}/google-events.js +0 -0
  203. /package/dist/{endpoints → esm/endpoints}/alerts.js +0 -0
  204. /package/dist/{endpoints → esm/endpoints}/events.js +0 -0
  205. /package/dist/{endpoints → esm/endpoints}/locations.js +0 -0
  206. /package/dist/{endpoints → esm/endpoints}/menus.js +0 -0
  207. /package/dist/{endpoints → esm/endpoints}/navigation.js +0 -0
  208. /package/dist/{endpoints → esm/endpoints}/pages.js +0 -0
  209. /package/dist/{endpoints → esm/endpoints}/press.js +0 -0
  210. /package/dist/{endpoints → esm/endpoints}/website.js +0 -0
  211. /package/dist/{index.js → esm/index.js} +0 -0
  212. /package/dist/{types → esm/types}/alert.js +0 -0
  213. /package/dist/{types → esm/types}/api.js +0 -0
  214. /package/dist/{types → esm/types}/event.js +0 -0
  215. /package/dist/{types → esm/types}/index.js +0 -0
  216. /package/dist/{types → esm/types}/location.js +0 -0
  217. /package/dist/{types → esm/types}/media-item.js +0 -0
  218. /package/dist/{types → esm/types}/menu-category-item.js +0 -0
  219. /package/dist/{types → esm/types}/menu-category.js +0 -0
  220. /package/dist/{types → esm/types}/menu-item.js +0 -0
  221. /package/dist/{types → esm/types}/menu.js +0 -0
  222. /package/dist/{types → esm/types}/navigation.js +0 -0
  223. /package/dist/{types → esm/types}/page.js +0 -0
  224. /package/dist/{types → esm/types}/press.js +0 -0
  225. /package/dist/{types → esm/types}/website.js +0 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.client = exports.BackstageClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const config_1 = require("./config");
9
+ class BackstageClient {
10
+ constructor(config) {
11
+ // If no config is passed, try to get from the global config
12
+ const globalConfig = (0, config_1.getGlobalConfig)();
13
+ const finalConfig = config || globalConfig;
14
+ if (!finalConfig) {
15
+ throw new Error("No Backstage config found. Please call defineConfig() or pass config to BackstageClient.");
16
+ }
17
+ // check for token and accountId in the config
18
+ if (!finalConfig.token) {
19
+ throw new Error("No token found in the Backstage config. Please provide a token.");
20
+ }
21
+ if (!finalConfig.accountId) {
22
+ throw new Error("No accountId found in the Backstage config. Please provide an accountId.");
23
+ }
24
+ const { baseURL, token, onError } = finalConfig;
25
+ this.instance = axios_1.default.create({
26
+ baseURL,
27
+ headers: {
28
+ Authorization: `Bearer ${token}`,
29
+ "X-Account-ID": finalConfig.accountId,
30
+ Accept: "application/json",
31
+ "Content-Type": "application/json",
32
+ },
33
+ });
34
+ // Add request interceptor for debugging
35
+ this.instance.interceptors.request.use((requestConfig) => {
36
+ // console.log("Request:", {
37
+ // method: requestConfig.method,
38
+ // url: requestConfig.url,
39
+ // headers: requestConfig.headers,
40
+ // data: requestConfig.data,
41
+ // });
42
+ return requestConfig;
43
+ });
44
+ // Add response interceptor for debugging
45
+ this.instance.interceptors.response.use((response) => response, (error) => {
46
+ // console.error("API Error:", {
47
+ // status: error.response?.status,
48
+ // method: error.config?.method,
49
+ // url: error.config?.url,
50
+ // headers: error.config?.headers,
51
+ // data: error.response?.data,
52
+ // });
53
+ if (onError)
54
+ onError(error);
55
+ return Promise.reject(error);
56
+ });
57
+ }
58
+ async get(url, config) {
59
+ const response = await this.instance.get(url, config);
60
+ return response.data;
61
+ }
62
+ async post(url, data, config) {
63
+ const response = await this.instance.post(url, data, config);
64
+ return response.data;
65
+ }
66
+ async put(url, data, config) {
67
+ const response = await this.instance.put(url, data, config);
68
+ return response.data;
69
+ }
70
+ async patch(url, data, config) {
71
+ const response = await this.instance.patch(url, data, config);
72
+ return response.data;
73
+ }
74
+ async delete(url, config) {
75
+ const response = await this.instance.delete(url, config);
76
+ return response.data;
77
+ }
78
+ getAxiosInstance() {
79
+ return this.instance;
80
+ }
81
+ }
82
+ exports.BackstageClient = BackstageClient;
83
+ const client = function (config) {
84
+ return new BackstageClient(config);
85
+ };
86
+ exports.client = client;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonLd = JsonLd;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ function JsonLd({ schema, id }) {
6
+ const schemaString = JSON.stringify(schema);
7
+ return (0, jsx_runtime_1.jsx)("script", { id: id, type: "application/ld+json", dangerouslySetInnerHTML: { __html: schemaString } });
8
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineConfig = defineConfig;
4
+ exports.getGlobalConfig = getGlobalConfig;
5
+ const ROOT = process.cwd();
6
+ const CONFIG_PATH = process.env.BACKSTAGE_CONFIG_PATH || "./backstage.config";
7
+ const DEFAULT_BASE_URL = "https://bckstg.app/api";
8
+ let globalConfig = {
9
+ baseURL: process.env.BACKSTAGE_API_URL ?? DEFAULT_BASE_URL,
10
+ token: process.env.BACKSTAGE_API_KEY ?? undefined,
11
+ accountId: process.env.BACKSTAGE_ACCOUNT_ID ?? undefined,
12
+ };
13
+ function defineConfig(config) {
14
+ globalConfig = {
15
+ ...globalConfig,
16
+ ...config,
17
+ };
18
+ return globalConfig;
19
+ }
20
+ function getGlobalConfig() {
21
+ // read the config from the project root
22
+ return globalConfig;
23
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GALocations = exports.GAEvents = void 0;
4
+ exports.GAEvents = {
5
+ CLICK_TO_MAP: "click_to_map",
6
+ CLICK_TO_CALL: "click_to_call",
7
+ CLICK_TO_SOCIAL: "click_to_social",
8
+ CLICK_TO_WAITLIST: "click_to_waitlist",
9
+ FIND_LOCATION: "find_location",
10
+ CLICK_TO_ORDER: "click_to_order",
11
+ };
12
+ exports.GALocations = {
13
+ LOCATION_CARD: "location_card",
14
+ TOPBAR: "topbar",
15
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAlerts = getAlerts;
4
+ const client_1 = require("../client");
5
+ async function getAlerts() {
6
+ const { data } = await (0, client_1.client)().get("/alerts");
7
+ return data;
8
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEvents = getEvents;
4
+ exports.getEvent = getEvent;
5
+ exports.getEventBySlug = getEventBySlug;
6
+ const client_1 = require("../client");
7
+ async function getEvents() {
8
+ const res = await (0, client_1.client)().get("/events");
9
+ const pages = res.data;
10
+ return pages;
11
+ }
12
+ async function getEvent(id) {
13
+ const res = await (0, client_1.client)().get("/events" + "?filter[id]=" + id);
14
+ const pages = res.data?.[0];
15
+ return pages;
16
+ }
17
+ async function getEventBySlug(slug) {
18
+ const res = await (0, client_1.client)().get("/events" + "?filter[slug]=" + slug);
19
+ const pages = res.data?.[0];
20
+ return pages;
21
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLocations = getLocations;
4
+ exports.getLocationBySlug = getLocationBySlug;
5
+ const client_1 = require("../client");
6
+ async function getLocations() {
7
+ const res = await (0, client_1.client)().get("/locations");
8
+ let locations = res.data;
9
+ locations = locations.sort((a, b) => {
10
+ if (a.name < b.name) {
11
+ return -1;
12
+ }
13
+ return 1;
14
+ });
15
+ return locations;
16
+ }
17
+ async function getLocationBySlug(slug) {
18
+ const res = await (0, client_1.client)().get(`/locations?filter[slug]=${slug}`);
19
+ const data = res.data;
20
+ if (Array.isArray(data) && data.length > 0) {
21
+ return data[0];
22
+ }
23
+ return data;
24
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMenus = getMenus;
4
+ exports.getMenu = getMenu;
5
+ exports.getMenuBySlug = getMenuBySlug;
6
+ const client_1 = require("../client");
7
+ async function getMenus() {
8
+ const res = await (0, client_1.client)().get("/menus");
9
+ const menus = res.data;
10
+ return menus;
11
+ }
12
+ async function getMenu(id) {
13
+ const res = await (0, client_1.client)().get(`/menus?filter[id]=${id}&include=categories.items`);
14
+ const data = res.data;
15
+ if (Array.isArray(data) && data.length > 0) {
16
+ return data[0];
17
+ }
18
+ return data;
19
+ }
20
+ async function getMenuBySlug(slug) {
21
+ const res = await (0, client_1.client)().get(`/menus?filter[slug]=${slug}&include=categories.items`);
22
+ const data = res.data;
23
+ if (Array.isArray(data) && data.length > 0) {
24
+ return data[0];
25
+ }
26
+ return data;
27
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultNavigation = getDefaultNavigation;
4
+ exports.getNavigations = getNavigations;
5
+ exports.getNavigation = getNavigation;
6
+ const client_1 = require("../client");
7
+ async function getDefaultNavigation() {
8
+ const navigations = await getNavigations();
9
+ return navigations[0];
10
+ }
11
+ async function getNavigations() {
12
+ const res = await (0, client_1.client)().get("/navigations");
13
+ const navigations = res.data;
14
+ return Promise.all(navigations.map(async (navigation) => {
15
+ const res = await (0, client_1.client)().get("/navigations/" + navigation.id);
16
+ return res.data[0];
17
+ }));
18
+ }
19
+ async function getNavigation(id) {
20
+ const res = await (0, client_1.client)().get(`/navigations/${id}`);
21
+ const navigation = res.data;
22
+ const topLevelItems = navigation.items.filter((item) => item.parent_id === null);
23
+ topLevelItems.forEach((item) => {
24
+ item.children = navigation.items.filter((child) => child.parent_id === item.id);
25
+ });
26
+ navigation.items = topLevelItems;
27
+ return navigation;
28
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPage = getPage;
4
+ exports.getPages = getPages;
5
+ exports.getHomePage = getHomePage;
6
+ exports.getPageBySlug = getPageBySlug;
7
+ const client_1 = require("../client");
8
+ async function getPage(slug) {
9
+ const res = await (0, client_1.client)().get(`/pages/?filter[slug]=${slug}`);
10
+ return res.data[0];
11
+ }
12
+ async function getPages() {
13
+ const { data } = await (0, client_1.client)().get("/pages");
14
+ return data;
15
+ }
16
+ async function getHomePage() {
17
+ const res = await (0, client_1.client)().get("/pages?filter[slug]=/");
18
+ return res.data[0];
19
+ }
20
+ async function getPageBySlug(slug) {
21
+ const res = await (0, client_1.client)().get("/pages?filter[slug]=" + slug);
22
+ return res.data[0];
23
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPress = getPress;
4
+ const client_1 = require("../client");
5
+ async function getPress() {
6
+ const { data } = await (0, client_1.client)().get("/press");
7
+ return data;
8
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebsite = getWebsite;
4
+ const client_1 = require("../client");
5
+ async function getWebsite() {
6
+ const res = await (0, client_1.client)().get("/websites");
7
+ return res.data[0];
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.BackstageClient = exports.getGlobalConfig = exports.defineConfig = void 0;
18
+ // Re-export config
19
+ var config_1 = require("./config");
20
+ Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
21
+ Object.defineProperty(exports, "getGlobalConfig", { enumerable: true, get: function () { return config_1.getGlobalConfig; } });
22
+ // Re-export the client class
23
+ var client_1 = require("./client");
24
+ Object.defineProperty(exports, "BackstageClient", { enumerable: true, get: function () { return client_1.BackstageClient; } });
25
+ // Re-export endpoints
26
+ __exportStar(require("./endpoints/alerts"), exports);
27
+ __exportStar(require("./endpoints/events"), exports);
28
+ __exportStar(require("./endpoints/locations"), exports);
29
+ __exportStar(require("./endpoints/menus"), exports);
30
+ __exportStar(require("./endpoints/navigation"), exports);
31
+ __exportStar(require("./endpoints/pages"), exports);
32
+ __exportStar(require("./endpoints/press"), exports);
33
+ __exportStar(require("./endpoints/website"), exports);
34
+ // Re-export domain types
35
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./alert"), exports);
18
+ __exportStar(require("./api"), exports);
19
+ __exportStar(require("./event"), exports);
20
+ __exportStar(require("./location"), exports);
21
+ __exportStar(require("./media-item"), exports);
22
+ __exportStar(require("./menu-category-item"), exports);
23
+ __exportStar(require("./menu-category"), exports);
24
+ __exportStar(require("./menu-item"), exports);
25
+ __exportStar(require("./menu"), exports);
26
+ __exportStar(require("./navigation"), exports);
27
+ __exportStar(require("./page"), exports);
28
+ __exportStar(require("./press"), exports);
29
+ __exportStar(require("./website"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMultipleDays = isMultipleDays;
4
+ exports.dateString = dateString;
5
+ exports.timeString = timeString;
6
+ exports.shortDescription = shortDescription;
7
+ exports.makeEventSchema = makeEventSchema;
8
+ function isMultipleDays(start, end) {
9
+ return start.getDate() !== end.getDate();
10
+ }
11
+ function dateString(event) {
12
+ const startTime = new Date(event.start_time);
13
+ const endTime = new Date(event.end_time);
14
+ if (isMultipleDays(startTime, endTime)) {
15
+ const startDayShort = startTime.toLocaleDateString("en-US", { weekday: "short" });
16
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
17
+ const endDate = endTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
18
+ return `${startDayShort}, ${startDate} - ${endDate}`;
19
+ }
20
+ const startDay = startTime.toLocaleDateString("en-US", { weekday: "short" });
21
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
22
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
23
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
24
+ return `${startDay}, ${startDate}`;
25
+ }
26
+ function timeString(event) {
27
+ const startTime = new Date(event.start_time);
28
+ const endTime = new Date(event.end_time);
29
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
30
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
31
+ return `${startTimeString} - ${endTimeString}`;
32
+ }
33
+ function shortDescription(event) {
34
+ // event.description is html
35
+ // strip html tags
36
+ // keep newlines
37
+ // return first 50 chars
38
+ const shortDescription = event.description.substring(0, 100);
39
+ return shortDescription;
40
+ }
41
+ function makeEventSchema(website, event, locations) {
42
+ return {
43
+ "@context": "https://schema.org",
44
+ "@type": "Event",
45
+ "@id": `https://${website.domain}/events/${event.id}//#event`,
46
+ eventAttendanceMode: "https://schema.org/OfflineEventAttendanceMode",
47
+ url: `https://${website.domain}/events/${event.id}`,
48
+ name: event.title,
49
+ description: event.description,
50
+ startDate: event.start_time,
51
+ endDate: event.end_time,
52
+ location: [
53
+ {
54
+ "@type": "Place",
55
+ address: {
56
+ "@type": "PostalAddress",
57
+ streetAddress: locations[0].address,
58
+ addressLocality: locations[0].city,
59
+ addressRegion: locations[0].state,
60
+ postalCode: locations[0].zip,
61
+ addressCountry: "US",
62
+ },
63
+ },
64
+ ],
65
+ image: {
66
+ "@type": "ImageObject",
67
+ url: event.cover_media?.transform_url,
68
+ },
69
+ };
70
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gtag = gtag;
4
+ exports.gtagEvent = gtagEvent;
5
+ function gtag(...args) {
6
+ if (typeof window !== "undefined" && window.gtag) {
7
+ window.gtag(...args);
8
+ }
9
+ }
10
+ function gtagEvent(name, params = {}) {
11
+ if (typeof window === "undefined" || !window.gtag)
12
+ return;
13
+ gtag("event", name, params);
14
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = imgproxyLoader;
4
+ function imgproxyLoader({ src, width, height, quality }) {
5
+ const path = `/size:${width ? width : 0}:${height ? height : 0}` +
6
+ `/resizing_type:fill` +
7
+ (quality ? `/quality:${quality}` : "") +
8
+ `/sharpen:0.5` +
9
+ `/plain/${src}` +
10
+ `@webp`;
11
+ const host = process.env.NEXT_PUBLIC_IMGPROXY_URL || "https://imgproxy.antlur.co";
12
+ const imgUrl = `${host}/insecure${path}`;
13
+ return imgUrl;
14
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterPublishedItems = filterPublishedItems;
4
+ function filterPublishedItems(items) {
5
+ return items.filter((item) => item.published_at !== null);
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSpecialHoursFromLocation = getSpecialHoursFromLocation;
4
+ const luxon_1 = require("luxon");
5
+ function getSpecialHoursFromLocation(location) {
6
+ if (!location.special_hours)
7
+ return [];
8
+ // filter out any special hours that are before today
9
+ const now = luxon_1.DateTime.now().startOf("day");
10
+ if (location.timezone)
11
+ now.setZone(location.timezone);
12
+ const specialHours = location.special_hours.filter((specialHour) => {
13
+ const specialHourDate = luxon_1.DateTime.fromISO(specialHour.date);
14
+ return specialHourDate >= now;
15
+ });
16
+ // sort by date
17
+ specialHours.sort((a, b) => {
18
+ const aDate = luxon_1.DateTime.fromISO(a.date);
19
+ const bDate = luxon_1.DateTime.fromISO(b.date);
20
+ return aDate > bDate ? 1 : -1;
21
+ });
22
+ return specialHours;
23
+ }
@@ -11,3 +11,4 @@ export declare class BackstageClient {
11
11
  getAxiosInstance(): AxiosInstance;
12
12
  }
13
13
  export declare const client: (config?: BackstageUserConfig) => BackstageClient;
14
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAA6B,MAAM,OAAO,CAAC;AAC5F,OAAO,EAAmB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEhE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,CAAC,EAAE,mBAAmB;IA0D3B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKvF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKtF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKxF,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/E,gBAAgB,IAAI,aAAa;CAGzC;AAED,eAAO,MAAM,MAAM,YAAsB,mBAAmB,KAAG,eAE9D,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface JsonLdProps {
2
+ schema: any;
3
+ id: string;
4
+ }
5
+ export declare function JsonLd({ schema, id }: JsonLdProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=json-ld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../../src/components/json-ld.tsx"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,2CAGjD"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function JsonLd({ schema, id }) {
3
+ const schemaString = JSON.stringify(schema);
4
+ return _jsx("script", { id: id, type: "application/ld+json", dangerouslySetInnerHTML: { __html: schemaString } });
5
+ }
@@ -7,3 +7,4 @@ export interface BackstageUserConfig {
7
7
  }
8
8
  export declare function defineConfig(config: BackstageUserConfig): BackstageUserConfig;
9
9
  export declare function getGlobalConfig(): BackstageUserConfig;
10
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMnC,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAQD,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAM7E;AAED,wBAAgB,eAAe,IAAI,mBAAmB,CAGrD"}
@@ -10,3 +10,4 @@ export declare const GALocations: {
10
10
  LOCATION_CARD: string;
11
11
  TOPBAR: string;
12
12
  };
13
+ //# sourceMappingURL=google-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-events.d.ts","sourceRoot":"","sources":["../../../src/constants/google-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;CAOpB,CAAC;AAEF,eAAO,MAAM,WAAW;;;CAGvB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { Alert } from "../types";
2
2
  export declare function getAlerts(): Promise<Alert[]>;
3
+ //# sourceMappingURL=alerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../src/endpoints/alerts.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAsB,SAAS,qBAG9B"}
@@ -2,3 +2,4 @@ import { Event } from "../types";
2
2
  export declare function getEvents(): Promise<Event[]>;
3
3
  export declare function getEvent(id: string): Promise<Event>;
4
4
  export declare function getEventBySlug(slug: string): Promise<Event>;
5
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/endpoints/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAsB,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAIlD;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIzD;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIjE"}
@@ -1,3 +1,4 @@
1
1
  import { Location } from "../types";
2
2
  export declare function getLocations(): Promise<Location[]>;
3
3
  export declare function getLocationBySlug(slug: string): Promise<Location | Location[]>;
4
+ //# sourceMappingURL=locations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../../src/endpoints/locations.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3D,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUxD;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,kCASnD"}
@@ -2,3 +2,4 @@ import { Menu } from "../types";
2
2
  export declare function getMenus(): Promise<Menu[]>;
3
3
  export declare function getMenu(id: string): Promise<Menu | Menu[]>;
4
4
  export declare function getMenuBySlug(slug: string): Promise<Menu | Menu[]>;
5
+ //# sourceMappingURL=menus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../../src/endpoints/menus.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEvD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAIhD;AAED,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,0BASvC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,0BAS/C"}