Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3cfb293

Browse files
authored
Merge branch 'dev' into ee-setup
2 parents5f94c41 +e7e3d9e commit3cfb293

File tree

29 files changed

+1409
-308
lines changed

29 files changed

+1409
-308
lines changed

‎.github/workflows/docker-images.yml‎

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ on:
1010
default:'latest'
1111
options:
1212
-latest
13+
-stable
1314
-test
14-
-2.4.6
1515
build_allinone:
1616
type:boolean
1717
description:'Build the All-In-One image'
@@ -41,24 +41,60 @@ jobs:
4141
build:
4242
runs-on:ubuntu-latest
4343
steps:
44+
-name:'Setup jq'
45+
uses:dcarbone/install-jq-action@v3
46+
with:
47+
version:'1.7'
48+
4449
-name:Set environment variables
4550
shell:bash
4651
run:|
4752
# Get the short SHA of last commit
4853
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
49-
54+
5055
# Get branch name - we don't use github.ref_head_name since we don't build on PRs
5156
echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
52-
57+
5358
# Set docker image tag
54-
echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}"
55-
59+
IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}
60+
61+
# Check whether it's a release
62+
LATEST_TAG=$(
63+
curl -s -L \
64+
-H "Accept: application/vnd.github+json" \
65+
-H "Authorization: Bearer ${{ github.token }}" \
66+
https://api.github.com/repos/${{ github.repository }}/releases/latest \
67+
| jq -r '.tag_name'
68+
)
69+
IS_LATEST="false"
70+
if [[ "${LATEST_TAG}" == "${{ github.event.release.tag_name }}" ]]; then
71+
IS_LATEST="true"
72+
fi;
73+
5674
# Control which images to build
5775
echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
5876
echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
5977
echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
6078
echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
6179
80+
# Image names
81+
ALLINONE_IMAGE_NAMES=lowcoderorg/lowcoder-ce:${IMAGE_TAG}
82+
FRONTEND_IMAGE_NAMES=lowcoderorg/lowcoder-ce-frontend:${IMAGE_TAG}
83+
APISERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-api-service:${IMAGE_TAG}
84+
NODESERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-node-service:${IMAGE_TAG}
85+
86+
if [[ "${IS_LATEST}" == "true" ]]; then
87+
ALLINONE_IMAGE_NAMES="lowcoderorg/lowcoder-ce:latest,${ALLINONE_IMAGE_NAMES}"
88+
FRONTEND_IMAGE_NAMES="lowcoderorg/lowcoder-ce-frontend:latest,${FRONTEND_IMAGE_NAMES}"
89+
APISERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-api-service:latest,${APISERVICE_IMAGE_NAMES}"
90+
NODESERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-node-service:latest,${NODESERVICE_IMAGE_NAMES}"
91+
fi;
92+
93+
echo "ALLINONE_IMAGE_NAMES=${ALLINONE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
94+
echo "FRONTEND_IMAGE_NAMES=${FRONTEND_IMAGE_NAMES}" >> "${GITHUB_ENV}"
95+
echo "APISERVICE_IMAGE_NAMES=${APISERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
96+
echo "NODESERVICE_IMAGE_NAMES=${NODESERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
97+
6298
-name:Checkout lowcoder source
6399
uses:actions/checkout@v4
64100
with:
@@ -91,7 +127,7 @@ jobs:
91127
linux/amd64
92128
linux/arm64
93129
push:true
94-
tags:lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }}
130+
tags:${{ env.ALLINONE_IMAGE_NAMES }}
95131

96132
-name:Build and push the frontend image
97133
if:${{ env.BUILD_FRONTEND == 'true' }}
@@ -108,7 +144,7 @@ jobs:
108144
linux/amd64
109145
linux/arm64
110146
push:true
111-
tags:lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }}
147+
tags:${{ env.FRONTEND_IMAGE_NAMES }}
112148

113149
-name:Build and push the node service image
114150
if:${{ env.BUILD_NODESERVICE == 'true' }}
@@ -120,7 +156,7 @@ jobs:
120156
linux/amd64
121157
linux/arm64
122158
push:true
123-
tags:lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }}
159+
tags:${{ env.NODESERVICE_IMAGE_NAMES }}
124160

125161
-name:Build and push the API service image
126162
if:${{ env.BUILD_APISERVICE == 'true' }}
@@ -132,5 +168,5 @@ jobs:
132168
linux/amd64
133169
linux/arm64
134170
push:true
135-
tags:lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }}
171+
tags:${{ env.APISERVICE_IMAGE_NAMES }}
136172

‎client/package.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"flag-icons":"^7.2.1",
8484
"number-precision":"^1.6.0",
8585
"react-countup":"^6.5.3",
86+
"react-github-btn":"^1.4.0",
8687
"react-player":"^2.11.0",
8788
"resize-observer-polyfill":"^1.5.1",
8889
"rollup":"^4.22.5",

