freestyle-sandboxes 0.0.96 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -48
- package/index.cjs +4362 -0
- package/index.d.cts +9401 -0
- package/index.d.mts +9401 -0
- package/index.mjs +4348 -0
- package/package.json +16 -109
- package/dist/ai/inde.d.cts +0 -75
- package/dist/ai/inde.d.mts +0 -75
- package/dist/ai/index.cjs +0 -13
- package/dist/ai/index.d.cts +0 -75
- package/dist/ai/index.d.mts +0 -75
- package/dist/ai/index.mjs +0 -4
- package/dist/expo/inde.d.cts +0 -6
- package/dist/expo/inde.d.mts +0 -6
- package/dist/expo/index.cjs +0 -319
- package/dist/expo/index.d.cts +0 -6
- package/dist/expo/index.d.mts +0 -6
- package/dist/expo/index.mjs +0 -297
- package/dist/inde.d.cts +0 -373
- package/dist/inde.d.mts +0 -373
- package/dist/index-BKAG8L-o.mjs +0 -3061
- package/dist/index-DuOpIaWc.cjs +0 -3068
- package/dist/index.cjs +0 -1329
- package/dist/index.d-9H_wnIbz.d.ts +0 -4223
- package/dist/index.d.cts +0 -373
- package/dist/index.d.mts +0 -373
- package/dist/index.mjs +0 -1327
- package/dist/langgraph/inde.d.cts +0 -4180
- package/dist/langgraph/inde.d.mts +0 -4180
- package/dist/langgraph/index.cjs +0 -17155
- package/dist/langgraph/index.d.cts +0 -4180
- package/dist/langgraph/index.d.mts +0 -4180
- package/dist/langgraph/index.mjs +0 -17153
- package/dist/mastra/inde.d.cts +0 -2623
- package/dist/mastra/inde.d.mts +0 -2623
- package/dist/mastra/index.cjs +0 -55
- package/dist/mastra/index.d.cts +0 -2623
- package/dist/mastra/index.d.mts +0 -2623
- package/dist/mastra/index.mjs +0 -53
- package/dist/react/dev-server/index..d.cts +0 -33
- package/dist/react/dev-server/index..d.mts +0 -33
- package/dist/react/dev-server/index.cjs +0 -148
- package/dist/react/dev-server/index.d.cts +0 -33
- package/dist/react/dev-server/index.d.mts +0 -33
- package/dist/react/dev-server/index.mjs +0 -145
- package/dist/types.gen-CJa21P0C.d.ts +0 -1902
- package/dist/types.gen-DKjMRuu5.d.ts +0 -1898
- package/dist/utils/inde.d.cts +0 -10
- package/dist/utils/inde.d.mts +0 -10
- package/dist/utils/index.cjs +0 -100
- package/dist/utils/index.d.cts +0 -10
- package/dist/utils/index.d.mts +0 -10
- package/dist/utils/index.mjs +0 -75
- package/openapi/index.ts +0 -3
- package/openapi/sdk.gen.ts +0 -929
- package/openapi/types.gen.ts +0 -2234
- package/openapi-ts.config.ts +0 -7
- package/openapi.json +0 -1
- package/src/ai/index.ts +0 -164
- package/src/dev-server.ts +0 -95
- package/src/expo/_expo_internals.ts +0 -389
- package/src/expo/index.ts +0 -26
- package/src/index.ts +0 -1459
- package/src/langgraph/index.ts +0 -33
- package/src/mastra/index.ts +0 -38
- package/src/react/dev-server/index.tsx +0 -195
- package/src/react/dev-server/types.ts +0 -5
- package/src/utils/index.ts +0 -97
- package/tsconfig.json +0 -8
package/dist/mastra/index.mjs
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { e as executeCodeDescription, a as executeCodeSchema } from '../index-BKAG8L-o.mjs';
|
|
3
|
-
import { FreestyleSandboxes } from '../index.mjs';
|
|
4
|
-
import '@hey-api/client-fetch';
|
|
5
|
-
|
|
6
|
-
var Tool = class {
|
|
7
|
-
id;
|
|
8
|
-
description;
|
|
9
|
-
inputSchema;
|
|
10
|
-
outputSchema;
|
|
11
|
-
execute;
|
|
12
|
-
mastra;
|
|
13
|
-
constructor(opts) {
|
|
14
|
-
this.id = opts.id;
|
|
15
|
-
this.description = opts.description;
|
|
16
|
-
this.inputSchema = opts.inputSchema;
|
|
17
|
-
this.outputSchema = opts.outputSchema;
|
|
18
|
-
this.execute = opts.execute;
|
|
19
|
-
this.mastra = opts.mastra;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
function createTool(opts) {
|
|
23
|
-
return new Tool(opts);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const executeTool = (config) => {
|
|
27
|
-
const description = executeCodeDescription(
|
|
28
|
-
Object.keys(config.envVars ?? {}).join(", "),
|
|
29
|
-
Object.keys(config.nodeModules ?? {}).join(", ")
|
|
30
|
-
);
|
|
31
|
-
const client = new FreestyleSandboxes({
|
|
32
|
-
apiKey: config.apiKey
|
|
33
|
-
});
|
|
34
|
-
return createTool({
|
|
35
|
-
id: "Execute a TypeScript or JavaScript Script",
|
|
36
|
-
description,
|
|
37
|
-
execute: async ({ context: { script } }) => {
|
|
38
|
-
return await client.executeScript(script, config);
|
|
39
|
-
},
|
|
40
|
-
inputSchema: executeCodeSchema,
|
|
41
|
-
outputSchema: z.object({
|
|
42
|
-
logs: z.array(
|
|
43
|
-
z.object({
|
|
44
|
-
message: z.string(),
|
|
45
|
-
type: z.string()
|
|
46
|
-
})
|
|
47
|
-
),
|
|
48
|
-
result: z.unknown()
|
|
49
|
-
})
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export { executeTool };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
type RequestDevServerActions = {
|
|
4
|
-
requestDevServer: (args: {
|
|
5
|
-
repoId: string;
|
|
6
|
-
}) => Promise<{
|
|
7
|
-
ephemeralUrl: string;
|
|
8
|
-
devCommandRunning: boolean;
|
|
9
|
-
installCommandRunning: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
declare function DefaultLoadingComponent({ installCommandRunning, }: {
|
|
14
|
-
devCommandRunning: boolean;
|
|
15
|
-
installCommandRunning: boolean;
|
|
16
|
-
serverStarting: boolean;
|
|
17
|
-
iframeLoading: boolean;
|
|
18
|
-
}): React.JSX.Element;
|
|
19
|
-
interface FreestyleDevServerHandle {
|
|
20
|
-
refresh: () => void;
|
|
21
|
-
}
|
|
22
|
-
declare const FreestyleDevServer: React.ForwardRefExoticComponent<{
|
|
23
|
-
repoId: string;
|
|
24
|
-
loadingComponent?: (props: {
|
|
25
|
-
devCommandRunning: boolean;
|
|
26
|
-
installCommandRunning: boolean;
|
|
27
|
-
serverStarting: boolean;
|
|
28
|
-
iframeLoading: boolean;
|
|
29
|
-
}) => React.ReactNode;
|
|
30
|
-
actions: RequestDevServerActions;
|
|
31
|
-
} & React.RefAttributes<FreestyleDevServerHandle>>;
|
|
32
|
-
|
|
33
|
-
export { DefaultLoadingComponent, FreestyleDevServer, type FreestyleDevServerHandle };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
type RequestDevServerActions = {
|
|
4
|
-
requestDevServer: (args: {
|
|
5
|
-
repoId: string;
|
|
6
|
-
}) => Promise<{
|
|
7
|
-
ephemeralUrl: string;
|
|
8
|
-
devCommandRunning: boolean;
|
|
9
|
-
installCommandRunning: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
declare function DefaultLoadingComponent({ installCommandRunning, }: {
|
|
14
|
-
devCommandRunning: boolean;
|
|
15
|
-
installCommandRunning: boolean;
|
|
16
|
-
serverStarting: boolean;
|
|
17
|
-
iframeLoading: boolean;
|
|
18
|
-
}): React.JSX.Element;
|
|
19
|
-
interface FreestyleDevServerHandle {
|
|
20
|
-
refresh: () => void;
|
|
21
|
-
}
|
|
22
|
-
declare const FreestyleDevServer: React.ForwardRefExoticComponent<{
|
|
23
|
-
repoId: string;
|
|
24
|
-
loadingComponent?: (props: {
|
|
25
|
-
devCommandRunning: boolean;
|
|
26
|
-
installCommandRunning: boolean;
|
|
27
|
-
serverStarting: boolean;
|
|
28
|
-
iframeLoading: boolean;
|
|
29
|
-
}) => React.ReactNode;
|
|
30
|
-
actions: RequestDevServerActions;
|
|
31
|
-
} & React.RefAttributes<FreestyleDevServerHandle>>;
|
|
32
|
-
|
|
33
|
-
export { DefaultLoadingComponent, FreestyleDevServer, type FreestyleDevServerHandle };
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
|
|
6
|
-
const queryClient = new reactQuery.QueryClient();
|
|
7
|
-
function DefaultLoadingComponent({
|
|
8
|
-
installCommandRunning
|
|
9
|
-
}) {
|
|
10
|
-
let loadingText = "Starting container...";
|
|
11
|
-
if (installCommandRunning) {
|
|
12
|
-
loadingText = "Installing dependencies...";
|
|
13
|
-
} else {
|
|
14
|
-
loadingText = "Starting dev server...";
|
|
15
|
-
}
|
|
16
|
-
return /* @__PURE__ */ React.createElement(
|
|
17
|
-
"div",
|
|
18
|
-
{
|
|
19
|
-
style: {
|
|
20
|
-
display: "flex",
|
|
21
|
-
flexDirection: "column",
|
|
22
|
-
alignItems: "center",
|
|
23
|
-
justifyContent: "center",
|
|
24
|
-
height: "100%"
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
loadingText
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
const FreestyleDevServer = React.forwardRef(({ loadingComponent, actions, repoId }, ref) => {
|
|
31
|
-
return /* @__PURE__ */ React.createElement(reactQuery.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React.createElement(
|
|
32
|
-
FreestyleDevServerInner,
|
|
33
|
-
{
|
|
34
|
-
ref,
|
|
35
|
-
loadingComponent: loadingComponent ?? DefaultLoadingComponent,
|
|
36
|
-
repoId,
|
|
37
|
-
actions
|
|
38
|
-
}
|
|
39
|
-
));
|
|
40
|
-
});
|
|
41
|
-
const FreestyleDevServerInner = React.forwardRef(({ repoId, loadingComponent, actions: { requestDevServer } }, ref) => {
|
|
42
|
-
const { data, isLoading } = reactQuery.useQuery({
|
|
43
|
-
queryKey: ["dev-server", repoId],
|
|
44
|
-
queryFn: async () => await requestDevServer({ repoId }),
|
|
45
|
-
refetchInterval: 1e3
|
|
46
|
-
});
|
|
47
|
-
const iframeRef = React.useRef(null);
|
|
48
|
-
const [wasLoaded, setWasLoaded] = React.useState(false);
|
|
49
|
-
const [iframeLoaded, setIframeLoaded] = React.useState(false);
|
|
50
|
-
const refreshIframe = React.useCallback(() => {
|
|
51
|
-
if (iframeRef.current && data?.ephemeralUrl) {
|
|
52
|
-
setIframeLoaded(false);
|
|
53
|
-
const currentSrc = iframeRef.current.src;
|
|
54
|
-
iframeRef.current.src = "";
|
|
55
|
-
setTimeout(() => {
|
|
56
|
-
if (iframeRef.current) {
|
|
57
|
-
iframeRef.current.src = currentSrc;
|
|
58
|
-
}
|
|
59
|
-
}, 50);
|
|
60
|
-
}
|
|
61
|
-
}, [data?.ephemeralUrl]);
|
|
62
|
-
React.useImperativeHandle(
|
|
63
|
-
ref,
|
|
64
|
-
() => ({
|
|
65
|
-
refresh: refreshIframe
|
|
66
|
-
}),
|
|
67
|
-
[refreshIframe]
|
|
68
|
-
);
|
|
69
|
-
React.useMemo(() => {
|
|
70
|
-
if (data?.devCommandRunning) {
|
|
71
|
-
setWasLoaded(true);
|
|
72
|
-
}
|
|
73
|
-
}, [isLoading, data?.devCommandRunning]);
|
|
74
|
-
React.useEffect(() => {
|
|
75
|
-
function loadHandle() {
|
|
76
|
-
setIframeLoaded(true);
|
|
77
|
-
}
|
|
78
|
-
iframeRef.current?.addEventListener("load", loadHandle);
|
|
79
|
-
return () => {
|
|
80
|
-
iframeRef.current?.removeEventListener("load", loadHandle);
|
|
81
|
-
};
|
|
82
|
-
}, []);
|
|
83
|
-
if (isLoading) {
|
|
84
|
-
return loadingComponent({
|
|
85
|
-
devCommandRunning: false,
|
|
86
|
-
installCommandRunning: false,
|
|
87
|
-
serverStarting: true,
|
|
88
|
-
iframeLoading: false
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
if (!data?.devCommandRunning && !wasLoaded) {
|
|
92
|
-
return loadingComponent({
|
|
93
|
-
devCommandRunning: data?.devCommandRunning ?? false,
|
|
94
|
-
installCommandRunning: data?.installCommandRunning ?? false,
|
|
95
|
-
serverStarting: false,
|
|
96
|
-
iframeLoading: false
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return /* @__PURE__ */ React.createElement(
|
|
100
|
-
"div",
|
|
101
|
-
{
|
|
102
|
-
style: {
|
|
103
|
-
display: "grid",
|
|
104
|
-
gridTemplateRows: "1fr",
|
|
105
|
-
gridTemplateColumns: "1fr",
|
|
106
|
-
width: "100%",
|
|
107
|
-
height: "100%"
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
/* @__PURE__ */ React.createElement(
|
|
111
|
-
"div",
|
|
112
|
-
{
|
|
113
|
-
style: {
|
|
114
|
-
width: "100%",
|
|
115
|
-
height: "100%",
|
|
116
|
-
border: "none",
|
|
117
|
-
gridColumn: "1 / -1",
|
|
118
|
-
gridRow: "1 / -1",
|
|
119
|
-
visibility: iframeLoaded ? "hidden" : "visible"
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
loadingComponent({
|
|
123
|
-
devCommandRunning: data?.devCommandRunning ?? false,
|
|
124
|
-
installCommandRunning: data?.installCommandRunning ?? false,
|
|
125
|
-
serverStarting: false,
|
|
126
|
-
iframeLoading: true
|
|
127
|
-
})
|
|
128
|
-
),
|
|
129
|
-
/* @__PURE__ */ React.createElement(
|
|
130
|
-
"iframe",
|
|
131
|
-
{
|
|
132
|
-
ref: iframeRef,
|
|
133
|
-
sandbox: "allow-scripts allow-same-origin allow-forms",
|
|
134
|
-
src: data.ephemeralUrl,
|
|
135
|
-
style: {
|
|
136
|
-
width: "100%",
|
|
137
|
-
height: "100%",
|
|
138
|
-
border: "none",
|
|
139
|
-
gridColumn: "1 / -1",
|
|
140
|
-
gridRow: "1 / -1"
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
)
|
|
144
|
-
);
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
exports.DefaultLoadingComponent = DefaultLoadingComponent;
|
|
148
|
-
exports.FreestyleDevServer = FreestyleDevServer;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
type RequestDevServerActions = {
|
|
4
|
-
requestDevServer: (args: {
|
|
5
|
-
repoId: string;
|
|
6
|
-
}) => Promise<{
|
|
7
|
-
ephemeralUrl: string;
|
|
8
|
-
devCommandRunning: boolean;
|
|
9
|
-
installCommandRunning: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
declare function DefaultLoadingComponent({ installCommandRunning, }: {
|
|
14
|
-
devCommandRunning: boolean;
|
|
15
|
-
installCommandRunning: boolean;
|
|
16
|
-
serverStarting: boolean;
|
|
17
|
-
iframeLoading: boolean;
|
|
18
|
-
}): React.JSX.Element;
|
|
19
|
-
interface FreestyleDevServerHandle {
|
|
20
|
-
refresh: () => void;
|
|
21
|
-
}
|
|
22
|
-
declare const FreestyleDevServer: React.ForwardRefExoticComponent<{
|
|
23
|
-
repoId: string;
|
|
24
|
-
loadingComponent?: (props: {
|
|
25
|
-
devCommandRunning: boolean;
|
|
26
|
-
installCommandRunning: boolean;
|
|
27
|
-
serverStarting: boolean;
|
|
28
|
-
iframeLoading: boolean;
|
|
29
|
-
}) => React.ReactNode;
|
|
30
|
-
actions: RequestDevServerActions;
|
|
31
|
-
} & React.RefAttributes<FreestyleDevServerHandle>>;
|
|
32
|
-
|
|
33
|
-
export { DefaultLoadingComponent, FreestyleDevServer, type FreestyleDevServerHandle };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
type RequestDevServerActions = {
|
|
4
|
-
requestDevServer: (args: {
|
|
5
|
-
repoId: string;
|
|
6
|
-
}) => Promise<{
|
|
7
|
-
ephemeralUrl: string;
|
|
8
|
-
devCommandRunning: boolean;
|
|
9
|
-
installCommandRunning: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
declare function DefaultLoadingComponent({ installCommandRunning, }: {
|
|
14
|
-
devCommandRunning: boolean;
|
|
15
|
-
installCommandRunning: boolean;
|
|
16
|
-
serverStarting: boolean;
|
|
17
|
-
iframeLoading: boolean;
|
|
18
|
-
}): React.JSX.Element;
|
|
19
|
-
interface FreestyleDevServerHandle {
|
|
20
|
-
refresh: () => void;
|
|
21
|
-
}
|
|
22
|
-
declare const FreestyleDevServer: React.ForwardRefExoticComponent<{
|
|
23
|
-
repoId: string;
|
|
24
|
-
loadingComponent?: (props: {
|
|
25
|
-
devCommandRunning: boolean;
|
|
26
|
-
installCommandRunning: boolean;
|
|
27
|
-
serverStarting: boolean;
|
|
28
|
-
iframeLoading: boolean;
|
|
29
|
-
}) => React.ReactNode;
|
|
30
|
-
actions: RequestDevServerActions;
|
|
31
|
-
} & React.RefAttributes<FreestyleDevServerHandle>>;
|
|
32
|
-
|
|
33
|
-
export { DefaultLoadingComponent, FreestyleDevServer, type FreestyleDevServerHandle };
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
|
|
4
|
-
const queryClient = new QueryClient();
|
|
5
|
-
function DefaultLoadingComponent({
|
|
6
|
-
installCommandRunning
|
|
7
|
-
}) {
|
|
8
|
-
let loadingText = "Starting container...";
|
|
9
|
-
if (installCommandRunning) {
|
|
10
|
-
loadingText = "Installing dependencies...";
|
|
11
|
-
} else {
|
|
12
|
-
loadingText = "Starting dev server...";
|
|
13
|
-
}
|
|
14
|
-
return /* @__PURE__ */ React.createElement(
|
|
15
|
-
"div",
|
|
16
|
-
{
|
|
17
|
-
style: {
|
|
18
|
-
display: "flex",
|
|
19
|
-
flexDirection: "column",
|
|
20
|
-
alignItems: "center",
|
|
21
|
-
justifyContent: "center",
|
|
22
|
-
height: "100%"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
loadingText
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
const FreestyleDevServer = React.forwardRef(({ loadingComponent, actions, repoId }, ref) => {
|
|
29
|
-
return /* @__PURE__ */ React.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React.createElement(
|
|
30
|
-
FreestyleDevServerInner,
|
|
31
|
-
{
|
|
32
|
-
ref,
|
|
33
|
-
loadingComponent: loadingComponent ?? DefaultLoadingComponent,
|
|
34
|
-
repoId,
|
|
35
|
-
actions
|
|
36
|
-
}
|
|
37
|
-
));
|
|
38
|
-
});
|
|
39
|
-
const FreestyleDevServerInner = React.forwardRef(({ repoId, loadingComponent, actions: { requestDevServer } }, ref) => {
|
|
40
|
-
const { data, isLoading } = useQuery({
|
|
41
|
-
queryKey: ["dev-server", repoId],
|
|
42
|
-
queryFn: async () => await requestDevServer({ repoId }),
|
|
43
|
-
refetchInterval: 1e3
|
|
44
|
-
});
|
|
45
|
-
const iframeRef = React.useRef(null);
|
|
46
|
-
const [wasLoaded, setWasLoaded] = React.useState(false);
|
|
47
|
-
const [iframeLoaded, setIframeLoaded] = React.useState(false);
|
|
48
|
-
const refreshIframe = React.useCallback(() => {
|
|
49
|
-
if (iframeRef.current && data?.ephemeralUrl) {
|
|
50
|
-
setIframeLoaded(false);
|
|
51
|
-
const currentSrc = iframeRef.current.src;
|
|
52
|
-
iframeRef.current.src = "";
|
|
53
|
-
setTimeout(() => {
|
|
54
|
-
if (iframeRef.current) {
|
|
55
|
-
iframeRef.current.src = currentSrc;
|
|
56
|
-
}
|
|
57
|
-
}, 50);
|
|
58
|
-
}
|
|
59
|
-
}, [data?.ephemeralUrl]);
|
|
60
|
-
React.useImperativeHandle(
|
|
61
|
-
ref,
|
|
62
|
-
() => ({
|
|
63
|
-
refresh: refreshIframe
|
|
64
|
-
}),
|
|
65
|
-
[refreshIframe]
|
|
66
|
-
);
|
|
67
|
-
React.useMemo(() => {
|
|
68
|
-
if (data?.devCommandRunning) {
|
|
69
|
-
setWasLoaded(true);
|
|
70
|
-
}
|
|
71
|
-
}, [isLoading, data?.devCommandRunning]);
|
|
72
|
-
React.useEffect(() => {
|
|
73
|
-
function loadHandle() {
|
|
74
|
-
setIframeLoaded(true);
|
|
75
|
-
}
|
|
76
|
-
iframeRef.current?.addEventListener("load", loadHandle);
|
|
77
|
-
return () => {
|
|
78
|
-
iframeRef.current?.removeEventListener("load", loadHandle);
|
|
79
|
-
};
|
|
80
|
-
}, []);
|
|
81
|
-
if (isLoading) {
|
|
82
|
-
return loadingComponent({
|
|
83
|
-
devCommandRunning: false,
|
|
84
|
-
installCommandRunning: false,
|
|
85
|
-
serverStarting: true,
|
|
86
|
-
iframeLoading: false
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (!data?.devCommandRunning && !wasLoaded) {
|
|
90
|
-
return loadingComponent({
|
|
91
|
-
devCommandRunning: data?.devCommandRunning ?? false,
|
|
92
|
-
installCommandRunning: data?.installCommandRunning ?? false,
|
|
93
|
-
serverStarting: false,
|
|
94
|
-
iframeLoading: false
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return /* @__PURE__ */ React.createElement(
|
|
98
|
-
"div",
|
|
99
|
-
{
|
|
100
|
-
style: {
|
|
101
|
-
display: "grid",
|
|
102
|
-
gridTemplateRows: "1fr",
|
|
103
|
-
gridTemplateColumns: "1fr",
|
|
104
|
-
width: "100%",
|
|
105
|
-
height: "100%"
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
/* @__PURE__ */ React.createElement(
|
|
109
|
-
"div",
|
|
110
|
-
{
|
|
111
|
-
style: {
|
|
112
|
-
width: "100%",
|
|
113
|
-
height: "100%",
|
|
114
|
-
border: "none",
|
|
115
|
-
gridColumn: "1 / -1",
|
|
116
|
-
gridRow: "1 / -1",
|
|
117
|
-
visibility: iframeLoaded ? "hidden" : "visible"
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
loadingComponent({
|
|
121
|
-
devCommandRunning: data?.devCommandRunning ?? false,
|
|
122
|
-
installCommandRunning: data?.installCommandRunning ?? false,
|
|
123
|
-
serverStarting: false,
|
|
124
|
-
iframeLoading: true
|
|
125
|
-
})
|
|
126
|
-
),
|
|
127
|
-
/* @__PURE__ */ React.createElement(
|
|
128
|
-
"iframe",
|
|
129
|
-
{
|
|
130
|
-
ref: iframeRef,
|
|
131
|
-
sandbox: "allow-scripts allow-same-origin allow-forms",
|
|
132
|
-
src: data.ephemeralUrl,
|
|
133
|
-
style: {
|
|
134
|
-
width: "100%",
|
|
135
|
-
height: "100%",
|
|
136
|
-
border: "none",
|
|
137
|
-
gridColumn: "1 / -1",
|
|
138
|
-
gridRow: "1 / -1"
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
)
|
|
142
|
-
);
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
export { DefaultLoadingComponent, FreestyleDevServer };
|