@nestia/editor 12.0.0-rc.3 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index-D7-O5u45.js +4140 -0
- package/dist/index.html +1 -1
- package/lib/NestiaEditorApplication.mjs +66 -3
- package/lib/NestiaEditorApplication.mjs.map +1 -1
- package/lib/NestiaEditorIframe.js +11 -17
- package/lib/NestiaEditorIframe.js.map +1 -1
- package/lib/NestiaEditorIframe.mjs +159 -3
- package/lib/NestiaEditorIframe.mjs.map +1 -1
- package/lib/NestiaEditorModule.mjs +51 -3
- package/lib/NestiaEditorModule.mjs.map +1 -1
- package/lib/NestiaEditorUploader.js +4 -11
- package/lib/NestiaEditorUploader.js.map +1 -1
- package/lib/NestiaEditorUploader.mjs +129 -3
- package/lib/NestiaEditorUploader.mjs.map +1 -1
- package/lib/index.mjs +4 -2
- package/lib/internal/NestiaEditorArchiver.d.ts +20 -0
- package/lib/internal/NestiaEditorArchiver.js +38 -0
- package/lib/internal/NestiaEditorArchiver.js.map +1 -0
- package/lib/internal/NestiaEditorArchiver.mjs +24 -0
- package/lib/internal/NestiaEditorArchiver.mjs.map +1 -0
- package/lib/internal/NestiaEditorComposer.mjs +52 -3
- package/lib/internal/NestiaEditorComposer.mjs.map +1 -1
- package/lib/internal/NestiaEditorFileUploader.mjs +43 -3
- package/lib/internal/NestiaEditorFileUploader.mjs.map +1 -1
- package/lib/main.mjs +9 -3
- package/lib/main.mjs.map +1 -1
- package/package.json +8 -11
- package/src/NestiaEditorIframe.tsx +35 -22
- package/src/NestiaEditorUploader.tsx +6 -14
- package/src/internal/NestiaEditorArchiver.ts +43 -0
- package/dist/assets/index-CkZ2qgCJ.js +0 -4310
- package/lib/NestiaEditorApplication2.mjs +0 -86
- package/lib/NestiaEditorApplication2.mjs.map +0 -1
- package/lib/NestiaEditorIframe2.mjs +0 -139
- package/lib/NestiaEditorIframe2.mjs.map +0 -1
- package/lib/NestiaEditorModule2.mjs +0 -124
- package/lib/NestiaEditorModule2.mjs.map +0 -1
- package/lib/NestiaEditorUploader2.mjs +0 -90
- package/lib/NestiaEditorUploader2.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorApplication.mjs +0 -4
- package/lib/_virtual/NestiaEditorApplication.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorComposer.mjs +0 -4
- package/lib/_virtual/NestiaEditorComposer.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorFileUploader.mjs +0 -4
- package/lib/_virtual/NestiaEditorFileUploader.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorIframe.mjs +0 -4
- package/lib/_virtual/NestiaEditorIframe.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorModule.mjs +0 -4
- package/lib/_virtual/NestiaEditorModule.mjs.map +0 -1
- package/lib/_virtual/NestiaEditorUploader.mjs +0 -4
- package/lib/_virtual/NestiaEditorUploader.mjs.map +0 -1
- package/lib/_virtual/_commonjsHelpers.mjs +0 -35
- package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/lib/_virtual/_js-yaml.mjs +0 -7
- package/lib/_virtual/_js-yaml.mjs.map +0 -1
- package/lib/_virtual/_node_fs.mjs +0 -7
- package/lib/_virtual/_node_fs.mjs.map +0 -1
- package/lib/_virtual/_react-mui-fileuploader.mjs +0 -7
- package/lib/_virtual/_react-mui-fileuploader.mjs.map +0 -1
- package/lib/_virtual/_react.mjs +0 -7
- package/lib/_virtual/_react.mjs.map +0 -1
- package/lib/_virtual/client.mjs +0 -7
- package/lib/_virtual/client.mjs.map +0 -1
- package/lib/_virtual/estree.mjs +0 -7
- package/lib/_virtual/estree.mjs.map +0 -1
- package/lib/_virtual/index.mjs +0 -4
- package/lib/_virtual/index.mjs.map +0 -1
- package/lib/_virtual/jsx-runtime.mjs +0 -7
- package/lib/_virtual/jsx-runtime.mjs.map +0 -1
- package/lib/_virtual/main.mjs +0 -4
- package/lib/_virtual/main.mjs.map +0 -1
- package/lib/_virtual/material.mjs +0 -7
- package/lib/_virtual/material.mjs.map +0 -1
- package/lib/_virtual/migrate.mjs +0 -7
- package/lib/_virtual/migrate.mjs.map +0 -1
- package/lib/_virtual/sdk.mjs +0 -7
- package/lib/_virtual/sdk.mjs.map +0 -1
- package/lib/_virtual/standalone.mjs +0 -7
- package/lib/_virtual/standalone.mjs.map +0 -1
- package/lib/_virtual/typescript.mjs +0 -7
- package/lib/_virtual/typescript.mjs.map +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/index2.mjs +0 -35
- package/lib/index2.mjs.map +0 -1
- package/lib/internal/NestiaEditorComposer2.mjs +0 -110
- package/lib/internal/NestiaEditorComposer2.mjs.map +0 -1
- package/lib/internal/NestiaEditorFileUploader2.mjs +0 -51
- package/lib/internal/NestiaEditorFileUploader2.mjs.map +0 -1
- package/lib/main2.mjs +0 -16
- package/lib/main2.mjs.map +0 -1
package/dist/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1.0, maximum-scale=3.0s"
|
|
7
7
|
/>
|
|
8
8
|
<title>Nestia Editor</title>
|
|
9
|
-
<script type="module" src="./assets/index-
|
|
9
|
+
<script type="module" src="./assets/index-D7-O5u45.js"></script>
|
|
10
10
|
</head>
|
|
11
11
|
<body style="width: 100%; height: 100%; margin: 0px; overflow: hidden;">
|
|
12
12
|
<div id="root" style="width: 100%; height: 100%"></div>
|
|
@@ -1,3 +1,66 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { NestiaEditorIframe } from "./NestiaEditorIframe.mjs";
|
|
2
|
+
import { NestiaEditorUploader } from "./NestiaEditorUploader.mjs";
|
|
3
|
+
import { Typography } from "@mui/material";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/NestiaEditorApplication.tsx
|
|
7
|
+
function NestiaEditorApplication() {
|
|
8
|
+
const [ready, setReady] = React.useState(false);
|
|
9
|
+
const [asset, setAsset] = React.useState(null);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
(async () => {
|
|
12
|
+
try {
|
|
13
|
+
setAsset(await getAsset());
|
|
14
|
+
} catch {
|
|
15
|
+
setAsset(null);
|
|
16
|
+
}
|
|
17
|
+
setReady(true);
|
|
18
|
+
})().catch(() => {});
|
|
19
|
+
}, []);
|
|
20
|
+
if (ready === false) return /* @__PURE__ */ jsx(Fragment, {});
|
|
21
|
+
return asset !== null ? /* @__PURE__ */ jsx(NestiaEditorIframe, {
|
|
22
|
+
swagger: asset.url,
|
|
23
|
+
package: asset.package,
|
|
24
|
+
simulate: asset.simulate,
|
|
25
|
+
e2e: asset.e2e,
|
|
26
|
+
mode: asset.mode
|
|
27
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
28
|
+
style: { padding: 25 },
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ jsx(Typography, {
|
|
31
|
+
variant: "h4",
|
|
32
|
+
children: "Nestia Editor"
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ jsx("hr", {}),
|
|
35
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
36
|
+
/* @__PURE__ */ jsx(NestiaEditorUploader, {})
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async function getAsset() {
|
|
41
|
+
const index = window.location.href.indexOf("?");
|
|
42
|
+
const query = new URLSearchParams(index === -1 ? "" : window.location.href.substring(index + 1));
|
|
43
|
+
if (query.has("uploader")) return null;
|
|
44
|
+
const url = query.get("url") ?? await findSwagger("./swagger.json") ?? await findSwagger("./swagger.yaml");
|
|
45
|
+
if (url === null) return null;
|
|
46
|
+
const mode = query.get("mode");
|
|
47
|
+
const packageName = query.get("package") ?? window.package;
|
|
48
|
+
const keyword = query.get("keyword") ?? window.keyword;
|
|
49
|
+
const simulate = query.get("simulate") ?? window.simulate;
|
|
50
|
+
const e2e = query.get("e2e") ?? window.e2e;
|
|
51
|
+
return {
|
|
52
|
+
mode: mode === "nest" ? "nest" : "sdk",
|
|
53
|
+
package: packageName ?? "@ORGANIZATION/PROJECT",
|
|
54
|
+
url,
|
|
55
|
+
keyword: keyword !== null ? keyword === true || keyword === "true" || keyword === "1" : false,
|
|
56
|
+
simulate: simulate !== null ? simulate === true || simulate === "true" || simulate === "1" : false,
|
|
57
|
+
e2e: e2e !== null ? e2e === true || e2e === "true" || e2e === "1" : false
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function findSwagger(file) {
|
|
61
|
+
return (await fetch(file)).status === 200 ? file : null;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { NestiaEditorApplication };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=NestiaEditorApplication.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorApplication.mjs","
|
|
1
|
+
{"version":3,"file":"NestiaEditorApplication.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -15,20 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.NestiaEditorIframe = NestiaEditorIframe;
|
|
16
16
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
17
17
|
const material_1 = require("@mui/material");
|
|
18
|
-
const sdk_1 = __importDefault(require("@stackblitz/sdk"));
|
|
19
18
|
const js_yaml_1 = require("js-yaml");
|
|
20
19
|
const react_1 = __importDefault(require("react"));
|
|
20
|
+
const NestiaEditorArchiver_1 = require("./internal/NestiaEditorArchiver");
|
|
21
21
|
const NestiaEditorComposer_1 = require("./internal/NestiaEditorComposer");
|
|
22
22
|
function NestiaEditorIframe(props) {
|
|
23
|
-
|
|
23
|
+
var _a;
|
|
24
24
|
const [step, setStep] = react_1.default.useState(0);
|
|
25
25
|
const [fetchError, setFetchError] = react_1.default.useState(null);
|
|
26
26
|
const [operations, setOperationCount] = react_1.default.useState({});
|
|
27
27
|
const [composerError, setComposerError] = react_1.default.useState(null);
|
|
28
|
+
const [files, setFiles] = react_1.default.useState(null);
|
|
29
|
+
const archive = NestiaEditorArchiver_1.NestiaEditorArchiver.name((_a = props.package) !== null && _a !== void 0 ? _a : "@ORGANIZATION/PROJECT");
|
|
28
30
|
react_1.default.useEffect(() => {
|
|
29
31
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
var _a;
|
|
31
|
-
var _b;
|
|
32
32
|
// LOADING OPENAPI DOCUMENTS
|
|
33
33
|
setStep(0);
|
|
34
34
|
const document = typeof props.swagger === "string"
|
|
@@ -65,23 +65,14 @@ function NestiaEditorIframe(props) {
|
|
|
65
65
|
setComposerError(result.errors);
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
//
|
|
68
|
+
// READY TO DOWNLOAD
|
|
69
69
|
setStep(2);
|
|
70
|
-
|
|
71
|
-
title: (_b = (_a = document.info) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : "Nestia Editor",
|
|
72
|
-
template: "node",
|
|
73
|
-
files: result.data.files,
|
|
74
|
-
}, {
|
|
75
|
-
width: "100%",
|
|
76
|
-
height: "100%",
|
|
77
|
-
openFile: result.data.openFile,
|
|
78
|
-
startScript: result.data.startScript, // no problem
|
|
79
|
-
});
|
|
70
|
+
setFiles(result.data.files);
|
|
80
71
|
}))().catch((exp) => {
|
|
81
72
|
console.error("unknown error", exp);
|
|
82
73
|
});
|
|
83
74
|
}, []);
|
|
84
|
-
return ((0, jsx_runtime_1.jsx)("div", {
|
|
75
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
85
76
|
width: "100%",
|
|
86
77
|
height: "100%",
|
|
87
78
|
overflow: "hidden",
|
|
@@ -90,7 +81,10 @@ function NestiaEditorIframe(props) {
|
|
|
90
81
|
overflow: "auto",
|
|
91
82
|
}, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", children: "Nestia Editor" }), (0, jsx_runtime_1.jsx)("hr", {}), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(material_1.Stepper, { activeStep: step, orientation: "vertical", nonLinear: true, children: [(0, jsx_runtime_1.jsxs)(material_1.Step, { children: [(0, jsx_runtime_1.jsx)(material_1.StepLabel, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", children: "Loading OpenAPI Document" }) }), (0, jsx_runtime_1.jsxs)(material_1.StepContent, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 100, color: "success" }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {}), typeof props.swagger === "string" ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", { children: "Fetching OpenAPI Document from" }), (0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("a", { href: props.swagger, target: "_blank", children: props.swagger }) })] })) : ("Delivering OpenAPI Document to the composer"), fetchError !== null ? ((0, jsx_runtime_1.jsxs)(material_1.Alert, { severity: "error", children: [(0, jsx_runtime_1.jsx)(material_1.AlertTitle, { children: "Fetch Error" }), fetchError] })) : null] })] }, 0), (0, jsx_runtime_1.jsxs)(material_1.Step, { children: [(0, jsx_runtime_1.jsx)(material_1.StepLabel, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", children: "Generating Software Development Kit" }) }), (0, jsx_runtime_1.jsxs)(material_1.StepContent, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 100, color: "success" }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {}), "Generating SDK functions...", (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["total operations: #", Object.values(operations)
|
|
92
83
|
.reduce((a, b) => a + b, 0)
|
|
93
|
-
.toLocaleString()] }), Object.entries(operations).map(([method, count]) => ((0, jsx_runtime_1.jsxs)("li", { children: [method, ": #", count.toLocaleString()] })))] }), composerError !== null ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(material_1.Alert, { severity: "error", children: [(0, jsx_runtime_1.jsx)(material_1.AlertTitle, { children: "Composition Error" }), (0, jsx_runtime_1.jsx)("pre", { children: JSON.stringify(composerError, null, 2) })] })] })) : null] })] }, 1), (0, jsx_runtime_1.jsxs)(material_1.Step, { children: [(0, jsx_runtime_1.jsx)(material_1.StepLabel, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", children: "
|
|
84
|
+
.toLocaleString()] }), Object.entries(operations).map(([method, count]) => ((0, jsx_runtime_1.jsxs)("li", { children: [method, ": #", count.toLocaleString()] })))] }), composerError !== null ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(material_1.Alert, { severity: "error", children: [(0, jsx_runtime_1.jsx)(material_1.AlertTitle, { children: "Composition Error" }), (0, jsx_runtime_1.jsx)("pre", { children: JSON.stringify(composerError, null, 2) })] })] })) : null] })] }, 1), (0, jsx_runtime_1.jsxs)(material_1.Step, { children: [(0, jsx_runtime_1.jsx)(material_1.StepLabel, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", children: "Downloading TypeScript Project" }) }), (0, jsx_runtime_1.jsxs)(material_1.StepContent, { children: [(0, jsx_runtime_1.jsx)("br", {}), files !== null ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("p", { children: [Object.keys(files).length.toLocaleString(), " files are ready."] }), (0, jsx_runtime_1.jsxs)(material_1.Button, { variant: "contained", color: "success", size: "large", onClick: () => NestiaEditorArchiver_1.NestiaEditorArchiver.download({
|
|
85
|
+
name: archive,
|
|
86
|
+
files,
|
|
87
|
+
}), children: ["Download ", archive] })] })) : null] })] }, 2)] })] }) }));
|
|
94
88
|
}
|
|
95
89
|
const getDocument = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
96
90
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorIframe.js","sourceRoot":"","sources":["../src/NestiaEditorIframe.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"NestiaEditorIframe.js","sourceRoot":"","sources":["../src/NestiaEditorIframe.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,159 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { NestiaEditorArchiver } from "./internal/NestiaEditorArchiver.mjs";
|
|
2
|
+
import { NestiaEditorComposer } from "./internal/NestiaEditorComposer.mjs";
|
|
3
|
+
import { Alert, AlertTitle, Button, CircularProgress, Step, StepContent, StepLabel, Stepper, Typography } from "@mui/material";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { load } from "js-yaml";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/NestiaEditorIframe.tsx
|
|
8
|
+
function NestiaEditorIframe(props) {
|
|
9
|
+
const [step, setStep] = React.useState(0);
|
|
10
|
+
const [fetchError, setFetchError] = React.useState(null);
|
|
11
|
+
const [operations, setOperationCount] = React.useState({});
|
|
12
|
+
const [composerError, setComposerError] = React.useState(null);
|
|
13
|
+
const [files, setFiles] = React.useState(null);
|
|
14
|
+
const archive = NestiaEditorArchiver.name(props.package ?? "@ORGANIZATION/PROJECT");
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
(async () => {
|
|
17
|
+
setStep(0);
|
|
18
|
+
const document = typeof props.swagger === "string" ? await getDocument(props.swagger) : props.swagger;
|
|
19
|
+
if (typeof document === "string") {
|
|
20
|
+
setFetchError(document);
|
|
21
|
+
return;
|
|
22
|
+
} else setOperationCount(aggregateOperation(document));
|
|
23
|
+
setStep(1);
|
|
24
|
+
const result = await (async () => {
|
|
25
|
+
try {
|
|
26
|
+
return await NestiaEditorComposer[props.mode ?? "sdk"]({
|
|
27
|
+
document,
|
|
28
|
+
keyword: props.keyword ?? true,
|
|
29
|
+
simulate: props.simulate ?? true,
|
|
30
|
+
e2e: props.e2e ?? true,
|
|
31
|
+
package: props.package ?? "@ORGANIZATION/PROJECT"
|
|
32
|
+
});
|
|
33
|
+
} catch (exp) {
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
errors: exp,
|
|
37
|
+
data: void 0
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
})();
|
|
41
|
+
if (result.success === false) {
|
|
42
|
+
setComposerError(result.errors);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
setStep(2);
|
|
46
|
+
setFiles(result.data.files);
|
|
47
|
+
})().catch((exp) => {
|
|
48
|
+
console.error("unknown error", exp);
|
|
49
|
+
});
|
|
50
|
+
}, []);
|
|
51
|
+
return /* @__PURE__ */ jsx("div", {
|
|
52
|
+
style: {
|
|
53
|
+
width: "100%",
|
|
54
|
+
height: "100%",
|
|
55
|
+
overflow: "hidden"
|
|
56
|
+
},
|
|
57
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
58
|
+
style: {
|
|
59
|
+
padding: 25,
|
|
60
|
+
overflow: "auto"
|
|
61
|
+
},
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsx(Typography, {
|
|
64
|
+
variant: "h4",
|
|
65
|
+
children: "Nestia Editor"
|
|
66
|
+
}),
|
|
67
|
+
/* @__PURE__ */ jsx("hr", {}),
|
|
68
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
69
|
+
/* @__PURE__ */ jsxs(Stepper, {
|
|
70
|
+
activeStep: step,
|
|
71
|
+
orientation: "vertical",
|
|
72
|
+
nonLinear: true,
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ jsxs(Step, { children: [/* @__PURE__ */ jsx(StepLabel, { children: /* @__PURE__ */ jsx(Typography, {
|
|
75
|
+
variant: "h5",
|
|
76
|
+
children: "Loading OpenAPI Document"
|
|
77
|
+
}) }), /* @__PURE__ */ jsxs(StepContent, { children: [
|
|
78
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
79
|
+
/* @__PURE__ */ jsx(CircularProgress, {
|
|
80
|
+
size: 100,
|
|
81
|
+
color: "success"
|
|
82
|
+
}),
|
|
83
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
84
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
85
|
+
typeof props.swagger === "string" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", { children: "Fetching OpenAPI Document from" }), /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("a", {
|
|
86
|
+
href: props.swagger,
|
|
87
|
+
target: "_blank",
|
|
88
|
+
children: props.swagger
|
|
89
|
+
}) })] }) : "Delivering OpenAPI Document to the composer",
|
|
90
|
+
fetchError !== null ? /* @__PURE__ */ jsxs(Alert, {
|
|
91
|
+
severity: "error",
|
|
92
|
+
children: [/* @__PURE__ */ jsx(AlertTitle, { children: "Fetch Error" }), fetchError]
|
|
93
|
+
}) : null
|
|
94
|
+
] })] }, 0),
|
|
95
|
+
/* @__PURE__ */ jsxs(Step, { children: [/* @__PURE__ */ jsx(StepLabel, { children: /* @__PURE__ */ jsx(Typography, {
|
|
96
|
+
variant: "h5",
|
|
97
|
+
children: "Generating Software Development Kit"
|
|
98
|
+
}) }), /* @__PURE__ */ jsxs(StepContent, { children: [
|
|
99
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
100
|
+
/* @__PURE__ */ jsx(CircularProgress, {
|
|
101
|
+
size: 100,
|
|
102
|
+
color: "success"
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
105
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
106
|
+
"Generating SDK functions...",
|
|
107
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
108
|
+
/* @__PURE__ */ jsxs("ul", { children: [/* @__PURE__ */ jsxs("li", { children: ["total operations: #", Object.values(operations).reduce((a, b) => a + b, 0).toLocaleString()] }), Object.entries(operations).map(([method, count]) => /* @__PURE__ */ jsxs("li", { children: [
|
|
109
|
+
method,
|
|
110
|
+
": #",
|
|
111
|
+
count.toLocaleString()
|
|
112
|
+
] }))] }),
|
|
113
|
+
composerError !== null ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("br", {}), /* @__PURE__ */ jsxs(Alert, {
|
|
114
|
+
severity: "error",
|
|
115
|
+
children: [/* @__PURE__ */ jsx(AlertTitle, { children: "Composition Error" }), /* @__PURE__ */ jsx("pre", { children: JSON.stringify(composerError, null, 2) })]
|
|
116
|
+
})] }) : null
|
|
117
|
+
] })] }, 1),
|
|
118
|
+
/* @__PURE__ */ jsxs(Step, { children: [/* @__PURE__ */ jsx(StepLabel, { children: /* @__PURE__ */ jsx(Typography, {
|
|
119
|
+
variant: "h5",
|
|
120
|
+
children: "Downloading TypeScript Project"
|
|
121
|
+
}) }), /* @__PURE__ */ jsxs(StepContent, { children: [/* @__PURE__ */ jsx("br", {}), files !== null ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("p", { children: [Object.keys(files).length.toLocaleString(), " files are ready."] }), /* @__PURE__ */ jsxs(Button, {
|
|
122
|
+
variant: "contained",
|
|
123
|
+
color: "success",
|
|
124
|
+
size: "large",
|
|
125
|
+
onClick: () => NestiaEditorArchiver.download({
|
|
126
|
+
name: archive,
|
|
127
|
+
files
|
|
128
|
+
}),
|
|
129
|
+
children: ["Download ", archive]
|
|
130
|
+
})] }) : null] })] }, 2)
|
|
131
|
+
]
|
|
132
|
+
})
|
|
133
|
+
]
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
const getDocument = async (url) => {
|
|
138
|
+
try {
|
|
139
|
+
const response = await fetch(url);
|
|
140
|
+
if (response.status !== 200) return await response.text();
|
|
141
|
+
else if (url.endsWith(".yaml")) return load(await response.text());
|
|
142
|
+
return await response.json();
|
|
143
|
+
} catch (error) {
|
|
144
|
+
if (error instanceof Error) return error.message;
|
|
145
|
+
return "Unknown error";
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const aggregateOperation = (document) => {
|
|
149
|
+
const map = {};
|
|
150
|
+
if (!(typeof document === "object" && document !== null)) return map;
|
|
151
|
+
for (const collection of Object.values(document.paths ?? {})) if (typeof collection === "object" && collection !== null) {
|
|
152
|
+
for (const [method] of Object.entries(collection)) if (method === "head" || method === "get" || method === "post" || method === "patch" || method === "put" || method === "delete") map[method] = (map[method] ?? 0) + 1;
|
|
153
|
+
}
|
|
154
|
+
return map;
|
|
155
|
+
};
|
|
156
|
+
//#endregion
|
|
157
|
+
export { NestiaEditorIframe };
|
|
158
|
+
|
|
159
|
+
//# sourceMappingURL=NestiaEditorIframe.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorIframe.mjs","
|
|
1
|
+
{"version":3,"file":"NestiaEditorIframe.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -1,3 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
//#region src/NestiaEditorModule.ts
|
|
3
|
+
let NestiaEditorModule;
|
|
4
|
+
(function(_NestiaEditorModule) {
|
|
5
|
+
_NestiaEditorModule.setup = async (props) => {
|
|
6
|
+
const prefix = "/" + [getGlobalPrefix(props.application), props.path].join("/").split("/").filter((str) => str.length !== 0).join("/");
|
|
7
|
+
const adaptor = props.application.getHttpAdapter();
|
|
8
|
+
const staticFiles = [
|
|
9
|
+
{
|
|
10
|
+
path: "/index.html",
|
|
11
|
+
type: "text/html",
|
|
12
|
+
content: await getIndex(props)
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
path: "/swagger.json",
|
|
16
|
+
type: "application/json",
|
|
17
|
+
content: JSON.stringify(typeof props.swagger === "string" ? await getSwagger(props.swagger) : props.swagger, null, 2)
|
|
18
|
+
},
|
|
19
|
+
await getJavaScript()
|
|
20
|
+
];
|
|
21
|
+
for (const f of staticFiles) adaptor.get(prefix + f.path, (_, res) => {
|
|
22
|
+
res.type(f.type);
|
|
23
|
+
return res.send(f.content);
|
|
24
|
+
});
|
|
25
|
+
for (const p of ["", "/"]) adaptor.get(prefix + p, (_, res) => {
|
|
26
|
+
return res.redirect(prefix + "/index.html");
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
const getGlobalPrefix = (app) => typeof app.config?.globalPrefix === "string" ? app.config.globalPrefix : "";
|
|
30
|
+
})(NestiaEditorModule || (NestiaEditorModule = {}));
|
|
31
|
+
const getIndex = async (props) => {
|
|
32
|
+
return (await fs.promises.readFile(`${__dirname}/../dist/index.html`, "utf8")).replace(`"@ORGANIZATION/PROJECT"`, JSON.stringify(props.package ?? "@ORGANIZATION/PROJECT")).replace("window.simulate = false", `window.simulate = ${!!props.simulate}`).replace("window.e2e = false", `window.e2e = ${!!props.e2e}`);
|
|
33
|
+
};
|
|
34
|
+
const getJavaScript = async () => {
|
|
35
|
+
const path = (await fs.promises.readdir(`${__dirname}/../dist/assets`))[0];
|
|
36
|
+
if (path === void 0) throw new Error("Unreachable code, no JS file exists.");
|
|
37
|
+
return {
|
|
38
|
+
path: `/assets/${path}`,
|
|
39
|
+
type: "application/javascript",
|
|
40
|
+
content: await fs.promises.readFile(`${__dirname}/../dist/assets/${path}`, "utf8")
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const getSwagger = async (url) => {
|
|
44
|
+
const response = await fetch(url);
|
|
45
|
+
if (response.status !== 200) throw new Error(`Failed to fetch Swagger document from ${url}`);
|
|
46
|
+
return response.json();
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { NestiaEditorModule };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=NestiaEditorModule.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorModule.mjs","
|
|
1
|
+
{"version":3,"file":"NestiaEditorModule.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.NestiaEditorUploader = NestiaEditorUploader;
|
|
16
16
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
17
17
|
const material_1 = require("@mui/material");
|
|
18
|
-
const sdk_1 = __importDefault(require("@stackblitz/sdk"));
|
|
19
18
|
const react_1 = __importDefault(require("react"));
|
|
19
|
+
const NestiaEditorArchiver_1 = require("./internal/NestiaEditorArchiver");
|
|
20
20
|
const NestiaEditorComposer_1 = require("./internal/NestiaEditorComposer");
|
|
21
21
|
const NestiaEditorFileUploader_1 = require("./internal/NestiaEditorFileUploader");
|
|
22
22
|
function NestiaEditorUploader(props) {
|
|
@@ -41,8 +41,6 @@ function NestiaEditorUploader(props) {
|
|
|
41
41
|
handleError(error);
|
|
42
42
|
};
|
|
43
43
|
const generate = () => __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
var _a;
|
|
45
|
-
var _b;
|
|
46
44
|
if (document === null)
|
|
47
45
|
return;
|
|
48
46
|
setProgress(true);
|
|
@@ -55,14 +53,9 @@ function NestiaEditorUploader(props) {
|
|
|
55
53
|
package: name,
|
|
56
54
|
});
|
|
57
55
|
if (result.success === true) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
template: "node",
|
|
56
|
+
NestiaEditorArchiver_1.NestiaEditorArchiver.download({
|
|
57
|
+
name: NestiaEditorArchiver_1.NestiaEditorArchiver.name(name),
|
|
61
58
|
files: result.data.files,
|
|
62
|
-
}, {
|
|
63
|
-
newWindow: true,
|
|
64
|
-
openFile: result.data.openFile,
|
|
65
|
-
startScript: result.data.startScript,
|
|
66
59
|
});
|
|
67
60
|
}
|
|
68
61
|
else {
|
|
@@ -74,6 +67,6 @@ function NestiaEditorUploader(props) {
|
|
|
74
67
|
}
|
|
75
68
|
setProgress(false);
|
|
76
69
|
});
|
|
77
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(NestiaEditorFileUploader_1.NestiaEditorFileUploader, { onChange: handleSwagger }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(material_1.FormControl, { fullWidth: true, style: { paddingLeft: 15 }, children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { onChange: (e) => setName(e.target.value), defaultValue: name, label: "Package Name", variant: "outlined" }), (0, jsx_runtime_1.jsx)(material_1.FormLabel, { style: { paddingTop: 20 }, children: " Mode " }), (0, jsx_runtime_1.jsxs)(material_1.RadioGroup, { defaultValue: mode, onChange: (_e, value) => setMode(value), style: { paddingLeft: 15 }, children: [(0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "sdk", control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: "Software Development Kit" }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "nest", control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: "NestJS Project" })] }), (0, jsx_runtime_1.jsx)(material_1.FormLabel, { style: { paddingTop: 20 }, children: " Options " }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "Keyword Parameter", style: { paddingTop: 5, paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: keyword, onChange: () => setKeyword(!keyword) }) }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "Mockup Simulator", style: { paddingTop: 5, paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: simulate, onChange: () => setSimulate(!simulate) }) }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "E2E Test Functions", style: { paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: e2e, onChange: () => setE2e(!e2e) }) })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(material_1.Button, { component: "a", fullWidth: true, variant: "contained", color: "info", size: "large", disabled: progress === true || document === null, onClick: () => generate(), children: progress ? "Generating..." : "
|
|
70
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(NestiaEditorFileUploader_1.NestiaEditorFileUploader, { onChange: handleSwagger }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)(material_1.FormControl, { fullWidth: true, style: { paddingLeft: 15 }, children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { onChange: (e) => setName(e.target.value), defaultValue: name, label: "Package Name", variant: "outlined" }), (0, jsx_runtime_1.jsx)(material_1.FormLabel, { style: { paddingTop: 20 }, children: " Mode " }), (0, jsx_runtime_1.jsxs)(material_1.RadioGroup, { defaultValue: mode, onChange: (_e, value) => setMode(value), style: { paddingLeft: 15 }, children: [(0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "sdk", control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: "Software Development Kit" }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: "nest", control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: "NestJS Project" })] }), (0, jsx_runtime_1.jsx)(material_1.FormLabel, { style: { paddingTop: 20 }, children: " Options " }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "Keyword Parameter", style: { paddingTop: 5, paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: keyword, onChange: () => setKeyword(!keyword) }) }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "Mockup Simulator", style: { paddingTop: 5, paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: simulate, onChange: () => setSimulate(!simulate) }) }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { label: "E2E Test Functions", style: { paddingLeft: 15 }, control: (0, jsx_runtime_1.jsx)(material_1.Switch, { checked: e2e, onChange: () => setE2e(!e2e) }) })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(material_1.Button, { component: "a", fullWidth: true, variant: "contained", color: "info", size: "large", disabled: progress === true || document === null, onClick: () => generate(), children: progress ? "Generating..." : "Download Project" })] }));
|
|
78
71
|
}
|
|
79
72
|
//# sourceMappingURL=NestiaEditorUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorUploader.js","sourceRoot":"","sources":["../src/NestiaEditorUploader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CASuB;
|
|
1
|
+
{"version":3,"file":"NestiaEditorUploader.js","sourceRoot":"","sources":["../src/NestiaEditorUploader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,129 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { NestiaEditorArchiver } from "./internal/NestiaEditorArchiver.mjs";
|
|
2
|
+
import { NestiaEditorComposer } from "./internal/NestiaEditorComposer.mjs";
|
|
3
|
+
import { NestiaEditorFileUploader } from "./internal/NestiaEditorFileUploader.mjs";
|
|
4
|
+
import { Button, FormControl, FormControlLabel, FormLabel, Radio, RadioGroup, Switch, TextField } from "@mui/material";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/NestiaEditorUploader.tsx
|
|
8
|
+
function NestiaEditorUploader(props) {
|
|
9
|
+
const [mode, setMode] = React.useState("sdk");
|
|
10
|
+
const [keyword, setKeyword] = React.useState(true);
|
|
11
|
+
const [simulate, setSimulate] = React.useState(true);
|
|
12
|
+
const [e2e, setE2e] = React.useState(true);
|
|
13
|
+
const [name, setName] = React.useState("@ORGINIZATION/PROJECT");
|
|
14
|
+
const [document, setDocument] = React.useState(null);
|
|
15
|
+
const [progress, setProgress] = React.useState(false);
|
|
16
|
+
const handleError = (error) => {
|
|
17
|
+
if (props.onError) props.onError(error);
|
|
18
|
+
else alert(error);
|
|
19
|
+
};
|
|
20
|
+
const handleSwagger = (document, error) => {
|
|
21
|
+
setDocument(document);
|
|
22
|
+
if (error !== null) handleError(error);
|
|
23
|
+
};
|
|
24
|
+
const generate = async () => {
|
|
25
|
+
if (document === null) return;
|
|
26
|
+
setProgress(true);
|
|
27
|
+
try {
|
|
28
|
+
const result = await NestiaEditorComposer[mode]({
|
|
29
|
+
document,
|
|
30
|
+
keyword,
|
|
31
|
+
e2e,
|
|
32
|
+
simulate,
|
|
33
|
+
package: name
|
|
34
|
+
});
|
|
35
|
+
if (result.success === true) NestiaEditorArchiver.download({
|
|
36
|
+
name: NestiaEditorArchiver.name(name),
|
|
37
|
+
files: result.data.files
|
|
38
|
+
});
|
|
39
|
+
else handleError(JSON.stringify(result.errors, null, 2));
|
|
40
|
+
} catch (exp) {
|
|
41
|
+
handleError(exp instanceof Error ? exp.message : "unknown error");
|
|
42
|
+
}
|
|
43
|
+
setProgress(false);
|
|
44
|
+
};
|
|
45
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
46
|
+
/* @__PURE__ */ jsx(NestiaEditorFileUploader, { onChange: handleSwagger }),
|
|
47
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
48
|
+
/* @__PURE__ */ jsxs(FormControl, {
|
|
49
|
+
fullWidth: true,
|
|
50
|
+
style: { paddingLeft: 15 },
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsx(TextField, {
|
|
53
|
+
onChange: (e) => setName(e.target.value),
|
|
54
|
+
defaultValue: name,
|
|
55
|
+
label: "Package Name",
|
|
56
|
+
variant: "outlined"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ jsx(FormLabel, {
|
|
59
|
+
style: { paddingTop: 20 },
|
|
60
|
+
children: " Mode "
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ jsxs(RadioGroup, {
|
|
63
|
+
defaultValue: mode,
|
|
64
|
+
onChange: (_e, value) => setMode(value),
|
|
65
|
+
style: { paddingLeft: 15 },
|
|
66
|
+
children: [/* @__PURE__ */ jsx(FormControlLabel, {
|
|
67
|
+
value: "sdk",
|
|
68
|
+
control: /* @__PURE__ */ jsx(Radio, {}),
|
|
69
|
+
label: "Software Development Kit"
|
|
70
|
+
}), /* @__PURE__ */ jsx(FormControlLabel, {
|
|
71
|
+
value: "nest",
|
|
72
|
+
control: /* @__PURE__ */ jsx(Radio, {}),
|
|
73
|
+
label: "NestJS Project"
|
|
74
|
+
})]
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ jsx(FormLabel, {
|
|
77
|
+
style: { paddingTop: 20 },
|
|
78
|
+
children: " Options "
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ jsx(FormControlLabel, {
|
|
81
|
+
label: "Keyword Parameter",
|
|
82
|
+
style: {
|
|
83
|
+
paddingTop: 5,
|
|
84
|
+
paddingLeft: 15
|
|
85
|
+
},
|
|
86
|
+
control: /* @__PURE__ */ jsx(Switch, {
|
|
87
|
+
checked: keyword,
|
|
88
|
+
onChange: () => setKeyword(!keyword)
|
|
89
|
+
})
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ jsx(FormControlLabel, {
|
|
92
|
+
label: "Mockup Simulator",
|
|
93
|
+
style: {
|
|
94
|
+
paddingTop: 5,
|
|
95
|
+
paddingLeft: 15
|
|
96
|
+
},
|
|
97
|
+
control: /* @__PURE__ */ jsx(Switch, {
|
|
98
|
+
checked: simulate,
|
|
99
|
+
onChange: () => setSimulate(!simulate)
|
|
100
|
+
})
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ jsx(FormControlLabel, {
|
|
103
|
+
label: "E2E Test Functions",
|
|
104
|
+
style: { paddingLeft: 15 },
|
|
105
|
+
control: /* @__PURE__ */ jsx(Switch, {
|
|
106
|
+
checked: e2e,
|
|
107
|
+
onChange: () => setE2e(!e2e)
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
113
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
114
|
+
/* @__PURE__ */ jsx(Button, {
|
|
115
|
+
component: "a",
|
|
116
|
+
fullWidth: true,
|
|
117
|
+
variant: "contained",
|
|
118
|
+
color: "info",
|
|
119
|
+
size: "large",
|
|
120
|
+
disabled: progress === true || document === null,
|
|
121
|
+
onClick: () => generate(),
|
|
122
|
+
children: progress ? "Generating..." : "Download Project"
|
|
123
|
+
})
|
|
124
|
+
] });
|
|
125
|
+
}
|
|
126
|
+
//#endregion
|
|
127
|
+
export { NestiaEditorUploader };
|
|
128
|
+
|
|
129
|
+
//# sourceMappingURL=NestiaEditorUploader.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaEditorUploader.mjs","
|
|
1
|
+
{"version":3,"file":"NestiaEditorUploader.mjs","names":[],"sources":[],"mappings":""}
|
package/lib/index.mjs
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { NestiaEditorIframe } from "./NestiaEditorIframe.mjs";
|
|
2
|
+
import { NestiaEditorUploader } from "./NestiaEditorUploader.mjs";
|
|
3
|
+
import { NestiaEditorApplication } from "./NestiaEditorApplication.mjs";
|
|
4
|
+
export { NestiaEditorApplication, NestiaEditorIframe, NestiaEditorUploader };
|