@intlayer/api 9.6.0 → 9.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cms/createAuthManager.cjs +2 -3
- package/dist/cjs/cms/createIntlayerCMS.cjs +2 -3
- package/dist/cjs/cms/index.cjs +2 -2
- package/dist/cjs/distantDictionary/fetchDistantDictionaries.cjs +3 -4
- package/dist/cjs/distantDictionary/fetchDistantDictionaries.cjs.map +1 -1
- package/dist/cjs/distantDictionary/fetchDistantDictionary.cjs +3 -4
- package/dist/cjs/distantDictionary/fetchDistantDictionary.cjs.map +1 -1
- package/dist/cjs/distantDictionary/index.cjs +2 -2
- package/dist/cjs/fetcher.cjs +2 -3
- package/dist/cjs/fetcher.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/ai.cjs +79 -26
- package/dist/cjs/getIntlayerAPI/ai.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/analytics.cjs +47 -14
- package/dist/cjs/getIntlayerAPI/analytics.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/asset.cjs +41 -12
- package/dist/cjs/getIntlayerAPI/asset.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/audit.cjs +73 -20
- package/dist/cjs/getIntlayerAPI/audit.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/bitbucket.cjs +42 -13
- package/dist/cjs/getIntlayerAPI/bitbucket.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/codeberg.cjs +20 -0
- package/dist/cjs/getIntlayerAPI/codeberg.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/dictionary.cjs +62 -17
- package/dist/cjs/getIntlayerAPI/dictionary.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/editor.cjs +3 -4
- package/dist/cjs/getIntlayerAPI/editor.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/environment.cjs +47 -14
- package/dist/cjs/getIntlayerAPI/environment.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/forge.cjs +63 -0
- package/dist/cjs/getIntlayerAPI/forge.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/gitee.cjs +20 -0
- package/dist/cjs/getIntlayerAPI/gitee.cjs.map +1 -0
- package/dist/cjs/getIntlayerAPI/github.cjs +47 -14
- package/dist/cjs/getIntlayerAPI/github.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/gitlab.cjs +42 -13
- package/dist/cjs/getIntlayerAPI/gitlab.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/index.cjs +27 -24
- package/dist/cjs/getIntlayerAPI/index.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/newsletter.cjs +31 -10
- package/dist/cjs/getIntlayerAPI/newsletter.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/oAuth.cjs +33 -8
- package/dist/cjs/getIntlayerAPI/oAuth.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/organization.cjs +75 -24
- package/dist/cjs/getIntlayerAPI/organization.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/project.cjs +115 -33
- package/dist/cjs/getIntlayerAPI/project.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/reviewer.cjs +145 -35
- package/dist/cjs/getIntlayerAPI/reviewer.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/search.cjs +18 -7
- package/dist/cjs/getIntlayerAPI/search.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/showcaseProject.cjs +64 -19
- package/dist/cjs/getIntlayerAPI/showcaseProject.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/status.cjs +19 -7
- package/dist/cjs/getIntlayerAPI/status.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/stripe.cjs +144 -39
- package/dist/cjs/getIntlayerAPI/stripe.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/tag.cjs +36 -11
- package/dist/cjs/getIntlayerAPI/tag.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/translate.cjs +49 -12
- package/dist/cjs/getIntlayerAPI/translate.cjs.map +1 -1
- package/dist/cjs/getIntlayerAPI/user.cjs +61 -18
- package/dist/cjs/getIntlayerAPI/user.cjs.map +1 -1
- package/dist/cjs/index.cjs +38 -30
- package/dist/cjs/proxy.cjs +28 -25
- package/dist/cjs/proxy.cjs.map +1 -1
- package/dist/cjs/public/createPublicClient.cjs +26 -7
- package/dist/cjs/public/createPublicClient.cjs.map +1 -1
- package/dist/cjs/public/index.cjs +1 -1
- package/dist/cjs/resolveInternalBackendUrl.cjs +1 -2
- package/dist/esm/cms/createAuthManager.mjs +1 -2
- package/dist/esm/cms/createIntlayerCMS.mjs +1 -2
- package/dist/esm/distantDictionary/fetchDistantDictionaries.mjs +1 -2
- package/dist/esm/distantDictionary/fetchDistantDictionaries.mjs.map +1 -1
- package/dist/esm/distantDictionary/fetchDistantDictionary.mjs +1 -2
- package/dist/esm/distantDictionary/fetchDistantDictionary.mjs.map +1 -1
- package/dist/esm/fetcher.mjs +1 -2
- package/dist/esm/fetcher.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/ai.mjs +78 -25
- package/dist/esm/getIntlayerAPI/ai.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/analytics.mjs +46 -13
- package/dist/esm/getIntlayerAPI/analytics.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/asset.mjs +40 -11
- package/dist/esm/getIntlayerAPI/asset.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/audit.mjs +72 -19
- package/dist/esm/getIntlayerAPI/audit.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/bitbucket.mjs +41 -12
- package/dist/esm/getIntlayerAPI/bitbucket.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/codeberg.mjs +18 -0
- package/dist/esm/getIntlayerAPI/codeberg.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/dictionary.mjs +61 -16
- package/dist/esm/getIntlayerAPI/dictionary.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/editor.mjs +2 -3
- package/dist/esm/getIntlayerAPI/editor.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/environment.mjs +46 -13
- package/dist/esm/getIntlayerAPI/environment.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/forge.mjs +62 -0
- package/dist/esm/getIntlayerAPI/forge.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/gitee.mjs +18 -0
- package/dist/esm/getIntlayerAPI/gitee.mjs.map +1 -0
- package/dist/esm/getIntlayerAPI/github.mjs +46 -13
- package/dist/esm/getIntlayerAPI/github.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/gitlab.mjs +41 -12
- package/dist/esm/getIntlayerAPI/gitlab.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/index.mjs +6 -3
- package/dist/esm/getIntlayerAPI/index.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/newsletter.mjs +30 -9
- package/dist/esm/getIntlayerAPI/newsletter.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/oAuth.mjs +32 -7
- package/dist/esm/getIntlayerAPI/oAuth.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/organization.mjs +74 -23
- package/dist/esm/getIntlayerAPI/organization.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/project.mjs +114 -32
- package/dist/esm/getIntlayerAPI/project.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/reviewer.mjs +144 -34
- package/dist/esm/getIntlayerAPI/reviewer.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/search.mjs +17 -6
- package/dist/esm/getIntlayerAPI/search.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/showcaseProject.mjs +63 -18
- package/dist/esm/getIntlayerAPI/showcaseProject.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/status.mjs +18 -6
- package/dist/esm/getIntlayerAPI/status.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/stripe.mjs +143 -38
- package/dist/esm/getIntlayerAPI/stripe.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/tag.mjs +35 -10
- package/dist/esm/getIntlayerAPI/tag.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/translate.mjs +48 -11
- package/dist/esm/getIntlayerAPI/translate.mjs.map +1 -1
- package/dist/esm/getIntlayerAPI/user.mjs +60 -17
- package/dist/esm/getIntlayerAPI/user.mjs.map +1 -1
- package/dist/esm/index.mjs +10 -7
- package/dist/esm/proxy.mjs +6 -3
- package/dist/esm/proxy.mjs.map +1 -1
- package/dist/esm/public/createPublicClient.mjs +26 -7
- package/dist/esm/public/createPublicClient.mjs.map +1 -1
- package/dist/esm/resolveInternalBackendUrl.mjs +1 -2
- package/dist/types/cms/createAuthManager.d.ts +1 -2
- package/dist/types/cms/createAuthManager.d.ts.map +1 -1
- package/dist/types/cms/createIntlayerCMS.d.ts +0 -2
- package/dist/types/cms/createIntlayerCMS.d.ts.map +1 -1
- package/dist/types/distantDictionary/fetchDistantDictionaries.d.ts +1 -3
- package/dist/types/distantDictionary/fetchDistantDictionaries.d.ts.map +1 -1
- package/dist/types/distantDictionary/fetchDistantDictionary.d.ts +1 -3
- package/dist/types/distantDictionary/fetchDistantDictionary.d.ts.map +1 -1
- package/dist/types/fetcher.d.ts +1 -3
- package/dist/types/fetcher.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/ai.d.ts +3 -5
- package/dist/types/getIntlayerAPI/ai.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/analytics.d.ts +3 -5
- package/dist/types/getIntlayerAPI/analytics.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/asset.d.ts +3 -4
- package/dist/types/getIntlayerAPI/asset.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/audit.d.ts +49 -7
- package/dist/types/getIntlayerAPI/audit.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/bitbucket.d.ts +2 -4
- package/dist/types/getIntlayerAPI/bitbucket.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/codeberg.d.ts +59 -0
- package/dist/types/getIntlayerAPI/codeberg.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/dictionary.d.ts +3 -5
- package/dist/types/getIntlayerAPI/dictionary.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/editor.d.ts +4 -5
- package/dist/types/getIntlayerAPI/editor.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/environment.d.ts +3 -5
- package/dist/types/getIntlayerAPI/environment.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/forge.d.ts +34 -0
- package/dist/types/getIntlayerAPI/forge.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/gitee.d.ts +59 -0
- package/dist/types/getIntlayerAPI/gitee.d.ts.map +1 -0
- package/dist/types/getIntlayerAPI/github.d.ts +2 -4
- package/dist/types/getIntlayerAPI/github.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/gitlab.d.ts +2 -4
- package/dist/types/getIntlayerAPI/gitlab.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/index.d.ts +6 -3
- package/dist/types/getIntlayerAPI/index.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/newsletter.d.ts +3 -5
- package/dist/types/getIntlayerAPI/newsletter.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/oAuth.d.ts +2 -2
- package/dist/types/getIntlayerAPI/oAuth.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/organization.d.ts +3 -7
- package/dist/types/getIntlayerAPI/organization.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/project.d.ts +4 -5
- package/dist/types/getIntlayerAPI/project.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/reviewer.d.ts +682 -39
- package/dist/types/getIntlayerAPI/reviewer.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/search.d.ts +3 -5
- package/dist/types/getIntlayerAPI/search.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/showcaseProject.d.ts +3 -5
- package/dist/types/getIntlayerAPI/showcaseProject.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/status.d.ts +5 -8
- package/dist/types/getIntlayerAPI/status.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/stripe.d.ts +3 -5
- package/dist/types/getIntlayerAPI/stripe.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/tag.d.ts +3 -5
- package/dist/types/getIntlayerAPI/tag.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/translate.d.ts +3 -5
- package/dist/types/getIntlayerAPI/translate.d.ts.map +1 -1
- package/dist/types/getIntlayerAPI/user.d.ts +6 -8
- package/dist/types/getIntlayerAPI/user.d.ts.map +1 -1
- package/dist/types/index.d.ts +12 -9
- package/dist/types/proxy.d.ts +0 -2
- package/dist/types/proxy.d.ts.map +1 -1
- package/dist/types/public/createPublicClient.d.ts +1 -9
- package/dist/types/public/createPublicClient.d.ts.map +1 -1
- package/dist/types/resolveInternalBackendUrl.d.ts +0 -2
- package/dist/types/resolveInternalBackendUrl.d.ts.map +1 -1
- package/dist/types/types.d.ts +5 -2
- package/package.json +23 -6
|
@@ -1,11 +1,121 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const require_cms_createIntlayerCMS = require("../cms/createIntlayerCMS.cjs");
|
|
3
|
+
const require_fetcher = require("../fetcher.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
|
+
// 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,
|
|
@@ -136,7 +247,6 @@ const getReviewerAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
136
247
|
*/
|
|
137
248
|
const reviewerEndpoint = require_cms_createIntlayerCMS.createEndpoint(getReviewerAPI);
|
|
138
249
|
|
|
139
|
-
//#endregion
|
|
140
250
|
exports.getReviewerAPI = getReviewerAPI;
|
|
141
251
|
exports.reviewerEndpoint = reviewerEndpoint;
|
|
142
252
|
//# sourceMappingURL=reviewer.cjs.map
|
|
@@ -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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"}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const require_cms_createIntlayerCMS = require("../cms/createIntlayerCMS.cjs");
|
|
3
|
+
const require_fetcher = require("../fetcher.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
|
+
// 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 };
|
|
@@ -25,7 +37,6 @@ const getSearchAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
25
37
|
*/
|
|
26
38
|
const searchEndpoint = require_cms_createIntlayerCMS.createEndpoint(getSearchAPI);
|
|
27
39
|
|
|
28
|
-
//#endregion
|
|
29
40
|
exports.getSearchAPI = getSearchAPI;
|
|
30
41
|
exports.searchEndpoint = searchEndpoint;
|
|
31
42
|
//# sourceMappingURL=search.cjs.map
|
|
@@ -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"}
|
|
@@ -1,11 +1,57 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const require_cms_createIntlayerCMS = require("../cms/createIntlayerCMS.cjs");
|
|
3
|
+
const require_fetcher = require("../fetcher.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
|
+
// 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 {
|
|
@@ -63,7 +109,6 @@ const getShowcaseProjectAPI = (authAPIOptions = {}, intlayerConfig) => {
|
|
|
63
109
|
*/
|
|
64
110
|
const showcaseProjectEndpoint = require_cms_createIntlayerCMS.createEndpoint(getShowcaseProjectAPI);
|
|
65
111
|
|
|
66
|
-
//#endregion
|
|
67
112
|
exports.getShowcaseProjectAPI = getShowcaseProjectAPI;
|
|
68
113
|
exports.showcaseProjectEndpoint = showcaseProjectEndpoint;
|
|
69
114
|
//# sourceMappingURL=showcaseProject.cjs.map
|
|
@@ -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":";;;;;;;;;AAwCA,MAAM,uBAAuB,EAC3B,QAAQ,wBACV;;;;;AAMA,MAAM,2BAA2B;CAC/B,qBAAqB;EAAE,QAAQ;EAAO,MAAM;CAAI;CAChD,uBAAuB;EAAE,QAAQ;EAAQ,MAAM;CAAU;CACzD,0BAA0B;EAAE,QAAQ;EAAO,MAAM;CAAU;CAC3D,sBAAsB;EAAE,QAAQ;EAAQ,MAAM;CAAU;CACxD,wBAAwB;EAAE,QAAQ;EAAQ,MAAM;CAAY;CAC5D,wBAAwB;EAAE,QAAQ;EAAO,MAAM;CAAc;CAC7D,qBAAqB;EAAE,QAAQ;EAAO,MAAM;CAAmB;CAC/D,uBAAuB;EAAE,QAAQ;EAAU,MAAM;CAAc;CAC/D,uBAAuB;EAAE,QAAQ;EAAS,MAAM;CAAc;AAChE;AAEA,MAAa,yBACX,iBAAiC,CAAC,GAClC,mBACG;CACH,MAAM,aACJ,gBAAgB,QAAQ,cAAcA,8BAAO,cAAcC;CAE7D,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,4BACXC,sDACE,YACA,sBACA,yBAAyB,mBAC3B,GACA,gBACA,cACA;GACE,QAAQ,yBAAyB,oBAAoB;GAC7C;EACV,CACF;CACF;CAEA,MAAM,yBAAyB,OAC7B,WACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,wBACzB,EAAE,UAAU,CACd,GACA,gBACA,cACA,EAAE,QAAQ,yBAAyB,uBAAuB,OAAO,CACnE;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,MAAMD,4BACXC,sDACE,YACA,sBACA,yBAAyB,wBAC3B,GACA,gBACA,cACA;GACE,QAAQ,yBAAyB,yBAAyB;GAClD;EACV,CACF;CACF;CAEA,MAAM,wBAAwB,OAC5B,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,qBAC3B,GACA,gBACA,cACA;EAAE,QAAQ,yBAAyB,sBAAsB;EAAQ;CAAK,CACxE;CAEF,MAAM,uBAAuB,OAC3B,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,oBAC3B,GACA,gBACA,cACA;EAAE,QAAQ,yBAAyB,qBAAqB;EAAQ;CAAK,CACvE;CAEF,MAAM,yBAAyB,OAC7B,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,sBAC3B,GACA,gBACA,cACA;EAAE,QAAQ,yBAAyB,uBAAuB;EAAQ;CAAK,CACzE;CAEF,MAAM,wBAAwB,OAC5B,WACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,uBACzB,EAAE,UAAU,CACd,GACA,gBACA,cACA,EAAE,QAAQ,yBAAyB,sBAAsB,OAAO,CAClE;CAEF,MAAM,wBAAwB,OAC5B,WACA,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDACE,YACA,sBACA,yBAAyB,uBACzB,EAAE,UAAU,CACd,GACA,gBACA,cACA;EAAE,QAAQ,yBAAyB,sBAAsB;EAAQ;CAAK,CACxE;CAEF,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,0BAA0BC,6CAAe,qBAAqB"}
|