@fluid-app/rep-core 0.1.13 → 0.1.15
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.
- package/dist/chunk-CKQMccvm.cjs +28 -0
- package/dist/data-sources/DataAwareWidget.cjs +47 -56
- package/dist/data-sources/DataAwareWidget.cjs.map +1 -1
- package/dist/data-sources/DataAwareWidget.d.cts +27 -19
- package/dist/data-sources/DataAwareWidget.d.cts.map +1 -0
- package/dist/data-sources/DataAwareWidget.d.mts +38 -0
- package/dist/data-sources/DataAwareWidget.d.mts.map +1 -0
- package/dist/data-sources/DataAwareWidget.mjs +48 -0
- package/dist/data-sources/DataAwareWidget.mjs.map +1 -0
- package/dist/data-sources/ErrorState.cjs +18 -10
- package/dist/data-sources/ErrorState.cjs.map +1 -1
- package/dist/data-sources/ErrorState.d.cts +5 -3
- package/dist/data-sources/ErrorState.d.cts.map +1 -0
- package/dist/data-sources/ErrorState.d.mts +7 -0
- package/dist/data-sources/ErrorState.d.mts.map +1 -0
- package/dist/data-sources/ErrorState.mjs +18 -0
- package/dist/data-sources/ErrorState.mjs.map +1 -0
- package/dist/data-sources/context.cjs +22 -14
- package/dist/data-sources/context.cjs.map +1 -1
- package/dist/data-sources/context.d.cts +16 -10
- package/dist/data-sources/context.d.cts.map +1 -0
- package/dist/data-sources/context.d.mts +22 -0
- package/dist/data-sources/context.d.mts.map +1 -0
- package/dist/data-sources/context.mjs +21 -0
- package/dist/data-sources/context.mjs.map +1 -0
- package/dist/data-sources/fetchers/api.cjs +63 -10
- package/dist/data-sources/fetchers/api.cjs.map +1 -1
- package/dist/data-sources/fetchers/api.d.cts +4 -2
- package/dist/data-sources/fetchers/api.d.cts.map +1 -0
- package/dist/data-sources/fetchers/api.d.mts +10 -0
- package/dist/data-sources/fetchers/api.d.mts.map +1 -0
- package/dist/data-sources/fetchers/api.mjs +64 -0
- package/dist/data-sources/fetchers/api.mjs.map +1 -0
- package/dist/data-sources/fetchers/custom.cjs +106 -10
- package/dist/data-sources/fetchers/custom.cjs.map +1 -1
- package/dist/data-sources/fetchers/custom.d.cts +4 -2
- package/dist/data-sources/fetchers/custom.d.cts.map +1 -0
- package/dist/data-sources/fetchers/{custom.d.ts → custom.d.mts} +4 -2
- package/dist/data-sources/fetchers/custom.d.mts.map +1 -0
- package/dist/data-sources/fetchers/custom.mjs +107 -0
- package/dist/data-sources/fetchers/custom.mjs.map +1 -0
- package/dist/data-sources/fetchers/static.cjs +159 -14
- package/dist/data-sources/fetchers/static.cjs.map +1 -1
- package/dist/data-sources/fetchers/static.d.cts +12 -10
- package/dist/data-sources/fetchers/static.d.cts.map +1 -0
- package/dist/data-sources/fetchers/{static.d.ts → static.d.mts} +12 -10
- package/dist/data-sources/fetchers/static.d.mts.map +1 -0
- package/dist/data-sources/fetchers/static.mjs +158 -0
- package/dist/data-sources/fetchers/static.mjs.map +1 -0
- package/dist/data-sources/preview-context.cjs +15 -15
- package/dist/data-sources/preview-context.cjs.map +1 -1
- package/dist/data-sources/preview-context.d.cts +10 -6
- package/dist/data-sources/preview-context.d.cts.map +1 -0
- package/dist/data-sources/preview-context.d.mts +15 -0
- package/dist/data-sources/preview-context.d.mts.map +1 -0
- package/dist/data-sources/preview-context.mjs +18 -0
- package/dist/data-sources/preview-context.mjs.map +1 -0
- package/dist/data-sources/registry-context.cjs +51 -24
- package/dist/data-sources/registry-context.cjs.map +1 -1
- package/dist/data-sources/registry-context.d.cts +30 -22
- package/dist/data-sources/registry-context.d.cts.map +1 -0
- package/dist/data-sources/registry-context.d.mts +49 -0
- package/dist/data-sources/registry-context.d.mts.map +1 -0
- package/dist/data-sources/registry-context.mjs +49 -0
- package/dist/data-sources/registry-context.mjs.map +1 -0
- package/dist/data-sources/registry.cjs +29 -18
- package/dist/data-sources/registry.cjs.map +1 -1
- package/dist/data-sources/registry.d.cts +9 -7
- package/dist/data-sources/registry.d.cts.map +1 -0
- package/dist/data-sources/registry.d.mts +19 -0
- package/dist/data-sources/registry.d.mts.map +1 -0
- package/dist/data-sources/registry.mjs +29 -0
- package/dist/data-sources/registry.mjs.map +1 -0
- package/dist/data-sources/transformers.cjs +152 -10
- package/dist/data-sources/transformers.cjs.map +1 -1
- package/dist/data-sources/transformers.d.cts +4 -17
- package/dist/data-sources/transformers.d.cts.map +1 -0
- package/dist/data-sources/transformers.d.mts +10 -0
- package/dist/data-sources/transformers.d.mts.map +1 -0
- package/dist/data-sources/transformers.mjs +153 -0
- package/dist/data-sources/transformers.mjs.map +1 -0
- package/dist/data-sources/types.cjs +0 -4
- package/dist/data-sources/types.d.cts +2 -157
- package/dist/data-sources/types.d.mts +2 -0
- package/dist/data-sources/types.mjs +1 -0
- package/dist/data-sources/use-widget-data.cjs +109 -17
- package/dist/data-sources/use-widget-data.cjs.map +1 -1
- package/dist/data-sources/use-widget-data.d.cts +9 -8
- package/dist/data-sources/use-widget-data.d.cts.map +1 -0
- package/dist/data-sources/use-widget-data.d.mts +17 -0
- package/dist/data-sources/use-widget-data.d.mts.map +1 -0
- package/dist/data-sources/use-widget-data.mjs +109 -0
- package/dist/data-sources/use-widget-data.mjs.map +1 -0
- package/dist/index-Bxe_LIi8.d.cts +287 -0
- package/dist/index-Bxe_LIi8.d.cts.map +1 -0
- package/dist/index-CCAu2n19.d.mts +287 -0
- package/dist/index-CCAu2n19.d.mts.map +1 -0
- package/dist/registries/index.cjs +212 -127
- package/dist/registries/index.cjs.map +1 -1
- package/dist/registries/index.d.cts +146 -149
- package/dist/registries/index.d.cts.map +1 -0
- package/dist/registries/{index.d.ts → index.d.mts} +146 -149
- package/dist/registries/index.d.mts.map +1 -0
- package/dist/registries/index.mjs +229 -0
- package/dist/registries/index.mjs.map +1 -0
- package/dist/shell/AppShellLayout.cjs +47 -12
- package/dist/shell/AppShellLayout.cjs.map +1 -1
- package/dist/shell/AppShellLayout.d.cts +29 -19
- package/dist/shell/AppShellLayout.d.cts.map +1 -0
- package/dist/shell/AppShellLayout.d.mts +40 -0
- package/dist/shell/AppShellLayout.d.mts.map +1 -0
- package/dist/shell/AppShellLayout.mjs +46 -0
- package/dist/{chunk-45BCVWQK.cjs.map → shell/AppShellLayout.mjs.map} +1 -1
- package/dist/shell/ScreenHeader.cjs +44 -0
- package/dist/shell/ScreenHeader.cjs.map +1 -0
- package/dist/shell/ScreenHeader.d.cts +12 -0
- package/dist/shell/ScreenHeader.d.cts.map +1 -0
- package/dist/shell/ScreenHeader.d.mts +12 -0
- package/dist/shell/ScreenHeader.d.mts.map +1 -0
- package/dist/shell/ScreenHeader.mjs +42 -0
- package/dist/shell/ScreenHeader.mjs.map +1 -0
- package/dist/shell/ScreenHeaderContext.cjs +91 -0
- package/dist/shell/ScreenHeaderContext.cjs.map +1 -0
- package/dist/shell/ScreenHeaderContext.d.cts +36 -0
- package/dist/shell/ScreenHeaderContext.d.cts.map +1 -0
- package/dist/shell/ScreenHeaderContext.d.mts +36 -0
- package/dist/shell/ScreenHeaderContext.d.mts.map +1 -0
- package/dist/shell/ScreenHeaderContext.mjs +86 -0
- package/dist/shell/ScreenHeaderContext.mjs.map +1 -0
- package/dist/shell/ThemeModeContext.cjs +68 -18
- package/dist/shell/ThemeModeContext.cjs.map +1 -1
- package/dist/shell/ThemeModeContext.d.cts +23 -16
- package/dist/shell/ThemeModeContext.d.cts.map +1 -0
- package/dist/shell/ThemeModeContext.d.mts +34 -0
- package/dist/shell/ThemeModeContext.d.mts.map +1 -0
- package/dist/shell/ThemeModeContext.mjs +66 -0
- package/dist/shell/ThemeModeContext.mjs.map +1 -0
- package/dist/shell/index.cjs +43 -205
- package/dist/shell/index.d.cts +7 -43
- package/dist/shell/index.d.mts +7 -0
- package/dist/shell/index.mjs +7 -0
- package/dist/shell/sidebar.cjs +372 -87
- package/dist/shell/sidebar.cjs.map +1 -1
- package/dist/shell/sidebar.d.cts +38 -36
- package/dist/shell/sidebar.d.cts.map +1 -0
- package/dist/shell/{sidebar.d.ts → sidebar.d.mts} +38 -36
- package/dist/shell/sidebar.d.mts.map +1 -0
- package/dist/shell/sidebar.mjs +364 -0
- package/dist/{chunk-PFDBULOI.cjs.map → shell/sidebar.mjs.map} +1 -1
- package/dist/shell/use-mobile.cjs +49 -18
- package/dist/shell/use-mobile.cjs.map +1 -1
- package/dist/shell/use-mobile.d.cts +3 -1
- package/dist/shell/use-mobile.d.cts.map +1 -0
- package/dist/shell/{use-mobile.d.ts → use-mobile.d.mts} +3 -1
- package/dist/shell/use-mobile.d.mts.map +1 -0
- package/dist/shell/use-mobile.mjs +47 -0
- package/dist/shell/use-mobile.mjs.map +1 -0
- package/dist/theme/index.cjs +662 -549
- package/dist/theme/index.cjs.map +1 -1
- package/dist/theme/index.d.cts +32 -32
- package/dist/theme/index.d.cts.map +1 -0
- package/dist/theme/{index.d.ts → index.d.mts} +32 -32
- package/dist/theme/index.d.mts.map +1 -0
- package/dist/theme/index.mjs +727 -0
- package/dist/theme/index.mjs.map +1 -0
- package/dist/types/index.cjs +18 -72
- package/dist/types/index.d.cts +4 -268
- package/dist/types/index.d.mts +4 -0
- package/dist/types/index.mjs +2 -0
- package/dist/types-BIXtQlHB.d.cts +155 -0
- package/dist/types-BIXtQlHB.d.cts.map +1 -0
- package/dist/types-BXFX9bXp.cjs +303 -0
- package/dist/types-BXFX9bXp.cjs.map +1 -0
- package/dist/types-Bjmd7Fdx.mjs +208 -0
- package/dist/types-Bjmd7Fdx.mjs.map +1 -0
- package/dist/types-ByG6Xy3C.d.mts +85 -0
- package/dist/types-ByG6Xy3C.d.mts.map +1 -0
- package/dist/types-C5OFJy-O.d.mts +155 -0
- package/dist/types-C5OFJy-O.d.mts.map +1 -0
- package/dist/types-Ctu-Zio6.d.cts +85 -0
- package/dist/types-Ctu-Zio6.d.cts.map +1 -0
- package/dist/{widget-schema-D-ca3--K.d.ts → widget-schema--PY1uMWx.d.cts} +38 -41
- package/dist/widget-schema--PY1uMWx.d.cts.map +1 -0
- package/dist/{widget-schema-DvJdg1-B.d.cts → widget-schema-YkD5p3v4.d.mts} +38 -41
- package/dist/widget-schema-YkD5p3v4.d.mts.map +1 -0
- package/dist/widget-utils/index.cjs +96 -89
- package/dist/widget-utils/index.cjs.map +1 -1
- package/dist/widget-utils/index.d.cts +8 -6
- package/dist/widget-utils/index.d.cts.map +1 -0
- package/dist/widget-utils/{index.d.ts → index.d.mts} +8 -6
- package/dist/widget-utils/index.d.mts.map +1 -0
- package/dist/widget-utils/index.mjs +119 -0
- package/dist/widget-utils/index.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/chunk-2SPTFZRC.js +0 -72
- package/dist/chunk-2SPTFZRC.js.map +0 -1
- package/dist/chunk-3I5Y3PEO.js +0 -23
- package/dist/chunk-3I5Y3PEO.js.map +0 -1
- package/dist/chunk-3ZRE7GX6.js +0 -620
- package/dist/chunk-3ZRE7GX6.js.map +0 -1
- package/dist/chunk-45BCVWQK.cjs +0 -38
- package/dist/chunk-46PUWB7C.cjs +0 -69
- package/dist/chunk-46PUWB7C.cjs.map +0 -1
- package/dist/chunk-5NYM4UTW.cjs +0 -58
- package/dist/chunk-5NYM4UTW.cjs.map +0 -1
- package/dist/chunk-B2NTWEDF.cjs +0 -130
- package/dist/chunk-B2NTWEDF.cjs.map +0 -1
- package/dist/chunk-GDY76JA6.cjs +0 -153
- package/dist/chunk-GDY76JA6.cjs.map +0 -1
- package/dist/chunk-HGVSPZEL.cjs +0 -119
- package/dist/chunk-HGVSPZEL.cjs.map +0 -1
- package/dist/chunk-HIDJYVKJ.js +0 -54
- package/dist/chunk-HIDJYVKJ.js.map +0 -1
- package/dist/chunk-KTXGU7OP.cjs +0 -136
- package/dist/chunk-KTXGU7OP.cjs.map +0 -1
- package/dist/chunk-KW5E2H5T.js +0 -128
- package/dist/chunk-KW5E2H5T.js.map +0 -1
- package/dist/chunk-LBLHDGMT.js +0 -25
- package/dist/chunk-LBLHDGMT.js.map +0 -1
- package/dist/chunk-MNVDL4FX.js +0 -134
- package/dist/chunk-MNVDL4FX.js.map +0 -1
- package/dist/chunk-MOTOSPAO.cjs +0 -15
- package/dist/chunk-MOTOSPAO.cjs.map +0 -1
- package/dist/chunk-N2K6W7FX.cjs +0 -169
- package/dist/chunk-N2K6W7FX.cjs.map +0 -1
- package/dist/chunk-PFDBULOI.cjs +0 -665
- package/dist/chunk-PVTQWD4I.js +0 -166
- package/dist/chunk-PVTQWD4I.js.map +0 -1
- package/dist/chunk-SJQPHJL4.cjs +0 -26
- package/dist/chunk-SJQPHJL4.cjs.map +0 -1
- package/dist/chunk-TML66UEU.js +0 -13
- package/dist/chunk-TML66UEU.js.map +0 -1
- package/dist/chunk-U3CQLX2Z.cjs +0 -28
- package/dist/chunk-U3CQLX2Z.cjs.map +0 -1
- package/dist/chunk-UUNEVOA5.js +0 -36
- package/dist/chunk-UUNEVOA5.js.map +0 -1
- package/dist/chunk-VRF7QEID.js +0 -67
- package/dist/chunk-VRF7QEID.js.map +0 -1
- package/dist/chunk-VSZWXSQA.js +0 -38
- package/dist/chunk-VSZWXSQA.js.map +0 -1
- package/dist/chunk-WYOHFNNW.js +0 -117
- package/dist/chunk-WYOHFNNW.js.map +0 -1
- package/dist/chunk-YKF5ZFF5.js +0 -136
- package/dist/chunk-YKF5ZFF5.js.map +0 -1
- package/dist/chunk-YXJMBVXO.cjs +0 -76
- package/dist/chunk-YXJMBVXO.cjs.map +0 -1
- package/dist/chunk-ZA4AE7KF.cjs +0 -42
- package/dist/chunk-ZA4AE7KF.cjs.map +0 -1
- package/dist/data-sources/DataAwareWidget.d.ts +0 -30
- package/dist/data-sources/DataAwareWidget.js +0 -57
- package/dist/data-sources/DataAwareWidget.js.map +0 -1
- package/dist/data-sources/ErrorState.d.ts +0 -5
- package/dist/data-sources/ErrorState.js +0 -3
- package/dist/data-sources/ErrorState.js.map +0 -1
- package/dist/data-sources/context.d.ts +0 -16
- package/dist/data-sources/context.js +0 -3
- package/dist/data-sources/context.js.map +0 -1
- package/dist/data-sources/fetchers/api.d.ts +0 -8
- package/dist/data-sources/fetchers/api.js +0 -3
- package/dist/data-sources/fetchers/api.js.map +0 -1
- package/dist/data-sources/fetchers/custom.js +0 -3
- package/dist/data-sources/fetchers/custom.js.map +0 -1
- package/dist/data-sources/fetchers/static.js +0 -3
- package/dist/data-sources/fetchers/static.js.map +0 -1
- package/dist/data-sources/preview-context.d.ts +0 -11
- package/dist/data-sources/preview-context.js +0 -18
- package/dist/data-sources/preview-context.js.map +0 -1
- package/dist/data-sources/registry-context.d.ts +0 -41
- package/dist/data-sources/registry-context.js +0 -9
- package/dist/data-sources/registry-context.js.map +0 -1
- package/dist/data-sources/registry.d.ts +0 -17
- package/dist/data-sources/registry.js +0 -7
- package/dist/data-sources/registry.js.map +0 -1
- package/dist/data-sources/transformers.d.ts +0 -23
- package/dist/data-sources/transformers.js +0 -3
- package/dist/data-sources/transformers.js.map +0 -1
- package/dist/data-sources/types.cjs.map +0 -1
- package/dist/data-sources/types.d.ts +0 -157
- package/dist/data-sources/types.js +0 -3
- package/dist/data-sources/types.js.map +0 -1
- package/dist/data-sources/use-widget-data.d.ts +0 -16
- package/dist/data-sources/use-widget-data.js +0 -10
- package/dist/data-sources/use-widget-data.js.map +0 -1
- package/dist/registries/index.js +0 -144
- package/dist/registries/index.js.map +0 -1
- package/dist/shareable-item-DkgWpwoU.d.cts +0 -21
- package/dist/shareable-item-DkgWpwoU.d.ts +0 -21
- package/dist/shell/AppShellLayout.d.ts +0 -30
- package/dist/shell/AppShellLayout.js +0 -5
- package/dist/shell/AppShellLayout.js.map +0 -1
- package/dist/shell/ThemeModeContext.d.ts +0 -27
- package/dist/shell/ThemeModeContext.js +0 -3
- package/dist/shell/ThemeModeContext.js.map +0 -1
- package/dist/shell/index.cjs.map +0 -1
- package/dist/shell/index.d.ts +0 -43
- package/dist/shell/index.js +0 -76
- package/dist/shell/index.js.map +0 -1
- package/dist/shell/sidebar.js +0 -4
- package/dist/shell/sidebar.js.map +0 -1
- package/dist/shell/use-mobile.js +0 -3
- package/dist/shell/use-mobile.js.map +0 -1
- package/dist/theme/index.js +0 -611
- package/dist/theme/index.js.map +0 -1
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.d.ts +0 -268
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types-CNIhy4JD.d.cts +0 -83
- package/dist/types-CNIhy4JD.d.ts +0 -83
- package/dist/widget-utils/index.js +0 -111
- package/dist/widget-utils/index.js.map +0 -1
package/dist/chunk-HGVSPZEL.cjs
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/data-sources/fetchers/custom.ts
|
|
4
|
-
var SHAREABLE_ENDPOINTS = {
|
|
5
|
-
Medium: (id) => `/company/media/${id}`,
|
|
6
|
-
Page: (id) => `/company/pages/${id}`,
|
|
7
|
-
Library: (id) => `/company/libraries/${id}`,
|
|
8
|
-
Product: (id) => `/company/v1/products/${id}`,
|
|
9
|
-
EnrollmentPack: (id) => `/enrollment_packs/${id}`
|
|
10
|
-
};
|
|
11
|
-
function extractResourceData(json, shareableType) {
|
|
12
|
-
const resource = json.resource;
|
|
13
|
-
if (resource) {
|
|
14
|
-
const typeKey = shareableType.toLowerCase().replace("pack", "_pack");
|
|
15
|
-
if (resource[typeKey]) {
|
|
16
|
-
return resource[typeKey];
|
|
17
|
-
}
|
|
18
|
-
if (resource.product) return resource.product;
|
|
19
|
-
if (resource.enrollment_pack)
|
|
20
|
-
return resource.enrollment_pack;
|
|
21
|
-
}
|
|
22
|
-
const directKey = shareableType.toLowerCase().replace("pack", "_pack");
|
|
23
|
-
if (json[directKey]) {
|
|
24
|
-
return json[directKey];
|
|
25
|
-
}
|
|
26
|
-
if (json.data) return json.data;
|
|
27
|
-
if (json.medium) return json.medium;
|
|
28
|
-
if (json.page) return json.page;
|
|
29
|
-
if (json.library) return json.library;
|
|
30
|
-
if (json.product) return json.product;
|
|
31
|
-
if (json.enrollment_pack)
|
|
32
|
-
return json.enrollment_pack;
|
|
33
|
-
return json;
|
|
34
|
-
}
|
|
35
|
-
async function fetchSingleItem(item, signal, baseUrl = "", getApiHeaders) {
|
|
36
|
-
const getEndpoint = SHAREABLE_ENDPOINTS[item.shareableType];
|
|
37
|
-
if (!getEndpoint) {
|
|
38
|
-
return {
|
|
39
|
-
item,
|
|
40
|
-
data: null,
|
|
41
|
-
error: new Error(`Unknown shareable type: ${item.shareableType}`)
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const endpoint = `${baseUrl}${getEndpoint(item.id)}`;
|
|
45
|
-
try {
|
|
46
|
-
const response = await fetch(endpoint, {
|
|
47
|
-
method: "GET",
|
|
48
|
-
headers: {
|
|
49
|
-
...getApiHeaders?.(),
|
|
50
|
-
"Content-Type": "application/json"
|
|
51
|
-
},
|
|
52
|
-
signal
|
|
53
|
-
});
|
|
54
|
-
if (!response.ok) {
|
|
55
|
-
return {
|
|
56
|
-
item,
|
|
57
|
-
data: null,
|
|
58
|
-
error: new Error(
|
|
59
|
-
`Failed to fetch ${item.shareableType} with ID ${item.id}: ${response.status}`
|
|
60
|
-
)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const json = await response.json();
|
|
64
|
-
const resourceData = extractResourceData(json, item.shareableType);
|
|
65
|
-
if (resourceData && typeof resourceData === "object") {
|
|
66
|
-
resourceData.shareable_type = item.shareableType;
|
|
67
|
-
}
|
|
68
|
-
return { item, data: resourceData };
|
|
69
|
-
} catch (error) {
|
|
70
|
-
return {
|
|
71
|
-
item,
|
|
72
|
-
data: null,
|
|
73
|
-
error: error instanceof Error ? error : new Error(
|
|
74
|
-
`Unknown error fetching ${item.shareableType} ${item.id}`
|
|
75
|
-
)
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
async function customFetcher(source, context) {
|
|
80
|
-
const { selectedItems } = source;
|
|
81
|
-
if (!selectedItems || selectedItems.length === 0) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
const results = await Promise.all(
|
|
85
|
-
selectedItems.map(
|
|
86
|
-
(item) => fetchSingleItem(
|
|
87
|
-
item,
|
|
88
|
-
context.signal,
|
|
89
|
-
context.baseUrl,
|
|
90
|
-
context.getApiHeaders
|
|
91
|
-
)
|
|
92
|
-
)
|
|
93
|
-
);
|
|
94
|
-
const successfulData = [];
|
|
95
|
-
const errors = [];
|
|
96
|
-
for (const result of results) {
|
|
97
|
-
if (result.error) {
|
|
98
|
-
console.warn(
|
|
99
|
-
`[CustomFetcher] Failed to fetch ${result.item.shareableType} #${result.item.id}:`,
|
|
100
|
-
result.error.message
|
|
101
|
-
);
|
|
102
|
-
errors.push(result.error);
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
if (result.data) {
|
|
106
|
-
successfulData.push(result.data);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (successfulData.length === 0 && errors.length > 0) {
|
|
110
|
-
throw new Error(
|
|
111
|
-
`Failed to fetch all ${errors.length} item(s): ${errors[0]?.message || "Unknown error"}`
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
return successfulData;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
exports.customFetcher = customFetcher;
|
|
118
|
-
//# sourceMappingURL=chunk-HGVSPZEL.cjs.map
|
|
119
|
-
//# sourceMappingURL=chunk-HGVSPZEL.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-sources/fetchers/custom.ts"],"names":[],"mappings":"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","file":"chunk-HGVSPZEL.cjs","sourcesContent":["import type {\n CustomDataSource,\n DataSourceContext,\n SelectedItem,\n ShareableType,\n} from \"../types\";\n\n/**\n * Individual resource endpoints for each shareable type.\n * These fetch single items by ID from the company API.\n */\nconst SHAREABLE_ENDPOINTS: Record<\n ShareableType,\n (id: string | number) => string\n> = {\n Medium: (id) => `/company/media/${id}`,\n Page: (id) => `/company/pages/${id}`,\n Library: (id) => `/company/libraries/${id}`,\n Product: (id) => `/company/v1/products/${id}`,\n EnrollmentPack: (id) => `/enrollment_packs/${id}`,\n};\n\n/**\n * Extract the actual resource data from various API response structures.\n * Different endpoints wrap their data differently:\n * - Product: { status, resource: { product: {...} } }\n * - EnrollmentPack: { status, resource: { enrollment_pack: {...} } }\n * - Medium/Page/Library: Direct root or { medium: {...} }\n */\nfunction extractResourceData(\n json: Record<string, unknown>,\n shareableType: ShareableType,\n): Record<string, unknown> {\n // Try nested resource structure first (Product, EnrollmentPack)\n const resource = json.resource as Record<string, unknown> | undefined;\n if (resource) {\n // Check for type-specific key within resource\n const typeKey = shareableType.toLowerCase().replace(\"pack\", \"_pack\");\n if (resource[typeKey]) {\n return resource[typeKey] as Record<string, unknown>;\n }\n // Check common keys\n if (resource.product) return resource.product as Record<string, unknown>;\n if (resource.enrollment_pack)\n return resource.enrollment_pack as Record<string, unknown>;\n }\n\n // Try direct type key (e.g., { medium: {...} })\n const directKey = shareableType.toLowerCase().replace(\"pack\", \"_pack\");\n if (json[directKey]) {\n return json[directKey] as Record<string, unknown>;\n }\n\n // Try common response shapes\n if (json.data) return json.data as Record<string, unknown>;\n if (json.medium) return json.medium as Record<string, unknown>;\n if (json.page) return json.page as Record<string, unknown>;\n if (json.library) return json.library as Record<string, unknown>;\n if (json.product) return json.product as Record<string, unknown>;\n if (json.enrollment_pack)\n return json.enrollment_pack as Record<string, unknown>;\n\n // Return as-is if no wrapper found (Library uses direct serialization)\n return json;\n}\n\n/**\n * Result from fetching a single shareable item\n */\ninterface FetchResult {\n item: SelectedItem;\n data: unknown;\n error?: Error;\n}\n\n/**\n * Fetch a single shareable item by ID from the individual resource endpoint.\n */\nasync function fetchSingleItem(\n item: SelectedItem,\n signal: AbortSignal,\n baseUrl: string = \"\",\n getApiHeaders?: () => Record<string, string>,\n): Promise<FetchResult> {\n const getEndpoint = SHAREABLE_ENDPOINTS[item.shareableType];\n if (!getEndpoint) {\n return {\n item,\n data: null,\n error: new Error(`Unknown shareable type: ${item.shareableType}`),\n };\n }\n\n const endpoint = `${baseUrl}${getEndpoint(item.id)}`;\n\n try {\n const response = await fetch(endpoint, {\n method: \"GET\",\n headers: {\n ...getApiHeaders?.(),\n \"Content-Type\": \"application/json\",\n },\n signal,\n });\n\n if (!response.ok) {\n return {\n item,\n data: null,\n error: new Error(\n `Failed to fetch ${item.shareableType} with ID ${item.id}: ${response.status}`,\n ),\n };\n }\n\n const json = await response.json();\n\n // Extract the actual resource data from the response wrapper\n const resourceData = extractResourceData(json, item.shareableType);\n\n // Add shareable_type to the response for transformer compatibility\n if (resourceData && typeof resourceData === \"object\") {\n (resourceData as Record<string, unknown>).shareable_type =\n item.shareableType;\n }\n\n return { item, data: resourceData };\n } catch (error) {\n return {\n item,\n data: null,\n error:\n error instanceof Error\n ? error\n : new Error(\n `Unknown error fetching ${item.shareableType} ${item.id}`,\n ),\n };\n }\n}\n\n/**\n * Custom fetcher that fetches selected items.\n *\n * Fetches items from individual resource endpoints using the configured\n * getApiHeaders for authentication.\n *\n * Fetches all items in parallel for performance.\n * Returns an array of successfully fetched items, preserving order.\n * Logs warnings for failed fetches but doesn't throw.\n */\nexport async function customFetcher(\n source: CustomDataSource,\n context: DataSourceContext,\n): Promise<unknown[]> {\n const { selectedItems } = source;\n if (!selectedItems || selectedItems.length === 0) {\n return [];\n }\n\n // Fallback: fetch from individual endpoints (no auth)\n const results = await Promise.all(\n selectedItems.map((item) =>\n fetchSingleItem(\n item,\n context.signal,\n context.baseUrl,\n context.getApiHeaders,\n ),\n ),\n );\n\n // Process results, collecting successful data and tracking errors\n const successfulData: unknown[] = [];\n const errors: Error[] = [];\n\n for (const result of results) {\n if (result.error) {\n console.warn(\n `[CustomFetcher] Failed to fetch ${result.item.shareableType} #${result.item.id}:`,\n result.error.message,\n );\n errors.push(result.error);\n continue;\n }\n\n if (result.data) {\n successfulData.push(result.data);\n }\n }\n\n // Throw error if all fetches failed\n if (successfulData.length === 0 && errors.length > 0) {\n throw new Error(\n `Failed to fetch all ${errors.length} item(s): ${errors[0]?.message || \"Unknown error\"}`,\n );\n }\n\n return successfulData;\n}\n"]}
|
package/dist/chunk-HIDJYVKJ.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
// src/shell/use-mobile.ts
|
|
4
|
-
var MOBILE_BREAKPOINT = 768;
|
|
5
|
-
var TABLET_BREAKPOINT = 1024;
|
|
6
|
-
function useIsMobile() {
|
|
7
|
-
const [isMobile, setIsMobile] = useState(false);
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
10
|
-
const onChange = () => {
|
|
11
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
12
|
-
};
|
|
13
|
-
mql.addEventListener("change", onChange);
|
|
14
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
15
|
-
return () => mql.removeEventListener("change", onChange);
|
|
16
|
-
}, []);
|
|
17
|
-
return isMobile;
|
|
18
|
-
}
|
|
19
|
-
function useIsTablet() {
|
|
20
|
-
const [isTablet, setIsTablet] = useState(false);
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
const mql = window.matchMedia(
|
|
23
|
-
`(min-width: ${MOBILE_BREAKPOINT}px) and (max-width: ${TABLET_BREAKPOINT - 1}px)`
|
|
24
|
-
);
|
|
25
|
-
const onChange = () => {
|
|
26
|
-
setIsTablet(
|
|
27
|
-
window.innerWidth >= MOBILE_BREAKPOINT && window.innerWidth < TABLET_BREAKPOINT
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
mql.addEventListener("change", onChange);
|
|
31
|
-
setIsTablet(
|
|
32
|
-
window.innerWidth >= MOBILE_BREAKPOINT && window.innerWidth < TABLET_BREAKPOINT
|
|
33
|
-
);
|
|
34
|
-
return () => mql.removeEventListener("change", onChange);
|
|
35
|
-
}, []);
|
|
36
|
-
return isTablet;
|
|
37
|
-
}
|
|
38
|
-
function useIsMobileOrTablet() {
|
|
39
|
-
const [isMobileOrTablet, setIsMobileOrTablet] = useState(false);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
const mql = window.matchMedia(`(max-width: ${TABLET_BREAKPOINT - 1}px)`);
|
|
42
|
-
const onChange = () => {
|
|
43
|
-
setIsMobileOrTablet(window.innerWidth < TABLET_BREAKPOINT);
|
|
44
|
-
};
|
|
45
|
-
mql.addEventListener("change", onChange);
|
|
46
|
-
setIsMobileOrTablet(window.innerWidth < TABLET_BREAKPOINT);
|
|
47
|
-
return () => mql.removeEventListener("change", onChange);
|
|
48
|
-
}, []);
|
|
49
|
-
return isMobileOrTablet;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export { useIsMobile, useIsMobileOrTablet, useIsTablet };
|
|
53
|
-
//# sourceMappingURL=chunk-HIDJYVKJ.js.map
|
|
54
|
-
//# sourceMappingURL=chunk-HIDJYVKJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shell/use-mobile.ts"],"names":[],"mappings":";;;AAEA,IAAM,iBAAA,GAAoB,GAAA;AAC1B,IAAM,iBAAA,GAAoB,IAAA;AAEnB,SAAS,WAAA,GAAc;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACjD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,WAAA,GAAc;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA;AAAA,MACjB,CAAA,YAAA,EAAe,iBAAiB,CAAA,oBAAA,EAAuB,iBAAA,GAAoB,CAAC,CAAA,GAAA;AAAA,KAC9E;AACA,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA;AAAA,QACE,MAAA,CAAO,UAAA,IAAc,iBAAA,IACnB,MAAA,CAAO,UAAA,GAAa;AAAA,OACxB;AAAA,IACF,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA;AAAA,MACE,MAAA,CAAO,UAAA,IAAc,iBAAA,IACnB,MAAA,CAAO,UAAA,GAAa;AAAA,KACxB;AACA,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEvE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,mBAAA,CAAoB,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,IAC3D,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,mBAAA,CAAoB,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACzD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,gBAAA;AACT","file":"chunk-HIDJYVKJ.js","sourcesContent":["import { useState, useEffect } from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\nconst TABLET_BREAKPOINT = 1024;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isMobile;\n}\n\nexport function useIsTablet() {\n const [isTablet, setIsTablet] = useState<boolean>(false);\n\n useEffect(() => {\n const mql = window.matchMedia(\n `(min-width: ${MOBILE_BREAKPOINT}px) and (max-width: ${TABLET_BREAKPOINT - 1}px)`,\n );\n const onChange = () => {\n setIsTablet(\n window.innerWidth >= MOBILE_BREAKPOINT &&\n window.innerWidth < TABLET_BREAKPOINT,\n );\n };\n mql.addEventListener(\"change\", onChange);\n setIsTablet(\n window.innerWidth >= MOBILE_BREAKPOINT &&\n window.innerWidth < TABLET_BREAKPOINT,\n );\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isTablet;\n}\n\nexport function useIsMobileOrTablet() {\n const [isMobileOrTablet, setIsMobileOrTablet] = useState<boolean>(false);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${TABLET_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobileOrTablet(window.innerWidth < TABLET_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobileOrTablet(window.innerWidth < TABLET_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isMobileOrTablet;\n}\n"]}
|
package/dist/chunk-KTXGU7OP.cjs
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkZA4AE7KF_cjs = require('./chunk-ZA4AE7KF.cjs');
|
|
4
|
-
var reactQuery = require('@tanstack/react-query');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
|
|
7
|
-
function getSourceKey(source) {
|
|
8
|
-
if (source.type === "api") {
|
|
9
|
-
const varsKey = source.variables ? `:${JSON.stringify(source.variables)}` : "";
|
|
10
|
-
return `${source.endpoint}${varsKey}`;
|
|
11
|
-
}
|
|
12
|
-
if (source.type === "custom") {
|
|
13
|
-
const itemKeys = source.selectedItems?.map((item) => {
|
|
14
|
-
return `${item.shareableType}:${item.id}`;
|
|
15
|
-
}) ?? [];
|
|
16
|
-
return `custom:${itemKeys.join(",")}`;
|
|
17
|
-
}
|
|
18
|
-
if (source.type === "static") {
|
|
19
|
-
return `static:${source.staticType}:${source.selectedId}`;
|
|
20
|
-
}
|
|
21
|
-
return "unknown";
|
|
22
|
-
}
|
|
23
|
-
function resolvePropsFromQueries(queryResults, sources, errorConfig) {
|
|
24
|
-
if (sources.length === 0) return void 0;
|
|
25
|
-
if (queryResults.some((q) => q.isLoading && !q.data)) return void 0;
|
|
26
|
-
const failedQuery = queryResults.find((q) => q.error);
|
|
27
|
-
const hasError = !!failedQuery?.error;
|
|
28
|
-
if (hasError && errorConfig?.fallback) {
|
|
29
|
-
return errorConfig.fallback;
|
|
30
|
-
}
|
|
31
|
-
if (hasError) {
|
|
32
|
-
return void 0;
|
|
33
|
-
}
|
|
34
|
-
const resolvedProps = {};
|
|
35
|
-
for (const query of queryResults) {
|
|
36
|
-
if (!query.data) continue;
|
|
37
|
-
const { source, result } = query.data;
|
|
38
|
-
if (!source?.targetProps) continue;
|
|
39
|
-
if (result !== null && typeof result === "object" && !Array.isArray(result) && source.targetProps.length > 1) {
|
|
40
|
-
const resultObj = result;
|
|
41
|
-
for (const prop of source.targetProps) {
|
|
42
|
-
if (prop in resultObj) {
|
|
43
|
-
resolvedProps[prop] = resultObj[prop];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
} else {
|
|
47
|
-
for (const prop of source.targetProps) {
|
|
48
|
-
resolvedProps[prop] = result;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return resolvedProps;
|
|
53
|
-
}
|
|
54
|
-
function useWidgetData(widget, options) {
|
|
55
|
-
const config = chunkZA4AE7KF_cjs.useDataSourceRegistryConfig();
|
|
56
|
-
const registry = options?.registry ?? config.registry;
|
|
57
|
-
const baseUrl = options?.baseUrl ?? config.baseUrl;
|
|
58
|
-
const getApiHeaders = config.getApiHeaders;
|
|
59
|
-
const variables = config.variables;
|
|
60
|
-
const sources = widget.dataSource?.sources ?? [];
|
|
61
|
-
const errorConfig = widget.dataSource?.error;
|
|
62
|
-
const widgetId = widget.id ?? "unknown";
|
|
63
|
-
const widgetType = widget.type;
|
|
64
|
-
const queryResultsRef = react.useRef([]);
|
|
65
|
-
const results = reactQuery.useQueries({
|
|
66
|
-
queries: sources.map((source) => ({
|
|
67
|
-
queryKey: [
|
|
68
|
-
"rep-widget-data",
|
|
69
|
-
getSourceKey(source),
|
|
70
|
-
baseUrl,
|
|
71
|
-
variables
|
|
72
|
-
],
|
|
73
|
-
queryFn: async ({
|
|
74
|
-
signal
|
|
75
|
-
}) => {
|
|
76
|
-
const context = {
|
|
77
|
-
widgetId,
|
|
78
|
-
widgetType,
|
|
79
|
-
signal,
|
|
80
|
-
baseUrl,
|
|
81
|
-
getApiHeaders,
|
|
82
|
-
variables
|
|
83
|
-
};
|
|
84
|
-
const fetcher = registry.fetchers[source.type];
|
|
85
|
-
if (!fetcher) {
|
|
86
|
-
throw new Error(
|
|
87
|
-
`No fetcher registered for source type: ${source.type}`
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
const rawData = await fetcher(source, context);
|
|
91
|
-
let result = rawData;
|
|
92
|
-
if (source.transform) {
|
|
93
|
-
const transformer = registry.transformers[source.transform];
|
|
94
|
-
if (transformer) {
|
|
95
|
-
result = transformer(result, source);
|
|
96
|
-
} else {
|
|
97
|
-
console.warn(
|
|
98
|
-
`Transform "${source.transform}" not found in registry`
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return { source, result };
|
|
103
|
-
},
|
|
104
|
-
enabled: sources.length > 0,
|
|
105
|
-
retry: errorConfig?.retryCount ?? 0,
|
|
106
|
-
retryDelay: errorConfig?.retryDelay ?? 1e3,
|
|
107
|
-
refetchInterval: source.refreshInterval || false
|
|
108
|
-
}))
|
|
109
|
-
});
|
|
110
|
-
queryResultsRef.current = results;
|
|
111
|
-
const isLoading = results.some((q) => q.isLoading);
|
|
112
|
-
const failedQuery = results.find((q) => q.error);
|
|
113
|
-
const error = failedQuery?.error instanceof Error ? failedQuery.error : failedQuery?.error ? new Error(String(failedQuery.error)) : null;
|
|
114
|
-
const data = resolvePropsFromQueries(
|
|
115
|
-
results.map((q) => ({
|
|
116
|
-
data: q.data,
|
|
117
|
-
isLoading: q.isLoading,
|
|
118
|
-
error: q.error instanceof Error ? q.error : null
|
|
119
|
-
})),
|
|
120
|
-
sources,
|
|
121
|
-
errorConfig
|
|
122
|
-
);
|
|
123
|
-
const refetch = react.useCallback(() => {
|
|
124
|
-
queryResultsRef.current.forEach((q) => q.refetch());
|
|
125
|
-
}, []);
|
|
126
|
-
return {
|
|
127
|
-
data,
|
|
128
|
-
isLoading,
|
|
129
|
-
error,
|
|
130
|
-
refetch
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
exports.useWidgetData = useWidgetData;
|
|
135
|
-
//# sourceMappingURL=chunk-KTXGU7OP.cjs.map
|
|
136
|
-
//# sourceMappingURL=chunk-KTXGU7OP.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-sources/use-widget-data.ts"],"names":["useDataSourceRegistryConfig","useRef","useQueries","useCallback"],"mappings":"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","file":"chunk-KTXGU7OP.cjs","sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useCallback, useRef } from \"react\";\nimport type { WidgetSchema } from \"../types/widget-schema\";\nimport type {\n DataSourceRegistry,\n WidgetDataResult,\n DataSourceContext,\n DataSource,\n} from \"./types\";\nimport { useDataSourceRegistryConfig } from \"./registry-context\";\n\ninterface UseWidgetDataOptions {\n /** Override the default registry from context */\n registry?: DataSourceRegistry | undefined;\n /** Base URL for API calls (e.g., \"https://api.fluid.app/api\") */\n baseUrl?: string | undefined;\n}\n\n/** Result shape from a single source query */\ninterface SourceQueryResult {\n source: DataSource;\n result: unknown;\n}\n\n/**\n * Generates a unique key for a data source to use in query caching.\n */\nfunction getSourceKey(source: DataSource): string {\n if (source.type === \"api\") {\n const varsKey = source.variables\n ? `:${JSON.stringify(source.variables)}`\n : \"\";\n return `${source.endpoint}${varsKey}`;\n }\n if (source.type === \"custom\") {\n const itemKeys =\n source.selectedItems?.map((item) => {\n return `${item.shareableType}:${item.id}`;\n }) ?? [];\n return `custom:${itemKeys.join(\",\")}`;\n }\n if (source.type === \"static\") {\n return `static:${source.staticType}:${source.selectedId}`;\n }\n return \"unknown\";\n}\n\n/**\n * Resolves query results into widget props by mapping each source's result\n * to its target props.\n */\nfunction resolvePropsFromQueries<T>(\n queryResults: ReadonlyArray<{\n data?: SourceQueryResult | undefined;\n isLoading: boolean;\n error: Error | null;\n }>,\n sources: DataSource[],\n errorConfig?: { fallback?: unknown },\n): T | undefined {\n if (sources.length === 0) return undefined;\n if (queryResults.some((q) => q.isLoading && !q.data)) return undefined;\n\n const failedQuery = queryResults.find((q) => q.error);\n const hasError = !!failedQuery?.error;\n\n if (hasError && errorConfig?.fallback) {\n return errorConfig.fallback as T;\n }\n\n if (hasError) {\n return undefined;\n }\n\n const resolvedProps: Record<string, unknown> = {};\n\n for (const query of queryResults) {\n if (!query.data) continue;\n const { source, result } = query.data;\n\n // Sentry fix: FLUID-ADMIN-1DH — source or targetProps can be undefined from malformed widget config\n if (!source?.targetProps) continue;\n\n if (\n result !== null &&\n typeof result === \"object\" &&\n !Array.isArray(result) &&\n source.targetProps.length > 1\n ) {\n const resultObj = result as Record<string, unknown>;\n for (const prop of source.targetProps) {\n if (prop in resultObj) {\n resolvedProps[prop] = resultObj[prop];\n }\n }\n } else {\n for (const prop of source.targetProps) {\n resolvedProps[prop] = result;\n }\n }\n }\n\n return resolvedProps as T;\n}\n\n/**\n * Hook that fetches and resolves data sources for a widget using React Query.\n */\nexport function useWidgetData<T = Record<string, unknown>>(\n widget: WidgetSchema,\n options?: UseWidgetDataOptions,\n): WidgetDataResult<T> {\n const config = useDataSourceRegistryConfig();\n const registry = options?.registry ?? config.registry;\n const baseUrl = options?.baseUrl ?? config.baseUrl;\n const getApiHeaders = config.getApiHeaders;\n const variables = config.variables;\n\n const sources = widget.dataSource?.sources ?? [];\n const errorConfig = widget.dataSource?.error;\n const widgetId = widget.id ?? \"unknown\";\n const widgetType = widget.type;\n\n const queryResultsRef = useRef<Array<{ refetch: () => void }>>([]);\n\n const results = useQueries({\n queries: sources.map((source: DataSource) => ({\n queryKey: [\n \"rep-widget-data\",\n getSourceKey(source),\n baseUrl,\n variables,\n ] as const,\n queryFn: async ({\n signal,\n }: {\n signal: AbortSignal;\n }): Promise<SourceQueryResult> => {\n const context: DataSourceContext = {\n widgetId,\n widgetType,\n signal,\n baseUrl,\n getApiHeaders,\n variables,\n };\n\n const fetcher = registry.fetchers[source.type];\n if (!fetcher) {\n throw new Error(\n `No fetcher registered for source type: ${source.type}`,\n );\n }\n\n const rawData = await fetcher(source, context);\n\n // Apply transform\n let result = rawData;\n if (source.transform) {\n const transformer = registry.transformers[source.transform];\n if (transformer) {\n result = transformer(result, source);\n } else {\n console.warn(\n `Transform \"${source.transform}\" not found in registry`,\n );\n }\n }\n return { source, result };\n },\n enabled: sources.length > 0,\n retry: errorConfig?.retryCount ?? 0,\n retryDelay: errorConfig?.retryDelay ?? 1000,\n refetchInterval: source.refreshInterval || false,\n })),\n });\n\n // Update ref for refetch callback\n queryResultsRef.current = results;\n\n // Aggregate loading state\n const isLoading = results.some((q) => q.isLoading);\n\n // Get first error from any failed query\n const failedQuery = results.find((q) => q.error);\n const error =\n failedQuery?.error instanceof Error\n ? failedQuery.error\n : failedQuery?.error\n ? new Error(String(failedQuery.error))\n : null;\n\n // Resolve data from all queries\n const data = resolvePropsFromQueries<T>(\n results.map((q) => ({\n data: q.data as SourceQueryResult | undefined,\n isLoading: q.isLoading,\n error: q.error instanceof Error ? q.error : null,\n })),\n sources,\n errorConfig,\n );\n\n // Stable refetch callback using ref\n const refetch = useCallback(() => {\n queryResultsRef.current.forEach((q) => q.refetch());\n }, []);\n\n return {\n data,\n isLoading,\n error,\n refetch,\n };\n}\n"]}
|
package/dist/chunk-KW5E2H5T.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
// src/data-sources/transformers.ts
|
|
2
|
-
function extractImageUrl(d) {
|
|
3
|
-
if (d.image_url) return d.image_url;
|
|
4
|
-
if (d.imageUrl) return d.imageUrl;
|
|
5
|
-
if (d.thumbnail_url) return d.thumbnail_url;
|
|
6
|
-
if (d.src) return d.src;
|
|
7
|
-
const images = d.images;
|
|
8
|
-
if (images && images.length > 0) {
|
|
9
|
-
const firstImage = images[0];
|
|
10
|
-
if (firstImage?.image_url) return firstImage.image_url;
|
|
11
|
-
if (firstImage?.url) return firstImage.url;
|
|
12
|
-
}
|
|
13
|
-
const libraryItems = d.library_items;
|
|
14
|
-
if (libraryItems && libraryItems.length > 0) {
|
|
15
|
-
const firstItem = libraryItems[0];
|
|
16
|
-
const relateable = firstItem?.relateable;
|
|
17
|
-
if (relateable?.image_url) return relateable.image_url;
|
|
18
|
-
if (relateable?.imageUrl) return relateable.imageUrl;
|
|
19
|
-
if (relateable?.thumbnail_url) return relateable.thumbnail_url;
|
|
20
|
-
}
|
|
21
|
-
return "";
|
|
22
|
-
}
|
|
23
|
-
function extractDescription(d) {
|
|
24
|
-
const desc = d.description ?? d.stripped ?? d.stripped_description ?? d.body ?? "";
|
|
25
|
-
if (typeof desc === "object" && desc !== null && "body" in desc) {
|
|
26
|
-
return desc.body ?? "";
|
|
27
|
-
}
|
|
28
|
-
return desc;
|
|
29
|
-
}
|
|
30
|
-
function extractCustomWidgetConfig(d, source) {
|
|
31
|
-
if (source === void 0 || source.type !== "custom") return {};
|
|
32
|
-
const selectedItem = source.selectedItems.find(
|
|
33
|
-
(s) => String(s.id) === String(d.id)
|
|
34
|
-
);
|
|
35
|
-
return selectedItem?.widgetConfig ?? {};
|
|
36
|
-
}
|
|
37
|
-
var toImagePropsFromShareable = (data) => {
|
|
38
|
-
const item = Array.isArray(data) ? data[0] : data;
|
|
39
|
-
if (!item || typeof item !== "object") {
|
|
40
|
-
return { src: "", alt: "Image", objectFit: "cover" };
|
|
41
|
-
}
|
|
42
|
-
const d = item;
|
|
43
|
-
return {
|
|
44
|
-
src: extractImageUrl(d),
|
|
45
|
-
alt: d.title ?? d.name ?? d.alt ?? "Image",
|
|
46
|
-
objectFit: "cover"
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
var toVideoPropsFromShareable = (data) => {
|
|
50
|
-
const item = Array.isArray(data) ? data[0] : data;
|
|
51
|
-
if (!item || typeof item !== "object") {
|
|
52
|
-
return { src: "", poster: "", caption: "" };
|
|
53
|
-
}
|
|
54
|
-
const d = item;
|
|
55
|
-
return {
|
|
56
|
-
src: (d.video_url ?? d.videoUrl ?? d.src) || "",
|
|
57
|
-
poster: extractImageUrl(d),
|
|
58
|
-
caption: d.title ?? d.name ?? d.caption ?? ""
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
var toShareableProps = (data, source) => {
|
|
62
|
-
if (!Array.isArray(data)) return [];
|
|
63
|
-
return data.map((item) => {
|
|
64
|
-
const d = item;
|
|
65
|
-
const widgetConfig = extractCustomWidgetConfig(d, source);
|
|
66
|
-
return {
|
|
67
|
-
id: d.id,
|
|
68
|
-
title: d.title ?? d.name ?? "",
|
|
69
|
-
description: extractDescription(d),
|
|
70
|
-
imageUrl: extractImageUrl(d),
|
|
71
|
-
videoUrl: (d.video_url ?? d.videoUrl) || null,
|
|
72
|
-
shareableType: d.type ?? d.relateable_type ?? d.shareableType ?? "",
|
|
73
|
-
kind: d.kind ?? "image",
|
|
74
|
-
status: d.status ?? "active",
|
|
75
|
-
wholesalePrice: d.display_wholesale_price ?? d.wholesale_price ?? null,
|
|
76
|
-
subscriptionPrice: d.subscription_price ?? null,
|
|
77
|
-
outOfStock: d.out_of_stock ?? false,
|
|
78
|
-
lowInStock: d.low_in_stock ?? false,
|
|
79
|
-
...d,
|
|
80
|
-
...widgetConfig
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
var toCarouselSlidesFromShareables = (data, source) => {
|
|
85
|
-
if (!Array.isArray(data)) return [];
|
|
86
|
-
return data.map((item, index) => {
|
|
87
|
-
const d = item;
|
|
88
|
-
const widgetConfig = extractCustomWidgetConfig(d, source);
|
|
89
|
-
const imageUrl = extractImageUrl(d);
|
|
90
|
-
const isVideo = d.kind === "video" || d.videoUrl || d.video_url;
|
|
91
|
-
const title = d.title ?? d.name ?? "";
|
|
92
|
-
const content = isVideo ? {
|
|
93
|
-
type: "VideoWidget",
|
|
94
|
-
props: {
|
|
95
|
-
src: (d.videoUrl ?? d.video_url) || "",
|
|
96
|
-
poster: imageUrl,
|
|
97
|
-
caption: title
|
|
98
|
-
}
|
|
99
|
-
} : {
|
|
100
|
-
type: "ImageWidget",
|
|
101
|
-
props: {
|
|
102
|
-
src: imageUrl,
|
|
103
|
-
alt: title || "Slide image",
|
|
104
|
-
objectFit: "cover"
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
const baseSlide = {
|
|
108
|
-
id: String(d.id ?? `slide-${index}`),
|
|
109
|
-
content,
|
|
110
|
-
title,
|
|
111
|
-
description: extractDescription(d)
|
|
112
|
-
};
|
|
113
|
-
return {
|
|
114
|
-
...baseSlide,
|
|
115
|
-
...widgetConfig
|
|
116
|
-
};
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
var WIDGET_TRANSFORMERS = {
|
|
120
|
-
toShareableProps,
|
|
121
|
-
toCarouselSlidesFromShareables,
|
|
122
|
-
toImagePropsFromShareable,
|
|
123
|
-
toVideoPropsFromShareable
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
export { WIDGET_TRANSFORMERS };
|
|
127
|
-
//# sourceMappingURL=chunk-KW5E2H5T.js.map
|
|
128
|
-
//# sourceMappingURL=chunk-KW5E2H5T.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-sources/transformers.ts"],"names":[],"mappings":"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","file":"chunk-KW5E2H5T.js","sourcesContent":["/**\n * Widget Transformers\n *\n * Transform functions that map API response data to widget-specific prop shapes.\n * Each widget has one transformer that handles all data structure variants:\n * - Standard: Direct field name match\n * - Legacy: Different field names that need mapping\n * - Minimal: Bare minimum fields that need defaults\n *\n * Usage:\n * 1. Transformers are registered in the DataSourceRegistry\n * 2. Reference by name in ApiDataSource.transform\n * 3. Applied after resultPath extraction, before targetProps assignment\n */\n\nimport type { DataTransformer, DataSource } from \"./types\";\n\n/**\n * Helper to extract image URL from various API response structures.\n * Handles:\n * - Flat fields (Medium, Page, Product): image_url, imageUrl, thumbnail_url, src\n * - Nested images array (EnrollmentPack): images[0].image_url\n * - Nested library_items (Library): library_items[0].relateable.image_url\n */\nfunction extractImageUrl(d: Record<string, unknown>): string {\n // Try flat fields first (Medium, Page, Product)\n if (d.image_url) return d.image_url as string;\n if (d.imageUrl) return d.imageUrl as string;\n if (d.thumbnail_url) return d.thumbnail_url as string;\n if (d.src) return d.src as string;\n\n // Try nested images array (EnrollmentPack)\n const images = d.images as Array<Record<string, unknown>> | undefined;\n if (images && images.length > 0) {\n const firstImage = images[0];\n if (firstImage?.image_url) return firstImage.image_url as string;\n if (firstImage?.url) return firstImage.url as string;\n }\n\n // Try nested library_items (Library/Playlist)\n const libraryItems = d.library_items as\n | Array<Record<string, unknown>>\n | undefined;\n if (libraryItems && libraryItems.length > 0) {\n const firstItem = libraryItems[0];\n const relateable = firstItem?.relateable as\n | Record<string, unknown>\n | undefined;\n if (relateable?.image_url) return relateable.image_url as string;\n if (relateable?.imageUrl) return relateable.imageUrl as string;\n if (relateable?.thumbnail_url) return relateable.thumbnail_url as string;\n }\n\n return \"\";\n}\n\n/**\n * Helper to extract description from various API response structures.\n * Handles different field names across endpoints.\n */\nfunction extractDescription(d: Record<string, unknown>): string {\n // Try various description field names\n const desc =\n d.description ?? d.stripped ?? d.stripped_description ?? d.body ?? \"\";\n\n // Handle nested description object (some APIs return { body: \"...\" })\n if (typeof desc === \"object\" && desc !== null && \"body\" in desc) {\n return ((desc as Record<string, unknown>).body as string) ?? \"\";\n }\n\n return desc as string;\n}\n\n/**\n * Helper to extract custom widget config from a selected item.\n */\nfunction extractCustomWidgetConfig(\n d: Record<string, unknown>,\n source: DataSource | undefined,\n): Record<string, unknown> {\n if (source === undefined || source.type !== \"custom\") return {};\n\n const selectedItem = source.selectedItems.find(\n (s) => String(s.id) === String(d.id),\n );\n return selectedItem?.widgetConfig ?? {};\n}\n\n/**\n * ImageWidget transformer from shareable data\n */\nconst toImagePropsFromShareable: DataTransformer = (data) => {\n const item = Array.isArray(data) ? data[0] : data;\n if (!item || typeof item !== \"object\") {\n return { src: \"\", alt: \"Image\", objectFit: \"cover\" };\n }\n\n const d = item as Record<string, unknown>;\n return {\n src: extractImageUrl(d),\n alt: (d.title ?? d.name ?? d.alt ?? \"Image\") as string,\n objectFit: \"cover\" as const,\n };\n};\n\n/**\n * VideoWidget transformer from shareable data\n */\nconst toVideoPropsFromShareable: DataTransformer = (data) => {\n const item = Array.isArray(data) ? data[0] : data;\n if (!item || typeof item !== \"object\") {\n return { src: \"\", poster: \"\", caption: \"\" };\n }\n\n const d = item as Record<string, unknown>;\n return {\n src: ((d.video_url ?? d.videoUrl ?? d.src) as string) || \"\",\n poster: extractImageUrl(d),\n caption: (d.title ?? d.name ?? d.caption ?? \"\") as string,\n };\n};\n\n/**\n * Shareable content transformer\n * Normalizes shareable API responses to a consistent format\n */\nconst toShareableProps: DataTransformer = (data, source) => {\n if (!Array.isArray(data)) return [];\n\n return data.map((item: unknown) => {\n const d = item as Record<string, unknown>;\n\n const widgetConfig = extractCustomWidgetConfig(d, source);\n\n return {\n id: d.id,\n title: (d.title ?? d.name ?? \"\") as string,\n description: extractDescription(d),\n imageUrl: extractImageUrl(d),\n videoUrl: ((d.video_url ?? d.videoUrl) as string) || null,\n shareableType: (d.type ??\n d.relateable_type ??\n d.shareableType ??\n \"\") as string,\n kind: (d.kind ?? \"image\") as string,\n status: (d.status ?? \"active\") as string,\n wholesalePrice: d.display_wholesale_price ?? d.wholesale_price ?? null,\n subscriptionPrice: d.subscription_price ?? null,\n outOfStock: d.out_of_stock ?? false,\n lowInStock: d.low_in_stock ?? false,\n ...d,\n ...widgetConfig,\n };\n });\n};\n\n/**\n * Carousel slides from shareables transformer\n */\nconst toCarouselSlidesFromShareables: DataTransformer = (data, source) => {\n if (!Array.isArray(data)) return [];\n\n return data.map((item: unknown, index: number) => {\n const d = item as Record<string, unknown>;\n\n const widgetConfig = extractCustomWidgetConfig(d, source);\n\n const imageUrl = extractImageUrl(d);\n const isVideo = d.kind === \"video\" || d.videoUrl || d.video_url;\n const title = (d.title ?? d.name ?? \"\") as string;\n\n const content = isVideo\n ? {\n type: \"VideoWidget\",\n props: {\n src: ((d.videoUrl ?? d.video_url) as string) || \"\",\n poster: imageUrl,\n caption: title,\n },\n }\n : {\n type: \"ImageWidget\",\n props: {\n src: imageUrl,\n alt: title || \"Slide image\",\n objectFit: \"cover\",\n },\n };\n\n const baseSlide = {\n id: String(d.id ?? `slide-${index}`),\n content,\n title,\n description: extractDescription(d),\n };\n\n return {\n ...baseSlide,\n ...widgetConfig,\n };\n });\n};\n\n/**\n * All widget transformers bundled for registration\n */\nexport const WIDGET_TRANSFORMERS: Record<string, DataTransformer> = {\n toShareableProps,\n toCarouselSlidesFromShareables,\n toImagePropsFromShareable,\n toVideoPropsFromShareable,\n};\n"]}
|
package/dist/chunk-LBLHDGMT.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { apiFetcher } from './chunk-VRF7QEID.js';
|
|
2
|
-
import { customFetcher } from './chunk-WYOHFNNW.js';
|
|
3
|
-
import { staticFetcher } from './chunk-PVTQWD4I.js';
|
|
4
|
-
import { WIDGET_TRANSFORMERS } from './chunk-KW5E2H5T.js';
|
|
5
|
-
|
|
6
|
-
// src/data-sources/registry.ts
|
|
7
|
-
function createDataSourceRegistry(options) {
|
|
8
|
-
return {
|
|
9
|
-
fetchers: {
|
|
10
|
-
api: apiFetcher,
|
|
11
|
-
custom: customFetcher,
|
|
12
|
-
static: staticFetcher,
|
|
13
|
-
...options?.fetchers
|
|
14
|
-
},
|
|
15
|
-
transformers: {
|
|
16
|
-
...WIDGET_TRANSFORMERS,
|
|
17
|
-
...options?.transformers
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
var DEFAULT_DATA_SOURCE_REGISTRY = createDataSourceRegistry();
|
|
22
|
-
|
|
23
|
-
export { DEFAULT_DATA_SOURCE_REGISTRY, createDataSourceRegistry };
|
|
24
|
-
//# sourceMappingURL=chunk-LBLHDGMT.js.map
|
|
25
|
-
//# sourceMappingURL=chunk-LBLHDGMT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data-sources/registry.ts"],"names":[],"mappings":";;;;;;AAsBO,SAAS,yBACd,OAAA,EACoB;AACpB,EAAA,OAAO;AAAA,IACL,QAAA,EAAU;AAAA,MACR,GAAA,EAAK,UAAA;AAAA,MACL,MAAA,EAAQ,aAAA;AAAA,MACR,MAAA,EAAQ,aAAA;AAAA,MACR,GAAG,OAAA,EAAS;AAAA,KACd;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,GAAG,mBAAA;AAAA,MACH,GAAG,OAAA,EAAS;AAAA;AACd,GACF;AACF;AAGO,IAAM,+BAA+B,wBAAA","file":"chunk-LBLHDGMT.js","sourcesContent":["import type {\n DataSourceRegistry,\n DataFetcher,\n DataTransformer,\n DataSourceType,\n} from \"./types\";\nimport { apiFetcher } from \"./fetchers/api\";\nimport { customFetcher } from \"./fetchers/custom\";\nimport { staticFetcher } from \"./fetchers/static\";\nimport { WIDGET_TRANSFORMERS } from \"./transformers\";\n\nexport interface CreateDataSourceRegistryOptions {\n /** Custom fetchers to add or override */\n fetchers?: Partial<Record<DataSourceType, DataFetcher>>;\n /** Custom transform functions */\n transformers?: Record<string, DataTransformer>;\n}\n\n/**\n * Creates a data source registry with default fetchers.\n * Users can extend this with custom fetchers and transformers.\n */\nexport function createDataSourceRegistry(\n options?: CreateDataSourceRegistryOptions,\n): DataSourceRegistry {\n return {\n fetchers: {\n api: apiFetcher,\n custom: customFetcher,\n static: staticFetcher,\n ...options?.fetchers,\n } as Record<DataSourceType, DataFetcher>,\n transformers: {\n ...WIDGET_TRANSFORMERS,\n ...options?.transformers,\n },\n };\n}\n\n/** Default registry instance */\nexport const DEFAULT_DATA_SOURCE_REGISTRY = createDataSourceRegistry();\n"]}
|