@intlayer/api 9.5.12 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/distantDictionary/fetchDistantDictionaries.cjs.map +1 -1
- package/dist/cjs/distantDictionary/fetchDistantDictionary.cjs.map +1 -1
- package/dist/cjs/fetcher.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/ai.cjs +76 -22
- package/dist/cjs/getIntlayerAPI/ai.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/analytics.cjs +44 -10
- package/dist/cjs/getIntlayerAPI/analytics.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/asset.cjs +38 -8
- package/dist/cjs/getIntlayerAPI/asset.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/audit.cjs +70 -16
- package/dist/cjs/getIntlayerAPI/audit.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/bitbucket.cjs +39 -9
- package/dist/cjs/getIntlayerAPI/bitbucket.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/codeberg.cjs +21 -0
- package/dist/cjs/getIntlayerAPI/codeberg.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/dictionary.cjs +59 -13
- package/dist/cjs/getIntlayerAPI/dictionary.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/editor.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/environment.cjs +44 -10
- package/dist/cjs/getIntlayerAPI/environment.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/forge.cjs +64 -0
- package/dist/cjs/getIntlayerAPI/forge.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/gitee.cjs +21 -0
- package/dist/cjs/getIntlayerAPI/gitee.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/github.cjs +44 -10
- package/dist/cjs/getIntlayerAPI/github.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/gitlab.cjs +39 -9
- package/dist/cjs/getIntlayerAPI/gitlab.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/index.cjs +4 -0
- package/dist/cjs/getIntlayerAPI/index.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/newsletter.cjs +28 -6
- package/dist/cjs/getIntlayerAPI/newsletter.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/oAuth.cjs +31 -5
- package/dist/cjs/getIntlayerAPI/oAuth.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/organization.cjs +72 -20
- package/dist/cjs/getIntlayerAPI/organization.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/project.cjs +112 -29
- package/dist/cjs/getIntlayerAPI/project.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/reviewer.cjs +142 -31
- package/dist/cjs/getIntlayerAPI/reviewer.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/search.cjs +15 -3
- package/dist/cjs/getIntlayerAPI/search.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/showcaseProject.cjs +61 -15
- package/dist/cjs/getIntlayerAPI/showcaseProject.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/status.cjs +16 -3
- package/dist/cjs/getIntlayerAPI/status.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/stripe.cjs +141 -35
- package/dist/cjs/getIntlayerAPI/stripe.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/tag.cjs +33 -7
- package/dist/cjs/getIntlayerAPI/tag.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/translate.cjs +46 -8
- package/dist/cjs/getIntlayerAPI/translate.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/user.cjs +58 -14
- package/dist/cjs/getIntlayerAPI/user.cjs.map +1 -1
- package/dist/cjs/index.cjs +8 -0
- package/dist/cjs/proxy.cjs +4 -0
- package/dist/cjs/proxy.cjs.map +1 -1
- package/dist/cjs/public/createPublicClient.cjs +25 -5
- package/dist/cjs/public/createPublicClient.cjs.map +1 -1
- package/dist/esm/distantDictionary/fetchDistantDictionaries.mjs.map +1 -1
- package/dist/esm/distantDictionary/fetchDistantDictionary.mjs.map +1 -1
- package/dist/esm/fetcher.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/ai.mjs +76 -22
- package/dist/esm/getIntlayerAPI/ai.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/analytics.mjs +44 -10
- package/dist/esm/getIntlayerAPI/analytics.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/asset.mjs +38 -8
- package/dist/esm/getIntlayerAPI/asset.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/audit.mjs +70 -16
- package/dist/esm/getIntlayerAPI/audit.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/bitbucket.mjs +39 -9
- package/dist/esm/getIntlayerAPI/bitbucket.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/codeberg.mjs +19 -0
- package/dist/esm/getIntlayerAPI/codeberg.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/dictionary.mjs +59 -13
- package/dist/esm/getIntlayerAPI/dictionary.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/editor.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/environment.mjs +44 -10
- package/dist/esm/getIntlayerAPI/environment.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/forge.mjs +63 -0
- package/dist/esm/getIntlayerAPI/forge.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/gitee.mjs +19 -0
- package/dist/esm/getIntlayerAPI/gitee.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/github.mjs +44 -10
- package/dist/esm/getIntlayerAPI/github.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/gitlab.mjs +39 -9
- package/dist/esm/getIntlayerAPI/gitlab.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/index.mjs +4 -0
- package/dist/esm/getIntlayerAPI/index.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/newsletter.mjs +28 -6
- package/dist/esm/getIntlayerAPI/newsletter.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/oAuth.mjs +31 -5
- package/dist/esm/getIntlayerAPI/oAuth.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/organization.mjs +72 -20
- package/dist/esm/getIntlayerAPI/organization.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/project.mjs +112 -29
- package/dist/esm/getIntlayerAPI/project.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/reviewer.mjs +142 -31
- package/dist/esm/getIntlayerAPI/reviewer.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/search.mjs +15 -3
- package/dist/esm/getIntlayerAPI/search.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/showcaseProject.mjs +61 -15
- package/dist/esm/getIntlayerAPI/showcaseProject.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/status.mjs +16 -3
- package/dist/esm/getIntlayerAPI/status.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/stripe.mjs +141 -35
- package/dist/esm/getIntlayerAPI/stripe.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/tag.mjs +33 -7
- package/dist/esm/getIntlayerAPI/tag.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/translate.mjs +46 -8
- package/dist/esm/getIntlayerAPI/translate.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/user.mjs +58 -14
- package/dist/esm/getIntlayerAPI/user.mjs.map +1 -1
- package/dist/esm/index.mjs +4 -1
- package/dist/esm/proxy.mjs +4 -0
- package/dist/esm/proxy.mjs.map +1 -1
- package/dist/esm/public/createPublicClient.mjs +25 -5
- package/dist/esm/public/createPublicClient.mjs.map +1 -1
- package/dist/types/distantDictionary/fetchDistantDictionaries.d.ts +1 -1
- package/dist/types/distantDictionary/fetchDistantDictionary.d.ts +1 -1
- package/dist/types/fetcher.d.ts +1 -1
- package/dist/types/fetcher.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/ai.d.ts +1 -1
- package/dist/types/getIntlayerAPI/ai.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/analytics.d.ts +1 -1
- package/dist/types/getIntlayerAPI/analytics.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/asset.d.ts +1 -0
- package/dist/types/getIntlayerAPI/asset.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/audit.d.ts +47 -3
- package/dist/types/getIntlayerAPI/audit.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/bitbucket.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/codeberg.d.ts +23 -0
- package/dist/types/getIntlayerAPI/codeberg.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/dictionary.d.ts +1 -1
- package/dist/types/getIntlayerAPI/dictionary.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/editor.d.ts +2 -1
- package/dist/types/getIntlayerAPI/editor.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/environment.d.ts +1 -1
- package/dist/types/getIntlayerAPI/environment.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/forge.d.ts +17 -0
- package/dist/types/getIntlayerAPI/forge.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/gitee.d.ts +23 -0
- package/dist/types/getIntlayerAPI/gitee.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/github.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/gitlab.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/index.d.ts +4 -0
- package/dist/types/getIntlayerAPI/index.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/newsletter.d.ts +1 -1
- package/dist/types/getIntlayerAPI/newsletter.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/oAuth.d.ts +2 -0
- package/dist/types/getIntlayerAPI/oAuth.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/organization.d.ts +1 -3
- package/dist/types/getIntlayerAPI/organization.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/project.d.ts +2 -1
- package/dist/types/getIntlayerAPI/project.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/reviewer.d.ts +680 -35
- package/dist/types/getIntlayerAPI/reviewer.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/search.d.ts +1 -1
- package/dist/types/getIntlayerAPI/search.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/showcaseProject.d.ts +1 -1
- package/dist/types/getIntlayerAPI/showcaseProject.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/status.d.ts +3 -4
- package/dist/types/getIntlayerAPI/status.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/stripe.d.ts +1 -1
- package/dist/types/getIntlayerAPI/stripe.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/tag.d.ts +1 -1
- package/dist/types/getIntlayerAPI/tag.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/translate.d.ts +1 -1
- package/dist/types/getIntlayerAPI/translate.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/user.d.ts +4 -4
- package/dist/types/getIntlayerAPI/user.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -4
- package/dist/types/proxy.d.ts.map +1 -1
- package/dist/types/public/createPublicClient.d.ts +1 -7
- package/dist/types/public/createPublicClient.d.ts.map +1 -1
- package/dist/types/types.d.ts +5 -2
- package/package.json +22 -5
|
@@ -2,10 +2,120 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_fetcher = require('../fetcher.cjs');
|
|
3
3
|
const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
|
|
4
4
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
|
+
let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
|
|
6
|
+
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
|
|
5
7
|
|
|
6
8
|
//#region src/getIntlayerAPI/reviewer.ts
|
|
9
|
+
/** Prefix of the routes, checked against the backend contract. */
|
|
10
|
+
const reviewerGroup = { prefix: "/api/reviewer" };
|
|
11
|
+
/**
|
|
12
|
+
* Method and path of every route, checked against the backend contract at
|
|
13
|
+
* compile time (the contract's zod schemas are never loaded).
|
|
14
|
+
*/
|
|
15
|
+
const reviewerEndpoints = {
|
|
16
|
+
getMarketplace: {
|
|
17
|
+
method: "GET",
|
|
18
|
+
path: "/marketplace"
|
|
19
|
+
},
|
|
20
|
+
getPriceDistribution: {
|
|
21
|
+
method: "GET",
|
|
22
|
+
path: "/marketplace/price-distribution"
|
|
23
|
+
},
|
|
24
|
+
getMyReviewerProfile: {
|
|
25
|
+
method: "GET",
|
|
26
|
+
path: "/me"
|
|
27
|
+
},
|
|
28
|
+
getReviewerReviews: {
|
|
29
|
+
method: "GET",
|
|
30
|
+
path: "/:reviewerId/reviews"
|
|
31
|
+
},
|
|
32
|
+
getReviewerById: {
|
|
33
|
+
method: "GET",
|
|
34
|
+
path: "/:reviewerId"
|
|
35
|
+
},
|
|
36
|
+
registerAsReviewer: {
|
|
37
|
+
method: "POST",
|
|
38
|
+
path: "/register"
|
|
39
|
+
},
|
|
40
|
+
updateReviewerProfile: {
|
|
41
|
+
method: "PUT",
|
|
42
|
+
path: "/"
|
|
43
|
+
},
|
|
44
|
+
deleteReviewerProfile: {
|
|
45
|
+
method: "DELETE",
|
|
46
|
+
path: "/"
|
|
47
|
+
},
|
|
48
|
+
uploadMainPicture: {
|
|
49
|
+
method: "POST",
|
|
50
|
+
path: "/me/picture/main"
|
|
51
|
+
},
|
|
52
|
+
uploadCoverPicture: {
|
|
53
|
+
method: "POST",
|
|
54
|
+
path: "/me/picture/cover"
|
|
55
|
+
},
|
|
56
|
+
estimateMission: {
|
|
57
|
+
method: "POST",
|
|
58
|
+
path: "/mission/estimate"
|
|
59
|
+
},
|
|
60
|
+
createMission: {
|
|
61
|
+
method: "POST",
|
|
62
|
+
path: "/mission"
|
|
63
|
+
},
|
|
64
|
+
getMyMissions: {
|
|
65
|
+
method: "GET",
|
|
66
|
+
path: "/mission"
|
|
67
|
+
},
|
|
68
|
+
getMissionById: {
|
|
69
|
+
method: "GET",
|
|
70
|
+
path: "/mission/:missionId"
|
|
71
|
+
},
|
|
72
|
+
updateMissionStatus: {
|
|
73
|
+
method: "PUT",
|
|
74
|
+
path: "/mission/:missionId/status"
|
|
75
|
+
},
|
|
76
|
+
submitReview: {
|
|
77
|
+
method: "POST",
|
|
78
|
+
path: "/mission/:missionId/review"
|
|
79
|
+
},
|
|
80
|
+
getChatHistory: {
|
|
81
|
+
method: "GET",
|
|
82
|
+
path: "/mission/:missionId/chat/history"
|
|
83
|
+
},
|
|
84
|
+
sendMessage: {
|
|
85
|
+
method: "POST",
|
|
86
|
+
path: "/mission/:missionId/chat"
|
|
87
|
+
},
|
|
88
|
+
chatSSE: {
|
|
89
|
+
method: "GET",
|
|
90
|
+
path: "/mission/:missionId/chat/stream"
|
|
91
|
+
},
|
|
92
|
+
createPaymentIntent: {
|
|
93
|
+
method: "POST",
|
|
94
|
+
path: "/mission/:missionId/payment/intent"
|
|
95
|
+
},
|
|
96
|
+
confirmPayment: {
|
|
97
|
+
method: "POST",
|
|
98
|
+
path: "/mission/:missionId/payment/confirm"
|
|
99
|
+
},
|
|
100
|
+
requestPayout: {
|
|
101
|
+
method: "POST",
|
|
102
|
+
path: "/payout"
|
|
103
|
+
},
|
|
104
|
+
contactReviewer: {
|
|
105
|
+
method: "POST",
|
|
106
|
+
path: "/:reviewerId/contact"
|
|
107
|
+
},
|
|
108
|
+
getAdminReviewers: {
|
|
109
|
+
method: "GET",
|
|
110
|
+
path: "/admin/reviewers"
|
|
111
|
+
},
|
|
112
|
+
validateReviewerProfile: {
|
|
113
|
+
method: "PUT",
|
|
114
|
+
path: "/:reviewerId/validate"
|
|
115
|
+
}
|
|
116
|
+
};
|
|
7
117
|
const getReviewerAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
8
|
-
const
|
|
118
|
+
const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
|
|
9
119
|
const getMarketplace = (params = {}, otherOptions = {}) => {
|
|
10
120
|
const searchParams = new URLSearchParams();
|
|
11
121
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -16,7 +126,7 @@ const getReviewerAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
16
126
|
else searchParams.append(key, String(value));
|
|
17
127
|
}
|
|
18
128
|
const query = searchParams.toString();
|
|
19
|
-
return require_fetcher.fetcher(`${
|
|
129
|
+
return require_fetcher.fetcher(`${(0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getMarketplace)}${query ? `?${query}` : ""}`, authAPIOptions, otherOptions, { method: "GET" });
|
|
20
130
|
};
|
|
21
131
|
const getPriceDistribution = (params = {}, otherOptions = {}) => {
|
|
22
132
|
const searchParams = new URLSearchParams();
|
|
@@ -28,60 +138,61 @@ const getReviewerAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
28
138
|
else searchParams.append(key, String(value));
|
|
29
139
|
}
|
|
30
140
|
const query = searchParams.toString();
|
|
31
|
-
return require_fetcher.fetcher(`${
|
|
141
|
+
return require_fetcher.fetcher(`${(0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getPriceDistribution)}${query ? `?${query}` : ""}`, authAPIOptions, otherOptions, { method: "GET" });
|
|
32
142
|
};
|
|
33
|
-
const getReviewerById = (reviewerId, otherOptions = {}) => require_fetcher.fetcher(
|
|
143
|
+
const getReviewerById = (reviewerId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getReviewerById, { reviewerId }), authAPIOptions, otherOptions, { method: reviewerEndpoints.getReviewerById.method });
|
|
34
144
|
const getReviewerReviews = (reviewerId, params = {}, otherOptions = {}) => {
|
|
35
145
|
const query = new URLSearchParams(Object.fromEntries(Object.entries(params).filter(([, v]) => v !== void 0).map(([k, v]) => [k, String(v)]))).toString();
|
|
36
|
-
return require_fetcher.fetcher(`${
|
|
146
|
+
return require_fetcher.fetcher(`${(0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getReviewerReviews, { reviewerId })}${query ? `?${query}` : ""}`, authAPIOptions, otherOptions, { method: "GET" });
|
|
37
147
|
};
|
|
38
|
-
const getMyReviewerProfile = (otherOptions = {}) => require_fetcher.fetcher(
|
|
39
|
-
const registerAsReviewer = (body, otherOptions = {}) => require_fetcher.fetcher(
|
|
40
|
-
method:
|
|
148
|
+
const getMyReviewerProfile = (otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getMyReviewerProfile), authAPIOptions, otherOptions, { method: reviewerEndpoints.getMyReviewerProfile.method });
|
|
149
|
+
const registerAsReviewer = (body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.registerAsReviewer), authAPIOptions, otherOptions, {
|
|
150
|
+
method: reviewerEndpoints.registerAsReviewer.method,
|
|
41
151
|
body
|
|
42
152
|
});
|
|
43
|
-
const updateReviewerProfile = (body, otherOptions = {}) => require_fetcher.fetcher(
|
|
44
|
-
method:
|
|
153
|
+
const updateReviewerProfile = (body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.updateReviewerProfile), authAPIOptions, otherOptions, {
|
|
154
|
+
method: reviewerEndpoints.updateReviewerProfile.method,
|
|
45
155
|
body
|
|
46
156
|
});
|
|
47
|
-
const deleteReviewerProfile = (otherOptions = {}) => require_fetcher.fetcher(
|
|
48
|
-
const contactReviewer = (reviewerId, body, otherOptions = {}) => require_fetcher.fetcher(
|
|
49
|
-
method:
|
|
157
|
+
const deleteReviewerProfile = (otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.deleteReviewerProfile), authAPIOptions, otherOptions, { method: reviewerEndpoints.deleteReviewerProfile.method });
|
|
158
|
+
const contactReviewer = (reviewerId, body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.contactReviewer, { reviewerId }), authAPIOptions, otherOptions, {
|
|
159
|
+
method: reviewerEndpoints.contactReviewer.method,
|
|
50
160
|
body
|
|
51
161
|
});
|
|
52
|
-
const estimateMission = (body, otherOptions = {}) => require_fetcher.fetcher(
|
|
53
|
-
method:
|
|
162
|
+
const estimateMission = (body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.estimateMission), authAPIOptions, otherOptions, {
|
|
163
|
+
method: reviewerEndpoints.estimateMission.method,
|
|
54
164
|
body
|
|
55
165
|
});
|
|
56
|
-
const createMission = (body, otherOptions = {}) => require_fetcher.fetcher(
|
|
57
|
-
method:
|
|
166
|
+
const createMission = (body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.createMission), authAPIOptions, otherOptions, {
|
|
167
|
+
method: reviewerEndpoints.createMission.method,
|
|
58
168
|
body
|
|
59
169
|
});
|
|
60
170
|
const getMyMissions = (params = {}, otherOptions = {}) => {
|
|
61
171
|
const query = new URLSearchParams(Object.fromEntries(Object.entries(params).filter(([, v]) => v !== void 0).map(([k, v]) => [k, String(v)]))).toString();
|
|
62
|
-
return require_fetcher.fetcher(`${
|
|
172
|
+
return require_fetcher.fetcher(`${(0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getMyMissions)}${query ? `?${query}` : ""}`, authAPIOptions, otherOptions, { method: "GET" });
|
|
63
173
|
};
|
|
64
|
-
const getMissionById = (missionId, otherOptions = {}) => require_fetcher.fetcher(
|
|
65
|
-
const updateMissionStatus = (missionId, body, otherOptions = {}) => require_fetcher.fetcher(
|
|
66
|
-
method:
|
|
174
|
+
const getMissionById = (missionId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getMissionById, { missionId }), authAPIOptions, otherOptions, { method: reviewerEndpoints.getMissionById.method });
|
|
175
|
+
const updateMissionStatus = (missionId, body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.updateMissionStatus, { missionId }), authAPIOptions, otherOptions, {
|
|
176
|
+
method: reviewerEndpoints.updateMissionStatus.method,
|
|
67
177
|
body
|
|
68
178
|
});
|
|
69
|
-
const submitReview = (missionId, body, otherOptions = {}) => require_fetcher.fetcher(
|
|
70
|
-
method:
|
|
179
|
+
const submitReview = (missionId, body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.submitReview, { missionId }), authAPIOptions, otherOptions, {
|
|
180
|
+
method: reviewerEndpoints.submitReview.method,
|
|
71
181
|
body
|
|
72
182
|
});
|
|
73
|
-
const getChatHistory = (missionId, otherOptions = {}) => require_fetcher.fetcher(
|
|
74
|
-
const sendMessage = (missionId, body, otherOptions = {}) => require_fetcher.fetcher(
|
|
75
|
-
method:
|
|
183
|
+
const getChatHistory = (missionId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getChatHistory, { missionId }), authAPIOptions, otherOptions, { method: reviewerEndpoints.getChatHistory.method });
|
|
184
|
+
const sendMessage = (missionId, body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.sendMessage, { missionId }), authAPIOptions, otherOptions, {
|
|
185
|
+
method: reviewerEndpoints.sendMessage.method,
|
|
76
186
|
body
|
|
77
187
|
});
|
|
78
|
-
const getChatStreamUrl = (missionId) =>
|
|
188
|
+
const getChatStreamUrl = (missionId) => (0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.chatSSE, { missionId });
|
|
79
189
|
const uploadPicture = async (kind, file, otherOptions = {}) => {
|
|
80
190
|
const buffer = await file.arrayBuffer();
|
|
81
191
|
const baseHeaders = { "Content-Type": file.type || "image/jpeg" };
|
|
82
192
|
const authHeaders = authAPIOptions.headers ?? {};
|
|
83
|
-
const
|
|
84
|
-
|
|
193
|
+
const endpoint = kind === "main" ? reviewerEndpoints.uploadMainPicture : reviewerEndpoints.uploadCoverPicture;
|
|
194
|
+
const response = await fetch((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, endpoint), {
|
|
195
|
+
method: endpoint.method,
|
|
85
196
|
credentials: "include",
|
|
86
197
|
headers: {
|
|
87
198
|
...authHeaders,
|
|
@@ -98,10 +209,10 @@ const getReviewerAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
98
209
|
};
|
|
99
210
|
const uploadMainPicture = (file, otherOptions = {}) => uploadPicture("main", file, otherOptions);
|
|
100
211
|
const uploadCoverPicture = (file, otherOptions = {}) => uploadPicture("cover", file, otherOptions);
|
|
101
|
-
const validateReviewerProfile = (reviewerId, otherOptions = {}) => require_fetcher.fetcher(
|
|
212
|
+
const validateReviewerProfile = (reviewerId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.validateReviewerProfile, { reviewerId }), authAPIOptions, otherOptions, { method: reviewerEndpoints.validateReviewerProfile.method });
|
|
102
213
|
const getAdminReviewers = (params = {}, otherOptions = {}) => {
|
|
103
214
|
const query = new URLSearchParams(Object.fromEntries(Object.entries(params).filter(([, v]) => v !== void 0).map(([k, v]) => [k, String(v)]))).toString();
|
|
104
|
-
return require_fetcher.fetcher(`${
|
|
215
|
+
return require_fetcher.fetcher(`${(0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, reviewerGroup, reviewerEndpoints.getAdminReviewers)}${query ? `?${query}` : ""}`, authAPIOptions, otherOptions, { method: "GET" });
|
|
105
216
|
};
|
|
106
217
|
return {
|
|
107
218
|
getMarketplace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/reviewer.ts"],"sourcesContent":["import type {\n CreateMissionBody,\n EstimateMissionBody,\n GetMarketplaceQuery,\n MissionEstimate,\n PaginatedResponse,\n PriceDistributionData,\n RegisterReviewerBody,\n ResponseData,\n ReviewerMessageAPI,\n ReviewerProfileAPI,\n ReviewerReviewAPI,\n SendMessageBody,\n SubmitReviewBody,\n TranslationMissionAPI,\n UpdateMissionStatusBody,\n UpdateReviewerBody,\n UploadReviewerPictureResult,\n} from '@intlayer/backend';\nimport { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\nexport const getReviewerAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL = intlayerConfig?.editor?.backendURL ?? editor.backendURL;\n const BASE = `${backendURL}/api/reviewer`;\n\n // ── Marketplace ────────────────────────────────────────────────────────────\n\n const getMarketplace = (\n params: GetMarketplaceQuery = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n value.forEach((item) => {\n searchParams.append(key, String(item));\n });\n } else {\n searchParams.append(key, String(value));\n }\n }\n const query = searchParams.toString();\n\n return fetcher<PaginatedResponse<ReviewerProfileAPI>>(\n `${BASE}/marketplace${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getPriceDistribution = (\n params: Pick<\n GetMarketplaceQuery,\n 'fromLocale' | 'toLocale' | 'minRating' | 'categories'\n > = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n value.forEach((item) => {\n searchParams.append(key, String(item));\n });\n } else {\n searchParams.append(key, String(value));\n }\n }\n const query = searchParams.toString();\n return fetcher<ResponseData<PriceDistributionData>>(\n `${BASE}/marketplace/price-distribution${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getReviewerById = (\n reviewerId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n `${BASE}/${reviewerId}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n\n const getReviewerReviews = (\n reviewerId: string,\n params: { page?: number; pageSize?: number } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<ReviewerReviewAPI>>(\n `${BASE}/${reviewerId}/reviews${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n // ── My profile ─────────────────────────────────────────────────────────────\n\n const getMyReviewerProfile = (otherOptions: FetcherOptions = {}) =>\n fetcher<ResponseData<ReviewerProfileAPI | null>>(\n `${BASE}/me`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n\n const registerAsReviewer = (\n body: RegisterReviewerBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n `${BASE}/register`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const updateReviewerProfile = (\n body: UpdateReviewerBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n `${BASE}/`,\n authAPIOptions,\n otherOptions,\n { method: 'PUT', body }\n );\n\n const deleteReviewerProfile = (otherOptions: FetcherOptions = {}) =>\n fetcher<ResponseData<null>>(BASE, authAPIOptions, otherOptions, {\n method: 'DELETE',\n });\n\n // ── Contact ────────────────────────────────────────────────────────────────\n\n const contactReviewer = (\n reviewerId: string,\n body: { message: string },\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<null>>(\n `${BASE}/${reviewerId}/contact`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n // ── Missions ───────────────────────────────────────────────────────────────\n\n const estimateMission = (\n body: EstimateMissionBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<MissionEstimate>>(\n `${BASE}/mission/estimate`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const createMission = (\n body: CreateMissionBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n `${BASE}/mission`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const getMyMissions = (\n params: {\n role?: 'client' | 'reviewer';\n page?: number;\n pageSize?: number;\n } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<TranslationMissionAPI>>(\n `${BASE}/mission${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getMissionById = (\n missionId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n `${BASE}/mission/${missionId}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n\n const updateMissionStatus = (\n missionId: string,\n body: UpdateMissionStatusBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n `${BASE}/mission/${missionId}/status`,\n authAPIOptions,\n otherOptions,\n { method: 'PUT', body }\n );\n\n // ── Reviews ────────────────────────────────────────────────────────────────\n\n const submitReview = (\n missionId: string,\n body: SubmitReviewBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerReviewAPI>>(\n `${BASE}/mission/${missionId}/review`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n // ── Chat ───────────────────────────────────────────────────────────────────\n\n const getChatHistory = (\n missionId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerMessageAPI[]>>(\n `${BASE}/mission/${missionId}/chat/history`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n\n const sendMessage = (\n missionId: string,\n body: SendMessageBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerMessageAPI>>(\n `${BASE}/mission/${missionId}/chat`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const getChatStreamUrl = (missionId: string) =>\n `${BASE}/mission/${missionId}/chat/stream`;\n\n // ── Picture uploads ────────────────────────────────────────────────────────\n\n const uploadPicture = async (\n kind: 'main' | 'cover',\n file: File,\n otherOptions: FetcherOptions = {}\n ): Promise<UploadReviewerPictureResult> => {\n const buffer = await file.arrayBuffer();\n\n const baseHeaders: Record<string, string> = {\n 'Content-Type': file.type || 'image/jpeg',\n };\n\n const authHeaders =\n (authAPIOptions.headers as Record<string, string> | undefined) ?? {};\n\n const response = await fetch(`${BASE}/me/picture/${kind}`, {\n method: 'POST',\n credentials: 'include',\n headers: { ...authHeaders, ...baseHeaders },\n body: buffer,\n signal: otherOptions.signal as AbortSignal | undefined,\n });\n\n if (!response.ok) {\n const result = await response.json();\n throw new Error(JSON.stringify(result.error) ?? 'Picture upload failed');\n }\n\n return (await response.json()) as UploadReviewerPictureResult;\n };\n\n const uploadMainPicture = (file: File, otherOptions: FetcherOptions = {}) =>\n uploadPicture('main', file, otherOptions);\n\n const uploadCoverPicture = (file: File, otherOptions: FetcherOptions = {}) =>\n uploadPicture('cover', file, otherOptions);\n\n // ── Admin ──────────────────────────────────────────────────────────────────\n\n const validateReviewerProfile = (\n reviewerId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n `${BASE}/${reviewerId}/validate`,\n authAPIOptions,\n otherOptions,\n { method: 'PUT' }\n );\n\n const getAdminReviewers = (\n params: { page?: number; pageSize?: number; status?: string } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<ReviewerProfileAPI>>(\n `${BASE}/admin/reviewers${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n return {\n getMarketplace,\n getPriceDistribution,\n getReviewerById,\n getReviewerReviews,\n getMyReviewerProfile,\n registerAsReviewer,\n updateReviewerProfile,\n deleteReviewerProfile,\n estimateMission,\n createMission,\n getMyMissions,\n getMissionById,\n updateMissionStatus,\n submitReview,\n contactReviewer,\n getChatHistory,\n sendMessage,\n getChatStreamUrl,\n uploadMainPicture,\n uploadCoverPicture,\n validateReviewerProfile,\n getAdminReviewers,\n };\n};\n\n/**\n * Authenticated `reviewer` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const reviewerEndpoint = createEndpoint(getReviewerAPI);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reviewer.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/reviewer.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type {\n PaginatedResponse,\n ResponseData,\n} from '@intlayer/backend-contract/responseData';\nimport type {\n CreateMissionBody,\n EstimateMissionBody,\n GetMarketplaceQuery,\n MissionEstimate,\n PriceDistributionData,\n RegisterReviewerBody,\n ReviewerMessageAPI,\n ReviewerProfileAPI,\n ReviewerReviewAPI,\n ReviewerRoutes,\n reviewerContract,\n SendMessageBody,\n SubmitReviewBody,\n TranslationMissionAPI,\n UpdateMissionStatusBody,\n UpdateReviewerBody,\n UploadReviewerPictureResult,\n} from '@intlayer/backend-contract/reviewer';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\n/** Prefix of the routes, checked against the backend contract. */\nconst reviewerGroup = {\n prefix: '/api/reviewer',\n} as const satisfies Pick<typeof reviewerContract, 'prefix'>;\n\n/**\n * Method and path of every route, checked against the backend contract at\n * compile time (the contract's zod schemas are never loaded).\n */\nconst reviewerEndpoints = {\n getMarketplace: { method: 'GET', path: '/marketplace' },\n getPriceDistribution: {\n method: 'GET',\n path: '/marketplace/price-distribution',\n },\n getMyReviewerProfile: { method: 'GET', path: '/me' },\n getReviewerReviews: { method: 'GET', path: '/:reviewerId/reviews' },\n getReviewerById: { method: 'GET', path: '/:reviewerId' },\n registerAsReviewer: { method: 'POST', path: '/register' },\n updateReviewerProfile: { method: 'PUT', path: '/' },\n deleteReviewerProfile: { method: 'DELETE', path: '/' },\n uploadMainPicture: { method: 'POST', path: '/me/picture/main' },\n uploadCoverPicture: { method: 'POST', path: '/me/picture/cover' },\n estimateMission: { method: 'POST', path: '/mission/estimate' },\n createMission: { method: 'POST', path: '/mission' },\n getMyMissions: { method: 'GET', path: '/mission' },\n getMissionById: { method: 'GET', path: '/mission/:missionId' },\n updateMissionStatus: { method: 'PUT', path: '/mission/:missionId/status' },\n submitReview: { method: 'POST', path: '/mission/:missionId/review' },\n getChatHistory: { method: 'GET', path: '/mission/:missionId/chat/history' },\n sendMessage: { method: 'POST', path: '/mission/:missionId/chat' },\n chatSSE: { method: 'GET', path: '/mission/:missionId/chat/stream' },\n createPaymentIntent: {\n method: 'POST',\n path: '/mission/:missionId/payment/intent',\n },\n confirmPayment: {\n method: 'POST',\n path: '/mission/:missionId/payment/confirm',\n },\n requestPayout: { method: 'POST', path: '/payout' },\n contactReviewer: { method: 'POST', path: '/:reviewerId/contact' },\n getAdminReviewers: { method: 'GET', path: '/admin/reviewers' },\n validateReviewerProfile: { method: 'PUT', path: '/:reviewerId/validate' },\n} as const satisfies RouteEndpoints<ReviewerRoutes>;\n\nexport const getReviewerAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n // ── Marketplace ────────────────────────────────────────────────────────────\n\n const getMarketplace = (\n params: GetMarketplaceQuery = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n value.forEach((item) => {\n searchParams.append(key, String(item));\n });\n } else {\n searchParams.append(key, String(value));\n }\n }\n const query = searchParams.toString();\n\n return fetcher<PaginatedResponse<ReviewerProfileAPI>>(\n `${buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.getMarketplace)}${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getPriceDistribution = (\n params: Pick<\n GetMarketplaceQuery,\n 'fromLocale' | 'toLocale' | 'minRating' | 'categories'\n > = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) continue;\n if (Array.isArray(value)) {\n value.forEach((item) => {\n searchParams.append(key, String(item));\n });\n } else {\n searchParams.append(key, String(value));\n }\n }\n const query = searchParams.toString();\n return fetcher<ResponseData<PriceDistributionData>>(\n `${buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.getPriceDistribution)}${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getReviewerById = (\n reviewerId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.getReviewerById,\n { reviewerId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.getReviewerById.method }\n );\n\n const getReviewerReviews = (\n reviewerId: string,\n params: { page?: number; pageSize?: number } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<ReviewerReviewAPI>>(\n `${buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.getReviewerReviews, { reviewerId })}${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n // ── My profile ─────────────────────────────────────────────────────────────\n\n const getMyReviewerProfile = (otherOptions: FetcherOptions = {}) =>\n fetcher<ResponseData<ReviewerProfileAPI | null>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.getMyReviewerProfile\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.getMyReviewerProfile.method }\n );\n\n const registerAsReviewer = (\n body: RegisterReviewerBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.registerAsReviewer\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.registerAsReviewer.method, body }\n );\n\n const updateReviewerProfile = (\n body: UpdateReviewerBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.updateReviewerProfile\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.updateReviewerProfile.method, body }\n );\n\n const deleteReviewerProfile = (otherOptions: FetcherOptions = {}) =>\n fetcher<ResponseData<null>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.deleteReviewerProfile\n ),\n authAPIOptions,\n otherOptions,\n {\n method: reviewerEndpoints.deleteReviewerProfile.method,\n }\n );\n\n // ── Contact ────────────────────────────────────────────────────────────────\n\n const contactReviewer = (\n reviewerId: string,\n body: { message: string },\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<null>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.contactReviewer,\n { reviewerId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.contactReviewer.method, body }\n );\n\n // ── Missions ───────────────────────────────────────────────────────────────\n\n const estimateMission = (\n body: EstimateMissionBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<MissionEstimate>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.estimateMission\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.estimateMission.method, body }\n );\n\n const createMission = (\n body: CreateMissionBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.createMission),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.createMission.method, body }\n );\n\n const getMyMissions = (\n params: {\n role?: 'client' | 'reviewer';\n page?: number;\n pageSize?: number;\n } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<TranslationMissionAPI>>(\n `${buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.getMyMissions)}${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n const getMissionById = (\n missionId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.getMissionById,\n { missionId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.getMissionById.method }\n );\n\n const updateMissionStatus = (\n missionId: string,\n body: UpdateMissionStatusBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<TranslationMissionAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.updateMissionStatus,\n { missionId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.updateMissionStatus.method, body }\n );\n\n // ── Reviews ────────────────────────────────────────────────────────────────\n\n const submitReview = (\n missionId: string,\n body: SubmitReviewBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerReviewAPI>>(\n buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.submitReview, {\n missionId,\n }),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.submitReview.method, body }\n );\n\n // ── Chat ───────────────────────────────────────────────────────────────────\n\n const getChatHistory = (\n missionId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerMessageAPI[]>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.getChatHistory,\n { missionId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.getChatHistory.method }\n );\n\n const sendMessage = (\n missionId: string,\n body: SendMessageBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerMessageAPI>>(\n buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.sendMessage, {\n missionId,\n }),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.sendMessage.method, body }\n );\n\n const getChatStreamUrl = (missionId: string) =>\n buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.chatSSE, {\n missionId,\n });\n\n // ── Picture uploads ────────────────────────────────────────────────────────\n\n const uploadPicture = async (\n kind: 'main' | 'cover',\n file: File,\n otherOptions: FetcherOptions = {}\n ): Promise<UploadReviewerPictureResult> => {\n const buffer = await file.arrayBuffer();\n\n const baseHeaders: Record<string, string> = {\n 'Content-Type': file.type || 'image/jpeg',\n };\n\n const authHeaders =\n (authAPIOptions.headers as Record<string, string> | undefined) ?? {};\n\n const endpoint =\n kind === 'main'\n ? reviewerEndpoints.uploadMainPicture\n : reviewerEndpoints.uploadCoverPicture;\n const response = await fetch(\n buildRouteURL(backendURL, reviewerGroup, endpoint),\n {\n method: endpoint.method,\n credentials: 'include',\n headers: { ...authHeaders, ...baseHeaders },\n body: buffer,\n signal: otherOptions.signal as AbortSignal | undefined,\n }\n );\n\n if (!response.ok) {\n const result = await response.json();\n throw new Error(JSON.stringify(result.error) ?? 'Picture upload failed');\n }\n\n return (await response.json()) as UploadReviewerPictureResult;\n };\n\n const uploadMainPicture = (file: File, otherOptions: FetcherOptions = {}) =>\n uploadPicture('main', file, otherOptions);\n\n const uploadCoverPicture = (file: File, otherOptions: FetcherOptions = {}) =>\n uploadPicture('cover', file, otherOptions);\n\n // ── Admin ──────────────────────────────────────────────────────────────────\n\n const validateReviewerProfile = (\n reviewerId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<ResponseData<ReviewerProfileAPI>>(\n buildRouteURL(\n backendURL,\n reviewerGroup,\n reviewerEndpoints.validateReviewerProfile,\n { reviewerId }\n ),\n authAPIOptions,\n otherOptions,\n { method: reviewerEndpoints.validateReviewerProfile.method }\n );\n\n const getAdminReviewers = (\n params: { page?: number; pageSize?: number; status?: string } = {},\n otherOptions: FetcherOptions = {}\n ) => {\n const query = new URLSearchParams(\n Object.fromEntries(\n Object.entries(params)\n .filter(([, v]) => v !== undefined)\n .map(([k, v]) => [k, String(v)])\n )\n ).toString();\n return fetcher<PaginatedResponse<ReviewerProfileAPI>>(\n `${buildRouteURL(backendURL, reviewerGroup, reviewerEndpoints.getAdminReviewers)}${query ? `?${query}` : ''}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n };\n\n return {\n getMarketplace,\n getPriceDistribution,\n getReviewerById,\n getReviewerReviews,\n getMyReviewerProfile,\n registerAsReviewer,\n updateReviewerProfile,\n deleteReviewerProfile,\n estimateMission,\n createMission,\n getMyMissions,\n getMissionById,\n updateMissionStatus,\n submitReview,\n contactReviewer,\n getChatHistory,\n sendMessage,\n getChatStreamUrl,\n uploadMainPicture,\n uploadCoverPicture,\n validateReviewerProfile,\n getAdminReviewers,\n };\n};\n\n/**\n * Authenticated `reviewer` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const reviewerEndpoint = createEndpoint(getReviewerAPI);\n"],"mappings":"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"}
|
|
@@ -2,17 +2,29 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_fetcher = require('../fetcher.cjs');
|
|
3
3
|
const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
|
|
4
4
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
|
+
let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
|
|
6
|
+
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
|
|
5
7
|
|
|
6
8
|
//#region src/getIntlayerAPI/search.ts
|
|
9
|
+
/** Prefix of the routes, checked against the backend contract. */
|
|
10
|
+
const searchGroup = { prefix: "/api/search" };
|
|
11
|
+
/**
|
|
12
|
+
* Method and path of every route, checked against the backend contract at
|
|
13
|
+
* compile time (the contract's zod schemas are never loaded).
|
|
14
|
+
*/
|
|
15
|
+
const searchEndpoints = { doc: {
|
|
16
|
+
method: "GET",
|
|
17
|
+
path: "/doc"
|
|
18
|
+
} };
|
|
7
19
|
const getSearchAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
8
|
-
const
|
|
20
|
+
const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
|
|
9
21
|
/**
|
|
10
22
|
* Search documentation
|
|
11
23
|
* @param params - Search parameters containing the input query.
|
|
12
24
|
* @returns Search results with GitHub URLs.
|
|
13
25
|
*/
|
|
14
|
-
const searchDoc = async (params, otherOptions = {}) => await require_fetcher.fetcher(
|
|
15
|
-
method:
|
|
26
|
+
const searchDoc = async (params, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, searchGroup, searchEndpoints.doc), authAPIOptions, otherOptions, {
|
|
27
|
+
method: searchEndpoints.doc.method,
|
|
16
28
|
params
|
|
17
29
|
});
|
|
18
30
|
return { searchDoc };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/search.ts"],"sourcesContent":["import type {\n SearchDocUtilParams,\n SearchDocUtilResult,\n} from '@intlayer/backend';\nimport { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\nexport const getSearchAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL
|
|
1
|
+
{"version":3,"file":"search.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/search.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type {\n SearchDocUtilParams,\n SearchDocUtilResult,\n SearchRoutes,\n searchContract,\n} from '@intlayer/backend-contract/search';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\n/** Prefix of the routes, checked against the backend contract. */\nconst searchGroup = {\n prefix: '/api/search',\n} as const satisfies Pick<typeof searchContract, 'prefix'>;\n\n/**\n * Method and path of every route, checked against the backend contract at\n * compile time (the contract's zod schemas are never loaded).\n */\nconst searchEndpoints = {\n doc: { method: 'GET', path: '/doc' },\n} as const satisfies RouteEndpoints<SearchRoutes>;\n\nexport const getSearchAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n /**\n * Search documentation\n * @param params - Search parameters containing the input query.\n * @returns Search results with GitHub URLs.\n */\n const searchDoc = async (\n params?: SearchDocUtilParams,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<SearchDocUtilResult>(\n buildRouteURL(backendURL, searchGroup, searchEndpoints.doc),\n authAPIOptions,\n otherOptions,\n {\n method: searchEndpoints.doc.method,\n params: params,\n }\n );\n\n return {\n searchDoc,\n };\n};\n\n/**\n * Authenticated `search` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const searchEndpoint = createEndpoint(getSearchAPI);\n"],"mappings":";;;;;;;;;AAeA,MAAM,cAAc,EAClB,QAAQ,cACV;;;;;AAMA,MAAM,kBAAkB,EACtB,KAAK;CAAE,QAAQ;CAAO,MAAM;AAAO,EACrC;AAEA,MAAa,gBACX,iBAAiC,CAAC,GAClC,mBACG;CACH,MAAM,aACJ,gBAAgB,QAAQ,cAAcA,8BAAO,cAAcC;;;;;;CAO7D,MAAM,YAAY,OAChB,QACA,eAA+B,CAAC,MAEhC,MAAMC,4BACJC,sDAAc,YAAY,aAAa,gBAAgB,GAAG,GAC1D,gBACA,cACA;EACE,QAAQ,gBAAgB,IAAI;EACpB;CACV,CACF;CAEF,OAAO,EACL,UACF;AACF;;;;;;;AAQA,MAAa,iBAAiBC,6CAAe,YAAY"}
|
|
@@ -2,10 +2,56 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_fetcher = require('../fetcher.cjs');
|
|
3
3
|
const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
|
|
4
4
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
|
+
let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
|
|
6
|
+
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
|
|
5
7
|
|
|
6
8
|
//#region src/getIntlayerAPI/showcaseProject.ts
|
|
9
|
+
/** Prefix of the routes, checked against the backend contract. */
|
|
10
|
+
const showcaseProjectGroup = { prefix: "/api/showcase-project" };
|
|
11
|
+
/**
|
|
12
|
+
* Method and path of every route, checked against the backend contract at
|
|
13
|
+
* compile time (the contract's zod schemas are never loaded).
|
|
14
|
+
*/
|
|
15
|
+
const showcaseProjectEndpoints = {
|
|
16
|
+
getShowcaseProjects: {
|
|
17
|
+
method: "GET",
|
|
18
|
+
path: "/"
|
|
19
|
+
},
|
|
20
|
+
submitShowcaseProject: {
|
|
21
|
+
method: "POST",
|
|
22
|
+
path: "/submit"
|
|
23
|
+
},
|
|
24
|
+
getOtherShowcaseProjects: {
|
|
25
|
+
method: "GET",
|
|
26
|
+
path: "/others"
|
|
27
|
+
},
|
|
28
|
+
toggleShowcaseUpvote: {
|
|
29
|
+
method: "POST",
|
|
30
|
+
path: "/upvote"
|
|
31
|
+
},
|
|
32
|
+
toggleShowcaseDownvote: {
|
|
33
|
+
method: "POST",
|
|
34
|
+
path: "/downvote"
|
|
35
|
+
},
|
|
36
|
+
getShowcaseProjectById: {
|
|
37
|
+
method: "GET",
|
|
38
|
+
path: "/:projectId"
|
|
39
|
+
},
|
|
40
|
+
scanShowcaseProject: {
|
|
41
|
+
method: "GET",
|
|
42
|
+
path: "/:projectId/scan"
|
|
43
|
+
},
|
|
44
|
+
deleteShowcaseProject: {
|
|
45
|
+
method: "DELETE",
|
|
46
|
+
path: "/:projectId"
|
|
47
|
+
},
|
|
48
|
+
updateShowcaseProject: {
|
|
49
|
+
method: "PATCH",
|
|
50
|
+
path: "/:projectId"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
7
53
|
const getShowcaseProjectAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
8
|
-
const
|
|
54
|
+
const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
|
|
9
55
|
const getShowcaseProjects = async (query, otherOptions = {}) => {
|
|
10
56
|
const params = {};
|
|
11
57
|
if (query?.page !== void 0) params.page = String(query.page);
|
|
@@ -13,35 +59,35 @@ const getShowcaseProjectAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
13
59
|
if (query?.search !== void 0) params.search = query.search;
|
|
14
60
|
if (query?.isOpenSource !== void 0) params.isOpenSource = String(query.isOpenSource);
|
|
15
61
|
if (query?.selectedUseCases?.length) params.selectedUseCases = query.selectedUseCases;
|
|
16
|
-
return await require_fetcher.fetcher(
|
|
17
|
-
method:
|
|
62
|
+
return await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.getShowcaseProjects), authAPIOptions, otherOptions, {
|
|
63
|
+
method: showcaseProjectEndpoints.getShowcaseProjects.method,
|
|
18
64
|
params
|
|
19
65
|
});
|
|
20
66
|
};
|
|
21
|
-
const getShowcaseProjectById = async (projectId, otherOptions = {}) => await require_fetcher.fetcher(
|
|
67
|
+
const getShowcaseProjectById = async (projectId, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.getShowcaseProjectById, { projectId }), authAPIOptions, otherOptions, { method: showcaseProjectEndpoints.getShowcaseProjectById.method });
|
|
22
68
|
const getOtherShowcaseProjects = async (query, otherOptions = {}) => {
|
|
23
69
|
const params = { excludeId: query.excludeId };
|
|
24
70
|
if (query.limit !== void 0) params.limit = String(query.limit);
|
|
25
|
-
return await require_fetcher.fetcher(
|
|
26
|
-
method:
|
|
71
|
+
return await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.getOtherShowcaseProjects), authAPIOptions, otherOptions, {
|
|
72
|
+
method: showcaseProjectEndpoints.getOtherShowcaseProjects.method,
|
|
27
73
|
params
|
|
28
74
|
});
|
|
29
75
|
};
|
|
30
|
-
const submitShowcaseProject = async (body, otherOptions = {}) => await require_fetcher.fetcher(
|
|
31
|
-
method:
|
|
76
|
+
const submitShowcaseProject = async (body, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.submitShowcaseProject), authAPIOptions, otherOptions, {
|
|
77
|
+
method: showcaseProjectEndpoints.submitShowcaseProject.method,
|
|
32
78
|
body
|
|
33
79
|
});
|
|
34
|
-
const toggleShowcaseUpvote = async (body, otherOptions = {}) => await require_fetcher.fetcher(
|
|
35
|
-
method:
|
|
80
|
+
const toggleShowcaseUpvote = async (body, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.toggleShowcaseUpvote), authAPIOptions, otherOptions, {
|
|
81
|
+
method: showcaseProjectEndpoints.toggleShowcaseUpvote.method,
|
|
36
82
|
body
|
|
37
83
|
});
|
|
38
|
-
const toggleShowcaseDownvote = async (body, otherOptions = {}) => await require_fetcher.fetcher(
|
|
39
|
-
method:
|
|
84
|
+
const toggleShowcaseDownvote = async (body, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.toggleShowcaseDownvote), authAPIOptions, otherOptions, {
|
|
85
|
+
method: showcaseProjectEndpoints.toggleShowcaseDownvote.method,
|
|
40
86
|
body
|
|
41
87
|
});
|
|
42
|
-
const deleteShowcaseProject = async (projectId, otherOptions = {}) => await require_fetcher.fetcher(
|
|
43
|
-
const updateShowcaseProject = async (projectId, body, otherOptions = {}) => await require_fetcher.fetcher(
|
|
44
|
-
method:
|
|
88
|
+
const deleteShowcaseProject = async (projectId, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.deleteShowcaseProject, { projectId }), authAPIOptions, otherOptions, { method: showcaseProjectEndpoints.deleteShowcaseProject.method });
|
|
89
|
+
const updateShowcaseProject = async (projectId, body, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, showcaseProjectGroup, showcaseProjectEndpoints.updateShowcaseProject, { projectId }), authAPIOptions, otherOptions, {
|
|
90
|
+
method: showcaseProjectEndpoints.updateShowcaseProject.method,
|
|
45
91
|
body
|
|
46
92
|
});
|
|
47
93
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcaseProject.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/showcaseProject.ts"],"sourcesContent":["import type {\n GetOtherShowcaseProjectsResult,\n GetShowcaseProjectByIdParams,\n GetShowcaseProjectByIdResult,\n GetShowcaseProjectsResult,\n SubmitShowcaseProjectBody,\n SubmitShowcaseProjectResult,\n ToggleShowcaseDownvoteBody,\n ToggleShowcaseDownvoteResult,\n ToggleShowcaseUpvoteBody,\n ToggleShowcaseUpvoteResult,\n UpdateShowcaseProjectBody,\n UpdateShowcaseProjectResult,\n} from '@intlayer/backend';\nimport { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\n// Client-side query types use proper JS types (numbers/booleans) rather than\n// the backend querystring types which are always strings.\nexport type ShowcaseProjectsQuery = {\n page?: number;\n pageSize?: number;\n search?: string;\n selectedUseCases?: string[];\n isOpenSource?: boolean;\n};\n\nexport type OtherShowcaseProjectsQuery = {\n excludeId: string;\n limit?: number;\n};\n\nexport const getShowcaseProjectAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL = intlayerConfig?.editor?.backendURL ?? editor.backendURL;\n\n const SHOWCASE_API_ROUTE = `${backendURL}/api/showcase-project`;\n\n const getShowcaseProjects = async (\n query?: ShowcaseProjectsQuery,\n otherOptions: FetcherOptions = {}\n ) => {\n const params: Record<string, string | string[]> = {};\n if (query?.page !== undefined) params.page = String(query.page);\n if (query?.pageSize !== undefined) params.pageSize = String(query.pageSize);\n if (query?.search !== undefined) params.search = query.search;\n if (query?.isOpenSource !== undefined)\n params.isOpenSource = String(query.isOpenSource);\n if (query?.selectedUseCases?.length)\n params.selectedUseCases = query.selectedUseCases;\n\n return await fetcher<GetShowcaseProjectsResult>(\n SHOWCASE_API_ROUTE,\n authAPIOptions,\n otherOptions,\n { method: 'GET', params: params as any }\n );\n };\n\n const getShowcaseProjectById = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetShowcaseProjectByIdResult>(\n `${SHOWCASE_API_ROUTE}/${projectId}`,\n authAPIOptions,\n otherOptions,\n { method: 'GET' }\n );\n\n const getOtherShowcaseProjects = async (\n query: OtherShowcaseProjectsQuery,\n otherOptions: FetcherOptions = {}\n ) => {\n const params: Record<string, string> = { excludeId: query.excludeId };\n if (query.limit !== undefined) params.limit = String(query.limit);\n return await fetcher<GetOtherShowcaseProjectsResult>(\n `${SHOWCASE_API_ROUTE}/others`,\n authAPIOptions,\n otherOptions,\n { method: 'GET', params: params as any }\n );\n };\n\n const submitShowcaseProject = async (\n body: SubmitShowcaseProjectBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<SubmitShowcaseProjectResult>(\n `${SHOWCASE_API_ROUTE}/submit`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const toggleShowcaseUpvote = async (\n body: ToggleShowcaseUpvoteBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<ToggleShowcaseUpvoteResult>(\n `${SHOWCASE_API_ROUTE}/upvote`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const toggleShowcaseDownvote = async (\n body: ToggleShowcaseDownvoteBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<ToggleShowcaseDownvoteResult>(\n `${SHOWCASE_API_ROUTE}/downvote`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const deleteShowcaseProject = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<{ data: { success: boolean } }>(\n `${SHOWCASE_API_ROUTE}/${projectId}`,\n authAPIOptions,\n otherOptions,\n { method: 'DELETE' }\n );\n\n const updateShowcaseProject = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n body: UpdateShowcaseProjectBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateShowcaseProjectResult>(\n `${SHOWCASE_API_ROUTE}/${projectId}`,\n authAPIOptions,\n otherOptions,\n { method: 'PATCH', body }\n );\n\n return {\n getShowcaseProjects,\n getShowcaseProjectById,\n getOtherShowcaseProjects,\n submitShowcaseProject,\n toggleShowcaseUpvote,\n toggleShowcaseDownvote,\n deleteShowcaseProject,\n updateShowcaseProject,\n };\n};\n\n/**\n * Authenticated `showcaseProject` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const showcaseProjectEndpoint = createEndpoint(getShowcaseProjectAPI);\n"],"mappings":";;;;;;AAkCA,MAAa,yBACX,iBAAiC,CAAC,GAClC,mBACG;CAGH,MAAM,qBAAqB,GAFR,gBAAgB,QAAQ,cAAcA,8BAAO,WAEvB;CAEzC,MAAM,sBAAsB,OAC1B,OACA,eAA+B,CAAC,MAC7B;EACH,MAAM,SAA4C,CAAC;EACnD,IAAI,OAAO,SAAS,QAAW,OAAO,OAAO,OAAO,MAAM,IAAI;EAC9D,IAAI,OAAO,aAAa,QAAW,OAAO,WAAW,OAAO,MAAM,QAAQ;EAC1E,IAAI,OAAO,WAAW,QAAW,OAAO,SAAS,MAAM;EACvD,IAAI,OAAO,iBAAiB,QAC1B,OAAO,eAAe,OAAO,MAAM,YAAY;EACjD,IAAI,OAAO,kBAAkB,QAC3B,OAAO,mBAAmB,MAAM;EAElC,OAAO,MAAMC,wBACX,oBACA,gBACA,cACA;GAAE,QAAQ;GAAe;EAAc,CACzC;CACF;CAEA,MAAM,yBAAyB,OAC7B,WACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,GAAG,aACzB,gBACA,cACA,EAAE,QAAQ,MAAM,CAClB;CAEF,MAAM,2BAA2B,OAC/B,OACA,eAA+B,CAAC,MAC7B;EACH,MAAM,SAAiC,EAAE,WAAW,MAAM,UAAU;EACpE,IAAI,MAAM,UAAU,QAAW,OAAO,QAAQ,OAAO,MAAM,KAAK;EAChE,OAAO,MAAMA,wBACX,GAAG,mBAAmB,UACtB,gBACA,cACA;GAAE,QAAQ;GAAe;EAAc,CACzC;CACF;CAEA,MAAM,wBAAwB,OAC5B,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,UACtB,gBACA,cACA;EAAE,QAAQ;EAAQ;CAAK,CACzB;CAEF,MAAM,uBAAuB,OAC3B,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,UACtB,gBACA,cACA;EAAE,QAAQ;EAAQ;CAAK,CACzB;CAEF,MAAM,yBAAyB,OAC7B,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,YACtB,gBACA,cACA;EAAE,QAAQ;EAAQ;CAAK,CACzB;CAEF,MAAM,wBAAwB,OAC5B,WACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,GAAG,aACzB,gBACA,cACA,EAAE,QAAQ,SAAS,CACrB;CAEF,MAAM,wBAAwB,OAC5B,WACA,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,mBAAmB,GAAG,aACzB,gBACA,cACA;EAAE,QAAQ;EAAS;CAAK,CAC1B;CAEF,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,0BAA0BC,6CAAe,qBAAqB"}
|
|
1
|
+
{"version":3,"file":"showcaseProject.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/showcaseProject.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type {\n GetOtherShowcaseProjectsResult,\n GetShowcaseProjectByIdParams,\n GetShowcaseProjectByIdResult,\n GetShowcaseProjectsResult,\n ShowcaseProjectRoutes,\n SubmitShowcaseProjectBody,\n SubmitShowcaseProjectResult,\n showcaseProjectContract,\n ToggleShowcaseDownvoteBody,\n ToggleShowcaseDownvoteResult,\n ToggleShowcaseUpvoteBody,\n ToggleShowcaseUpvoteResult,\n UpdateShowcaseProjectBody,\n UpdateShowcaseProjectResult,\n} from '@intlayer/backend-contract/showcaseProject';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\n// Client-side query types use proper JS types (numbers/booleans) rather than\n// the backend querystring types which are always strings.\nexport type ShowcaseProjectsQuery = {\n page?: number;\n pageSize?: number;\n search?: string;\n selectedUseCases?: string[];\n isOpenSource?: boolean;\n};\n\nexport type OtherShowcaseProjectsQuery = {\n excludeId: string;\n limit?: number;\n};\n\n/** Prefix of the routes, checked against the backend contract. */\nconst showcaseProjectGroup = {\n prefix: '/api/showcase-project',\n} as const satisfies Pick<typeof showcaseProjectContract, 'prefix'>;\n\n/**\n * Method and path of every route, checked against the backend contract at\n * compile time (the contract's zod schemas are never loaded).\n */\nconst showcaseProjectEndpoints = {\n getShowcaseProjects: { method: 'GET', path: '/' },\n submitShowcaseProject: { method: 'POST', path: '/submit' },\n getOtherShowcaseProjects: { method: 'GET', path: '/others' },\n toggleShowcaseUpvote: { method: 'POST', path: '/upvote' },\n toggleShowcaseDownvote: { method: 'POST', path: '/downvote' },\n getShowcaseProjectById: { method: 'GET', path: '/:projectId' },\n scanShowcaseProject: { method: 'GET', path: '/:projectId/scan' },\n deleteShowcaseProject: { method: 'DELETE', path: '/:projectId' },\n updateShowcaseProject: { method: 'PATCH', path: '/:projectId' },\n} as const satisfies RouteEndpoints<ShowcaseProjectRoutes>;\n\nexport const getShowcaseProjectAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n const getShowcaseProjects = async (\n query?: ShowcaseProjectsQuery,\n otherOptions: FetcherOptions = {}\n ) => {\n const params: Record<string, string | string[]> = {};\n if (query?.page !== undefined) params.page = String(query.page);\n if (query?.pageSize !== undefined) params.pageSize = String(query.pageSize);\n if (query?.search !== undefined) params.search = query.search;\n if (query?.isOpenSource !== undefined)\n params.isOpenSource = String(query.isOpenSource);\n if (query?.selectedUseCases?.length)\n params.selectedUseCases = query.selectedUseCases;\n\n return await fetcher<GetShowcaseProjectsResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.getShowcaseProjects\n ),\n authAPIOptions,\n otherOptions,\n {\n method: showcaseProjectEndpoints.getShowcaseProjects.method,\n params: params as any,\n }\n );\n };\n\n const getShowcaseProjectById = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetShowcaseProjectByIdResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.getShowcaseProjectById,\n { projectId }\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.getShowcaseProjectById.method }\n );\n\n const getOtherShowcaseProjects = async (\n query: OtherShowcaseProjectsQuery,\n otherOptions: FetcherOptions = {}\n ) => {\n const params: Record<string, string> = { excludeId: query.excludeId };\n if (query.limit !== undefined) params.limit = String(query.limit);\n return await fetcher<GetOtherShowcaseProjectsResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.getOtherShowcaseProjects\n ),\n authAPIOptions,\n otherOptions,\n {\n method: showcaseProjectEndpoints.getOtherShowcaseProjects.method,\n params: params as any,\n }\n );\n };\n\n const submitShowcaseProject = async (\n body: SubmitShowcaseProjectBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<SubmitShowcaseProjectResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.submitShowcaseProject\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.submitShowcaseProject.method, body }\n );\n\n const toggleShowcaseUpvote = async (\n body: ToggleShowcaseUpvoteBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<ToggleShowcaseUpvoteResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.toggleShowcaseUpvote\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.toggleShowcaseUpvote.method, body }\n );\n\n const toggleShowcaseDownvote = async (\n body: ToggleShowcaseDownvoteBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<ToggleShowcaseDownvoteResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.toggleShowcaseDownvote\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.toggleShowcaseDownvote.method, body }\n );\n\n const deleteShowcaseProject = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<{ data: { success: boolean } }>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.deleteShowcaseProject,\n { projectId }\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.deleteShowcaseProject.method }\n );\n\n const updateShowcaseProject = async (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n body: UpdateShowcaseProjectBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateShowcaseProjectResult>(\n buildRouteURL(\n backendURL,\n showcaseProjectGroup,\n showcaseProjectEndpoints.updateShowcaseProject,\n { projectId }\n ),\n authAPIOptions,\n otherOptions,\n { method: showcaseProjectEndpoints.updateShowcaseProject.method, body }\n );\n\n return {\n getShowcaseProjects,\n getShowcaseProjectById,\n getOtherShowcaseProjects,\n submitShowcaseProject,\n toggleShowcaseUpvote,\n toggleShowcaseDownvote,\n deleteShowcaseProject,\n updateShowcaseProject,\n };\n};\n\n/**\n * Authenticated `showcaseProject` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const showcaseProjectEndpoint = createEndpoint(getShowcaseProjectAPI);\n"],"mappings":"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"}
|
|
@@ -2,8 +2,21 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_fetcher = require('../fetcher.cjs');
|
|
3
3
|
const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
|
|
4
4
|
let _intlayer_config_built = require("@intlayer/config/built");
|
|
5
|
+
let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
|
|
6
|
+
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
|
|
5
7
|
|
|
6
8
|
//#region src/getIntlayerAPI/status.ts
|
|
9
|
+
/** Routes used here, checked against the backend contract. */
|
|
10
|
+
const userGroup = { prefix: "/api/user" };
|
|
11
|
+
const setupStatusEndpoint = {
|
|
12
|
+
method: "GET",
|
|
13
|
+
path: "/setup"
|
|
14
|
+
};
|
|
15
|
+
const demoGroup = { prefix: "/api/demo" };
|
|
16
|
+
const demoEndpoints = { getDemoSession: {
|
|
17
|
+
method: "GET",
|
|
18
|
+
path: "/session"
|
|
19
|
+
} };
|
|
7
20
|
/**
|
|
8
21
|
* Instance/entry status endpoints. These back the decisions made when an
|
|
9
22
|
* unauthenticated visitor reaches the app root:
|
|
@@ -14,21 +27,21 @@ let _intlayer_config_built = require("@intlayer/config/built");
|
|
|
14
27
|
* response).
|
|
15
28
|
*/
|
|
16
29
|
const getStatusAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
17
|
-
const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL;
|
|
30
|
+
const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
|
|
18
31
|
/**
|
|
19
32
|
* Reports whether the instance still needs its initial setup (creation of
|
|
20
33
|
* the first super-admin). Only ever `true` on a self-hosted deployment with
|
|
21
34
|
* an empty users collection. Public endpoint — no authentication required.
|
|
22
35
|
* @returns `{ isSetupRequired: boolean }`.
|
|
23
36
|
*/
|
|
24
|
-
const getSetupStatus = async (otherOptions = {}) => await require_fetcher.fetcher(
|
|
37
|
+
const getSetupStatus = async (otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, setupStatusEndpoint), authAPIOptions, otherOptions, { cache: "no-store" });
|
|
25
38
|
/**
|
|
26
39
|
* Signs the current browser into the shared demo account. The backend
|
|
27
40
|
* responds with a `Set-Cookie` header establishing the demo session, so this
|
|
28
41
|
* must run with credentials included (the default in the fetcher).
|
|
29
42
|
* @returns `{ ok: boolean }`.
|
|
30
43
|
*/
|
|
31
|
-
const getDemoSession = async (otherOptions = {}) => await require_fetcher.fetcher(
|
|
44
|
+
const getDemoSession = async (otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, demoGroup, demoEndpoints.getDemoSession), authAPIOptions, otherOptions, { cache: "no-store" });
|
|
32
45
|
return {
|
|
33
46
|
getSetupStatus,
|
|
34
47
|
getDemoSession
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/status.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"status.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/status.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type {\n DemoRoutes,\n demoContract,\n GetDemoSessionResult,\n} from '@intlayer/backend-contract/demo';\nimport type {\n GetSetupStatusResult,\n UserRoutes,\n userContract,\n} from '@intlayer/backend-contract/user';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\n/** Result of the demo-session bootstrap endpoint. */\nexport type { GetDemoSessionResult };\n\n/** Routes used here, checked against the backend contract. */\nconst userGroup = {\n prefix: '/api/user',\n} as const satisfies Pick<typeof userContract, 'prefix'>;\nconst setupStatusEndpoint = {\n method: 'GET',\n path: '/setup',\n} as const satisfies Pick<UserRoutes['getSetupStatus'], 'method' | 'path'>;\nconst demoGroup = {\n prefix: '/api/demo',\n} as const satisfies Pick<typeof demoContract, 'prefix'>;\nconst demoEndpoints = {\n getDemoSession: { method: 'GET', path: '/session' },\n} as const satisfies RouteEndpoints<DemoRoutes>;\n\n/**\n * Instance/entry status endpoints. These back the decisions made when an\n * unauthenticated visitor reaches the app root:\n * - `getSetupStatus` — on a self-hosted instance, whether the first\n * super-admin still needs to be created.\n * - `getDemoSession` — on the hosted cloud, signs the visitor into the shared\n * read-only demo account (the backend sets the session cookie on the\n * response).\n */\nexport const getStatusAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n /**\n * Reports whether the instance still needs its initial setup (creation of\n * the first super-admin). Only ever `true` on a self-hosted deployment with\n * an empty users collection. Public endpoint — no authentication required.\n * @returns `{ isSetupRequired: boolean }`.\n */\n const getSetupStatus = async (otherOptions: FetcherOptions = {}) =>\n await fetcher<GetSetupStatusResult>(\n buildRouteURL(backendURL, userGroup, setupStatusEndpoint),\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Signs the current browser into the shared demo account. The backend\n * responds with a `Set-Cookie` header establishing the demo session, so this\n * must run with credentials included (the default in the fetcher).\n * @returns `{ ok: boolean }`.\n */\n const getDemoSession = async (otherOptions: FetcherOptions = {}) =>\n await fetcher<GetDemoSessionResult>(\n buildRouteURL(backendURL, demoGroup, demoEndpoints.getDemoSession),\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n return {\n getSetupStatus,\n getDemoSession,\n };\n};\n\n/**\n * Instance status endpoints bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const statusEndpoint = createEndpoint(getStatusAPI);\n"],"mappings":";;;;;;;;;AAsBA,MAAM,YAAY,EAChB,QAAQ,YACV;AACA,MAAM,sBAAsB;CAC1B,QAAQ;CACR,MAAM;AACR;AACA,MAAM,YAAY,EAChB,QAAQ,YACV;AACA,MAAM,gBAAgB,EACpB,gBAAgB;CAAE,QAAQ;CAAO,MAAM;AAAW,EACpD;;;;;;;;;;AAWA,MAAa,gBACX,iBAAiC,CAAC,GAClC,mBACG;CACH,MAAM,aACJ,gBAAgB,QAAQ,cAAcA,8BAAO,cAAcC;;;;;;;CAQ7D,MAAM,iBAAiB,OAAO,eAA+B,CAAC,MAC5D,MAAMC,4BACJC,sDAAc,YAAY,WAAW,mBAAmB,GACxD,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;;CAQF,MAAM,iBAAiB,OAAO,eAA+B,CAAC,MAC5D,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,cAAc,GACjE,gBACA,cACA,EACE,OAAO,WACT,CACF;CAEF,OAAO;EACL;EACA;CACF;AACF;;;;;;;AAQA,MAAa,iBAAiBC,6CAAe,YAAY"}
|