‎client/packages/lowcoder-comps/package.json‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name":"lowcoder-comps",
3-
"version":"2.7.0",
3+
"version":"2.7.1",
44
"type":"module",
55
"license":"MIT",
66
"dependencies": {
@@ -17,8 +17,6 @@
1717
"@fullcalendar/resource-timeline":"^6.1.11",
1818
"@fullcalendar/timegrid":"^6.1.6",
1919
"@fullcalendar/timeline":"^6.1.6",
20-
"@types/react":"^19.1.2",
21-
"@types/react-dom":"^19.1.2",
2220
"agora-rtc-sdk-ng":"^4.20.2",
2321
"agora-rtm-sdk":"^1.5.1",
2422
"big.js":"^6.2.1",
@@ -28,8 +26,8 @@
2826
"lowcoder-cli":"workspace:^",
2927
"lowcoder-sdk":"workspace:^",
3028
"mermaid":"^10.6.1",
31-
"react":"^19.1.0",
32-
"react-dom":"^19.1.0",
29+
"react":"18.3.0",
30+
"react-dom":"18.3.0",
3331
"typescript":"4.8.4"
3432
},
3533
"lowcoder": {
@@ -261,6 +259,8 @@
261259
"test":"jest"
262260
},
263261
"devDependencies": {
262+
"@types/react":"18",
263+
"@types/react-dom":"18",
264264
"jest":"29.3.0",
265265
"vite":"^4.5.5",
266266
"vite-tsconfig-paths":"^3.6.0"

‎client/packages/lowcoder-design/src/icons/index.tsx‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,6 @@ export { ReactComponent as BorderWidthIcon } from "./remix/space.svg";
225225
export{ReactComponentasBorderStyleIcon}from"./remix/separator.svg";
226226
export{ReactComponentasRotationIcon}from"./remix/clockwise-line.svg";
227227
export{ReactComponentasBorderRadiusIcon}from"./remix/rounded-corner.svg";
228-
229-
// Falk: TODO
230228
export{ReactComponentasShadowIcon}from"./remix/shadow-line.svg";
231229
export{ReactComponentasOpacityIcon}from"./remix/contrast-drop-2-line.svg";
232230
export{ReactComponentasAnimationIcon}from"./remix/loader-line.svg";
@@ -261,6 +259,13 @@ export { ReactComponent as EnterpriseIcon } from "./remix/earth-line.svg";
261259
export{ReactComponentasVerticalIcon}from"./remix/vertical.svg";
262260
export{ReactComponentasHorizontalIcon}from"./remix/horizontal.svg";
263261

262+
// Social Sharing
263+
export{ReactComponentasTwitterIcon}from"./remix/twitter-x-line.svg";
264+
export{ReactComponentasLinkedInIcon}from"./remix/linkedin-box-fill.svg";
265+
export{ReactComponentasFacebookIcon}from"./remix/facebook-circle-fill.svg";
266+
export{ReactComponentasMediumIcon}from"./remix/medium-fill.svg";
267+
export{ReactComponentasRedditIcon}from"./remix/reddit-line.svg";
268+
264269

265270
// components
266271

‎client/packages/lowcoder/package.json‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@
3232
"@rjsf/validator-ajv8":"^5.24.9",
3333
"@types/lodash":"^4.14.194",
3434
"@types/node":"^16.7.13",
35-
"@types/react":"^19.1.2",
36-
"@types/react-dom":"^19.1.2",
3735
"@types/react-signature-canvas":"^1.0.2",
3836
"@types/react-test-renderer":"^18.0.0",
3937
"@types/react-virtualized":"^9.21.21",
4038
"alasql":"^4.6.6",
4139
"animate.css":"^4.1.1",
42-
"antd":"^5.24.8",
40+
"antd":"^5.25.2",
4341
"axios":"^1.7.7",
4442
"buffer":"^6.0.3",
4543
"clsx":"^2.0.0",
@@ -68,12 +66,12 @@
6866
"pigeon-maps":"^0.22.1",
6967
"qrcode.react":"^3.1.0",
7068
"rc-trigger":"^5.3.1",
71-
"react":"^19.1.0",
69+
"react":"18.3.0",
7270
"react-best-gradient-color-picker":"^3.0.10",
7371
"react-colorful":"^5.5.1",
7472
"react-device-mockup":"^1.0.0",
7573
"react-documents":"^1.2.1",
76-
"react-dom":"^19.1.0",
74+
"react-dom":"18.3.0",
7775
"react-draggable":"^4.4.6",
7876
"react-error-boundary":"^4.0.13",
7977
"react-grid-layout":"^1.3.0",
@@ -122,6 +120,8 @@
122120
"@types/core-js":"^2.5.5",
123121
"@types/intl":"^1.2.1",
124122
"@types/papaparse":"^5.3.5",
123+
"@types/react":"18",
124+
"@types/react-dom":"18",
125125
"@types/regenerator-runtime":"^0.13.1",
126126
"@types/uuid":"^8.3.4",
127127
"@vitejs/plugin-react":"^2.2.0",
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
importApifrom"api/api";
2+
importaxios,{AxiosInstance,AxiosRequestConfig,CancelToken}from"axios";
3+
import{calculateFlowCode}from"./apiUtils";
4+
5+
exporttypeResponseType={
6+
response:any;
7+
};
8+
9+
// Axios Configuration
10+
constlcHeaders={
11+
"Lowcoder-Token":calculateFlowCode(),
12+
"Content-Type":"application/json"
13+
};
14+
15+
letaxiosIns:AxiosInstance|null=null;
16+
17+
constgetAxiosInstance=(clientSecret?:string)=>{
18+
if(axiosIns&&!clientSecret){
19+
returnaxiosIns;
20+
}
21+
22+
constheaders:Record<string,string>={
23+
"Content-Type":"application/json",
24+
};
25+
26+
constapiRequestConfig:AxiosRequestConfig={
27+
baseURL:"https://api-service.lowcoder.cloud/api/flow",
28+
headers,
29+
};
30+
31+
axiosIns=axios.create(apiRequestConfig);
32+
returnaxiosIns;
33+
};
34+
35+
classNewsApiextendsApi{
36+
37+
staticasyncsecureRequest(body:any,timeout:number=6000):Promise<any>{
38+
letresponse;
39+
constaxiosInstance=getAxiosInstance();
40+
41+
// Create a cancel token and set timeout for cancellation
42+
constsource=axios.CancelToken.source();
43+
consttimeoutId=setTimeout(()=>{
44+
source.cancel("Request timed out.");
45+
},timeout);
46+
47+
// Request configuration with cancel token
48+
constrequestConfig:AxiosRequestConfig={
49+
method:"POST",
50+
withCredentials:true,
51+
data:body,
52+
cancelToken:source.token,// Add cancel token
53+
};
54+
55+
try{
56+
response=awaitaxiosInstance.request(requestConfig);
57+
}catch(error){
58+
if(axios.isCancel(error)){
59+
// Retry once after timeout cancellation
60+
try{
61+
// Reset the cancel token and retry
62+
constretrySource=axios.CancelToken.source();
63+
constretryTimeoutId=setTimeout(()=>{
64+
retrySource.cancel("Retry request timed out.");
65+
},10000);
66+
67+
response=awaitaxiosInstance.request({
68+
...requestConfig,
69+
cancelToken:retrySource.token,
70+
});
71+
72+
clearTimeout(retryTimeoutId);
73+
}catch(retryError){
74+
console.warn("Error at Secure Flow Request. Retry failed:",retryError);
75+
throwretryError;
76+
}
77+
}else{
78+
console.warn("Error at Secure Flow Request:",error);
79+
throwerror;
80+
}
81+
}finally{
82+
clearTimeout(timeoutId);// Clear the initial timeout
83+
}
84+
85+
returnresponse;
86+
}
87+
}
88+
89+
// API Functions
90+
91+
// secure/get-youtube-videos
92+
// secure/get-github-releases
93+
94+
exportconstgetReleases=async()=>{
95+
constapiBody={
96+
path:"webhook/secure/get-github-releases",
97+
data:{},
98+
method:"post",
99+
headers:lcHeaders
100+
};
101+
try{
102+
constresult=awaitNewsApi.secureRequest(apiBody);
103+
returnresult?.data[0]?.github?.length>0 ?result.data[0].githubasany[] :[];
104+
}catch(error){
105+
console.error("Error getting news:",error);
106+
throwerror;
107+
}
108+
};
109+
110+
exportconstgetYoutubeVideos=async()=>{
111+
constapiBody={
112+
path:"webhook/secure/get-youtube-videos",
113+
data:{},
114+
method:"post",
115+
headers:lcHeaders
116+
};
117+
try{
118+
constresult=awaitNewsApi.secureRequest(apiBody);
119+
returnresult?.data[0]?.youtube?.length>0 ?result.data[0].youtubeasany[] :[];
120+
}catch(error){
121+
console.error("Error getting news:",error);
122+
throwerror;
123+
}
124+
};
125+
126+
exportconstgetHubspotContent=async()=>{
127+
constapiBody={
128+
path:"webhook/secure/get-hubspot-content",
129+
data:{},
130+
method:"post",
131+
headers:lcHeaders
132+
};
133+
try{
134+
constresult=awaitNewsApi.secureRequest(apiBody);
135+
returnresult?.data[0]?.hubspot?.length>0 ?result.data[0].hubspotasany[] :[];
136+
}catch(error){
137+
console.error("Error getting news:",error);
138+
throwerror;
139+
}
140+
};
141+
142+
exportdefaultNewsApi;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp