@powerhousedao/builder-tools 0.2.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/connect-studio/helpers.d.ts +5 -0
- package/dist/connect-studio/helpers.d.ts.map +1 -0
- package/dist/connect-studio/helpers.js +43 -0
- package/dist/connect-studio/hmr.d.ts +12 -0
- package/dist/connect-studio/hmr.d.ts.map +1 -0
- package/dist/connect-studio/hmr.js +8 -0
- package/dist/connect-studio/index.d.ts +9 -0
- package/dist/connect-studio/index.d.ts.map +1 -0
- package/dist/connect-studio/index.js +7 -0
- package/dist/connect-studio/server.d.ts +3 -0
- package/dist/connect-studio/server.d.ts.map +1 -0
- package/dist/connect-studio/server.js +175 -0
- package/dist/connect-studio/studio.d.ts +3 -0
- package/dist/connect-studio/studio.d.ts.map +1 -0
- package/dist/connect-studio/studio.js +65 -0
- package/dist/connect-studio/types.d.ts +25 -0
- package/dist/connect-studio/types.d.ts.map +1 -0
- package/dist/connect-studio/types.js +1 -0
- package/dist/connect-studio/vite-plugins/base.d.ts +19 -0
- package/dist/connect-studio/vite-plugins/base.d.ts.map +1 -0
- package/dist/connect-studio/vite-plugins/base.js +162 -0
- package/dist/connect-studio/vite-plugins/external-packages.d.ts +6 -0
- package/dist/connect-studio/vite-plugins/external-packages.d.ts.map +1 -0
- package/dist/connect-studio/vite-plugins/external-packages.js +74 -0
- package/dist/connect-studio/vite-plugins/hmr.d.ts +3 -0
- package/dist/connect-studio/vite-plugins/hmr.d.ts.map +1 -0
- package/dist/connect-studio/vite-plugins/hmr.js +57 -0
- package/dist/connect-studio/vite-plugins/importmap.d.ts +20 -0
- package/dist/connect-studio/vite-plugins/importmap.d.ts.map +1 -0
- package/dist/connect-studio/vite-plugins/importmap.js +174 -0
- package/dist/connect-studio/vite-plugins/studio.d.ts +4 -0
- package/dist/connect-studio/vite-plugins/studio.d.ts.map +1 -0
- package/dist/connect-studio/vite-plugins/studio.js +112 -0
- package/dist/document-model-editor/components/button.d.ts +4 -0
- package/dist/document-model-editor/components/button.d.ts.map +1 -0
- package/dist/document-model-editor/components/button.js +7 -0
- package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts +10 -0
- package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts.map +1 -0
- package/dist/document-model-editor/components/code-editors/graphql-editor.js +75 -0
- package/dist/document-model-editor/components/code-editors/json-editor.d.ts +8 -0
- package/dist/document-model-editor/components/code-editors/json-editor.d.ts.map +1 -0
- package/dist/document-model-editor/components/code-editors/json-editor.js +43 -0
- package/dist/document-model-editor/components/code-editors/utils.d.ts +32 -0
- package/dist/document-model-editor/components/code-editors/utils.d.ts.map +1 -0
- package/dist/document-model-editor/components/code-editors/utils.js +191 -0
- package/dist/document-model-editor/components/divider.d.ts +8 -0
- package/dist/document-model-editor/components/divider.d.ts.map +1 -0
- package/dist/document-model-editor/components/divider.js +21 -0
- package/dist/document-model-editor/components/errors.d.ts +6 -0
- package/dist/document-model-editor/components/errors.d.ts.map +1 -0
- package/dist/document-model-editor/components/errors.js +4 -0
- package/dist/document-model-editor/components/form.d.ts +12 -0
- package/dist/document-model-editor/components/form.d.ts.map +1 -0
- package/dist/document-model-editor/components/form.js +42 -0
- package/dist/document-model-editor/components/input.d.ts +6 -0
- package/dist/document-model-editor/components/input.d.ts.map +1 -0
- package/dist/document-model-editor/components/input.js +8 -0
- package/dist/document-model-editor/components/label.d.ts +6 -0
- package/dist/document-model-editor/components/label.d.ts.map +1 -0
- package/dist/document-model-editor/components/label.js +9 -0
- package/dist/document-model-editor/components/model-metadata-form.d.ts +45 -0
- package/dist/document-model-editor/components/model-metadata-form.d.ts.map +1 -0
- package/dist/document-model-editor/components/model-metadata-form.js +69 -0
- package/dist/document-model-editor/components/module-form.d.ts +10 -0
- package/dist/document-model-editor/components/module-form.d.ts.map +1 -0
- package/dist/document-model-editor/components/module-form.js +21 -0
- package/dist/document-model-editor/components/module.d.ts +21 -0
- package/dist/document-model-editor/components/module.d.ts.map +1 -0
- package/dist/document-model-editor/components/module.js +9 -0
- package/dist/document-model-editor/components/modules.d.ts +19 -0
- package/dist/document-model-editor/components/modules.d.ts.map +1 -0
- package/dist/document-model-editor/components/modules.js +16 -0
- package/dist/document-model-editor/components/operation-description-form.d.ts +9 -0
- package/dist/document-model-editor/components/operation-description-form.d.ts.map +1 -0
- package/dist/document-model-editor/components/operation-description-form.js +12 -0
- package/dist/document-model-editor/components/operation-error-form.d.ts +13 -0
- package/dist/document-model-editor/components/operation-error-form.d.ts.map +1 -0
- package/dist/document-model-editor/components/operation-error-form.js +39 -0
- package/dist/document-model-editor/components/operation-errors.d.ts +10 -0
- package/dist/document-model-editor/components/operation-errors.d.ts.map +1 -0
- package/dist/document-model-editor/components/operation-errors.js +16 -0
- package/dist/document-model-editor/components/operation-form.d.ts +13 -0
- package/dist/document-model-editor/components/operation-form.d.ts.map +1 -0
- package/dist/document-model-editor/components/operation-form.js +36 -0
- package/dist/document-model-editor/components/operation.d.ts +22 -0
- package/dist/document-model-editor/components/operation.d.ts.map +1 -0
- package/dist/document-model-editor/components/operation.js +21 -0
- package/dist/document-model-editor/components/operations.d.ts +17 -0
- package/dist/document-model-editor/components/operations.d.ts.map +1 -0
- package/dist/document-model-editor/components/operations.js +19 -0
- package/dist/document-model-editor/components/state-schemas.d.ts +13 -0
- package/dist/document-model-editor/components/state-schemas.d.ts.map +1 -0
- package/dist/document-model-editor/components/state-schemas.js +34 -0
- package/dist/document-model-editor/components/tabs.d.ts +8 -0
- package/dist/document-model-editor/components/tabs.d.ts.map +1 -0
- package/dist/document-model-editor/components/tabs.js +12 -0
- package/dist/document-model-editor/components/text-area.d.ts +9 -0
- package/dist/document-model-editor/components/text-area.d.ts.map +1 -0
- package/dist/document-model-editor/components/text-area.js +26 -0
- package/dist/document-model-editor/components/text-field.d.ts +21 -0
- package/dist/document-model-editor/components/text-field.d.ts.map +1 -0
- package/dist/document-model-editor/components/text-field.js +78 -0
- package/dist/document-model-editor/constants/documents.d.ts +12 -0
- package/dist/document-model-editor/constants/documents.d.ts.map +1 -0
- package/dist/document-model-editor/constants/documents.js +16 -0
- package/dist/document-model-editor/context/form-context.d.ts +11 -0
- package/dist/document-model-editor/context/form-context.d.ts.map +1 -0
- package/dist/document-model-editor/context/form-context.js +3 -0
- package/dist/document-model-editor/context/schema-context.d.ts +11 -0
- package/dist/document-model-editor/context/schema-context.d.ts.map +1 -0
- package/dist/document-model-editor/context/schema-context.js +116 -0
- package/dist/document-model-editor/document-model-editor.stories.d.ts +48 -0
- package/dist/document-model-editor/document-model-editor.stories.d.ts.map +1 -0
- package/dist/document-model-editor/document-model-editor.stories.js +252 -0
- package/dist/document-model-editor/editor.d.ts +3 -0
- package/dist/document-model-editor/editor.d.ts.map +1 -0
- package/dist/document-model-editor/editor.js +186 -0
- package/dist/document-model-editor/hooks/useFormField.d.ts +13 -0
- package/dist/document-model-editor/hooks/useFormField.d.ts.map +1 -0
- package/dist/document-model-editor/hooks/useFormField.js +21 -0
- package/dist/document-model-editor/index.d.ts +3 -0
- package/dist/document-model-editor/index.d.ts.map +1 -0
- package/dist/document-model-editor/index.js +2 -0
- package/dist/document-model-editor/module.d.ts +4 -0
- package/dist/document-model-editor/module.d.ts.map +1 -0
- package/dist/document-model-editor/module.js +10 -0
- package/dist/document-model-editor/schemas/inputs.d.ts +31 -0
- package/dist/document-model-editor/schemas/inputs.d.ts.map +1 -0
- package/dist/document-model-editor/schemas/inputs.js +70 -0
- package/dist/document-model-editor/schemas/utils.d.ts +3 -0
- package/dist/document-model-editor/schemas/utils.d.ts.map +1 -0
- package/dist/document-model-editor/schemas/utils.js +2 -0
- package/dist/document-model-editor/types/documents.d.ts +27 -0
- package/dist/document-model-editor/types/documents.d.ts.map +1 -0
- package/dist/document-model-editor/types/documents.js +1 -0
- package/dist/document-model-editor/utils/helpers.d.ts +39 -0
- package/dist/document-model-editor/utils/helpers.d.ts.map +1 -0
- package/dist/document-model-editor/utils/helpers.js +293 -0
- package/dist/document-model-editor/utils/linting.d.ts +7 -0
- package/dist/document-model-editor/utils/linting.d.ts.map +1 -0
- package/dist/document-model-editor/utils/linting.js +47 -0
- package/dist/document-model-editor/utils/style.d.ts +3 -0
- package/dist/document-model-editor/utils/style.d.ts.map +1 -0
- package/dist/document-model-editor/utils/style.js +5 -0
- package/dist/editor-utils/components/documentEditor.d.ts +7 -0
- package/dist/editor-utils/components/documentEditor.d.ts.map +1 -0
- package/dist/editor-utils/components/documentEditor.js +5 -0
- package/dist/editor-utils/components/editorToolbar.d.ts +11 -0
- package/dist/editor-utils/components/editorToolbar.d.ts.map +1 -0
- package/dist/editor-utils/components/editorToolbar.js +5 -0
- package/dist/editor-utils/components/editorWorksheet.d.ts +7 -0
- package/dist/editor-utils/components/editorWorksheet.d.ts.map +1 -0
- package/dist/editor-utils/components/editorWorksheet.js +4 -0
- package/dist/editor-utils/components/index.d.ts +9 -0
- package/dist/editor-utils/components/index.d.ts.map +1 -0
- package/dist/editor-utils/components/index.js +9 -0
- package/dist/editor-utils/components/styles.d.ts +40 -0
- package/dist/editor-utils/components/styles.d.ts.map +1 -0
- package/dist/editor-utils/components/styles.js +78 -0
- package/dist/editor-utils/components/stylesVariant.d.ts +40 -0
- package/dist/editor-utils/components/stylesVariant.d.ts.map +1 -0
- package/dist/editor-utils/components/stylesVariant.js +88 -0
- package/dist/editor-utils/components/textInput.d.ts +20 -0
- package/dist/editor-utils/components/textInput.d.ts.map +1 -0
- package/dist/editor-utils/components/textInput.js +83 -0
- package/dist/editor-utils/components/textInputVariant.d.ts +21 -0
- package/dist/editor-utils/components/textInputVariant.d.ts.map +1 -0
- package/dist/editor-utils/components/textInputVariant.js +92 -0
- package/dist/editor-utils/components/toolbarButton.d.ts +7 -0
- package/dist/editor-utils/components/toolbarButton.d.ts.map +1 -0
- package/dist/editor-utils/components/toolbarButton.js +8 -0
- package/dist/editor-utils/hooks/index.d.ts +2 -0
- package/dist/editor-utils/hooks/index.d.ts.map +1 -0
- package/dist/editor-utils/hooks/index.js +1 -0
- package/dist/editor-utils/hooks/useEnsInfo.d.ts +15 -0
- package/dist/editor-utils/hooks/useEnsInfo.d.ts.map +1 -0
- package/dist/editor-utils/hooks/useEnsInfo.js +63 -0
- package/dist/editor-utils/index.d.ts +5 -0
- package/dist/editor-utils/index.d.ts.map +1 -0
- package/dist/editor-utils/index.js +4 -0
- package/dist/editor-utils/reducer.d.ts +3 -0
- package/dist/editor-utils/reducer.d.ts.map +1 -0
- package/dist/editor-utils/reducer.js +24 -0
- package/dist/editor-utils/storybook.d.ts +25 -0
- package/dist/editor-utils/storybook.d.ts.map +1 -0
- package/dist/editor-utils/storybook.js +118 -0
- package/dist/styles.css +786 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PowerhouseConfig } from "@powerhousedao/config/powerhouse";
|
|
2
|
+
export declare function backupIndexHtml(appPath: string, restore?: boolean): void;
|
|
3
|
+
export declare function removeBase64EnvValues(appPath: string): void;
|
|
4
|
+
export declare function readJsonFile(filePath: string): PowerhouseConfig | null;
|
|
5
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../connect-studio/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,UAAQ,QAS/D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,QA+BpD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAStE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
export function backupIndexHtml(appPath, restore = false) {
|
|
4
|
+
const filePath = join(appPath, "index.html");
|
|
5
|
+
const backupPath = join(appPath, "index.html.bak");
|
|
6
|
+
const paths = restore ? [backupPath, filePath] : [filePath, backupPath];
|
|
7
|
+
if (fs.existsSync(paths[0])) {
|
|
8
|
+
fs.copyFileSync(paths[0], paths[1]);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function removeBase64EnvValues(appPath) {
|
|
12
|
+
backupIndexHtml(appPath);
|
|
13
|
+
const filePath = join(appPath, "index.html");
|
|
14
|
+
// Read the HTML file
|
|
15
|
+
fs.readFile(filePath, "utf-8", (err, data) => {
|
|
16
|
+
if (err) {
|
|
17
|
+
console.error("Error reading file:", err);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// Use regex to replace the dynamic Base64 values with empty strings
|
|
21
|
+
const modifiedData = data
|
|
22
|
+
.replace(/"LOCAL_DOCUMENT_MODELS":\s*".*?",/, `"LOCAL_DOCUMENT_MODELS": "",`)
|
|
23
|
+
.replace(/"LOCAL_DOCUMENT_EDITORS":\s*".*?"/, `"LOCAL_DOCUMENT_EDITORS": ""`);
|
|
24
|
+
// Write the modified content back to the file
|
|
25
|
+
fs.writeFile(filePath, modifiedData, "utf-8", (err) => {
|
|
26
|
+
if (err) {
|
|
27
|
+
console.error("Error writing file:", err);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function readJsonFile(filePath) {
|
|
34
|
+
try {
|
|
35
|
+
const absolutePath = resolve(filePath);
|
|
36
|
+
const fileContents = fs.readFileSync(absolutePath, "utf-8");
|
|
37
|
+
return JSON.parse(fileContents);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error(`Error reading file: ${filePath}`);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const hmr: {
|
|
2
|
+
on: <T extends string>(event: T, cb: (payload: import("vite").InferCustomEventPayload<T>) => void) => void;
|
|
3
|
+
off: <T extends string>(event: T, cb: (payload: import("vite").InferCustomEventPayload<T>) => void) => void;
|
|
4
|
+
send: <T extends string>(event: T, data?: import("vite").InferCustomEventPayload<T>) => void;
|
|
5
|
+
accept: {
|
|
6
|
+
(): void;
|
|
7
|
+
(cb: (mod: import("vite/types/hot.js").ModuleNamespace | undefined) => void): void;
|
|
8
|
+
(dep: string, cb: (mod: import("vite/types/hot.js").ModuleNamespace | undefined) => void): void;
|
|
9
|
+
(deps: readonly string[], cb: (mods: Array<import("vite/types/hot.js").ModuleNamespace | undefined>) => void): void;
|
|
10
|
+
};
|
|
11
|
+
} | undefined;
|
|
12
|
+
//# sourceMappingURL=hmr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../connect-studio/hmr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;;;;;;;;aAOH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { backupIndexHtml, removeBase64EnvValues } from "./helpers.js";
|
|
2
|
+
export { hmr } from "./hmr.js";
|
|
3
|
+
export { startConnectStudio } from "./studio.js";
|
|
4
|
+
export type { ConnectStudioOptions } from "./types.js";
|
|
5
|
+
export { getStudioConfig } from "./vite-plugins/base.js";
|
|
6
|
+
export { viteLoadExternalPackages } from "./vite-plugins/external-packages.js";
|
|
7
|
+
export { generateImportMapPlugin } from "./vite-plugins/importmap.js";
|
|
8
|
+
export { viteConnectDevStudioPlugin } from "./vite-plugins/studio.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../connect-studio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { backupIndexHtml, removeBase64EnvValues } from "./helpers.js";
|
|
2
|
+
export { hmr } from "./hmr.js";
|
|
3
|
+
export { startConnectStudio } from "./studio.js";
|
|
4
|
+
export { getStudioConfig } from "./vite-plugins/base.js";
|
|
5
|
+
export { viteLoadExternalPackages } from "./vite-plugins/external-packages.js";
|
|
6
|
+
export { generateImportMapPlugin } from "./vite-plugins/importmap.js";
|
|
7
|
+
export { viteConnectDevStudioPlugin } from "./vite-plugins/studio.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../connect-studio/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkEhD,wBAAsB,WAAW,CAC/B,OAAO,GAAE,kBAER,iBA8HF"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import basicSsl from "@vitejs/plugin-basic-ssl";
|
|
2
|
+
import { exec } from "node:child_process";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { join, resolve } from "node:path";
|
|
6
|
+
import { createLogger, createServer } from "vite";
|
|
7
|
+
import { viteEnvs } from "vite-envs";
|
|
8
|
+
import { backupIndexHtml, removeBase64EnvValues } from "./helpers.js";
|
|
9
|
+
import { getStudioConfig } from "./vite-plugins/base.js";
|
|
10
|
+
import { viteLoadExternalPackages } from "./vite-plugins/external-packages.js";
|
|
11
|
+
import { generateImportMapPlugin } from "./vite-plugins/importmap.js";
|
|
12
|
+
import { viteConnectDevStudioPlugin } from "./vite-plugins/studio.js";
|
|
13
|
+
function resolvePackage(packageName, root = process.cwd()) {
|
|
14
|
+
// find connect installation
|
|
15
|
+
const require = createRequire(root);
|
|
16
|
+
return require.resolve(packageName, { paths: [root] });
|
|
17
|
+
}
|
|
18
|
+
function resolveConnect(root = process.cwd()) {
|
|
19
|
+
const connectHTMLPath = resolvePackage("@powerhousedao/connect", root);
|
|
20
|
+
return resolve(connectHTMLPath, "..");
|
|
21
|
+
}
|
|
22
|
+
// silences dynamic import warnings
|
|
23
|
+
const logger = createLogger();
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
25
|
+
const loggerWarn = logger.warn;
|
|
26
|
+
/**
|
|
27
|
+
* @param {string} msg
|
|
28
|
+
* @param {import('vite').LogOptions} options
|
|
29
|
+
*/
|
|
30
|
+
logger.warn = (msg, options) => {
|
|
31
|
+
if (msg.includes("The above dynamic import cannot be analyzed by Vite.")) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
loggerWarn(msg, options);
|
|
35
|
+
};
|
|
36
|
+
function ensureNodeVersion(minVersion = "20") {
|
|
37
|
+
const version = process.versions.node;
|
|
38
|
+
if (!version) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (version < minVersion) {
|
|
42
|
+
console.error(`Node version ${minVersion} or higher is required. Current version: ${version}`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function runShellScriptPlugin(scriptName, connectPath) {
|
|
47
|
+
return {
|
|
48
|
+
name: "vite-plugin-run-shell-script",
|
|
49
|
+
buildStart() {
|
|
50
|
+
const scriptPath = join(connectPath, scriptName);
|
|
51
|
+
if (fs.existsSync(scriptPath)) {
|
|
52
|
+
exec(`sh ${scriptPath}`, (error, stdout, stderr) => {
|
|
53
|
+
if (error) {
|
|
54
|
+
console.error(`Error executing the script: ${error.message}`);
|
|
55
|
+
removeBase64EnvValues(connectPath);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (stderr) {
|
|
59
|
+
console.error(stderr);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export async function startServer(options = {
|
|
67
|
+
logLevel: "debug",
|
|
68
|
+
}) {
|
|
69
|
+
// set from options, as they are dynamically loaded
|
|
70
|
+
process.env.LOG_LEVEL = options.logLevel;
|
|
71
|
+
// exits if node version is not compatible
|
|
72
|
+
ensureNodeVersion();
|
|
73
|
+
const connectPath = options.connectPath ?? resolveConnect();
|
|
74
|
+
const projectRoot = process.cwd();
|
|
75
|
+
// backups index html if running on windows
|
|
76
|
+
backupIndexHtml(connectPath, true);
|
|
77
|
+
const PORT = process.env.PORT ? parseInt(process.env.PORT) : 3000;
|
|
78
|
+
const HOST = process.env.HOST ? process.env.HOST : "0.0.0.0";
|
|
79
|
+
const OPEN_BROWSER = typeof process.env.OPEN_BROWSER === "string"
|
|
80
|
+
? process.env.OPEN_BROWSER === "true"
|
|
81
|
+
: false;
|
|
82
|
+
const studioConfig = getStudioConfig();
|
|
83
|
+
// needed for viteEnvs
|
|
84
|
+
if (!fs.existsSync(join(connectPath, "src"))) {
|
|
85
|
+
fs.mkdirSync(join(connectPath, "src"));
|
|
86
|
+
}
|
|
87
|
+
process.env.PH_CONNECT_STUDIO_MODE = "true";
|
|
88
|
+
process.env.PH_CONNECT_CLI_VERSION = options.phCliVersion;
|
|
89
|
+
const computedEnv = { ...studioConfig, LOG_LEVEL: options.logLevel };
|
|
90
|
+
const config = {
|
|
91
|
+
customLogger: logger,
|
|
92
|
+
configFile: false,
|
|
93
|
+
root: connectPath,
|
|
94
|
+
server: {
|
|
95
|
+
port: PORT,
|
|
96
|
+
open: options.open ?? OPEN_BROWSER,
|
|
97
|
+
host: HOST,
|
|
98
|
+
},
|
|
99
|
+
resolve: {
|
|
100
|
+
alias: [
|
|
101
|
+
{ find: "jszip", replacement: "jszip/dist/jszip.min.js" },
|
|
102
|
+
{
|
|
103
|
+
find: "react",
|
|
104
|
+
replacement: join(projectRoot, "node_modules", "react"),
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
find: "react-dom",
|
|
108
|
+
replacement: join(projectRoot, "node_modules", "react-dom"),
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
find: "@powerhousedao/reactor-browser",
|
|
112
|
+
replacement: join(projectRoot, "node_modules", "@powerhousedao", "reactor-browser", "dist/src"),
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
// Resolve to the node_modules in the project root
|
|
116
|
+
// "@powerhousedao/design-system/scalars": join(
|
|
117
|
+
// projectRoot,
|
|
118
|
+
// "node_modules",
|
|
119
|
+
// "@powerhousedao",
|
|
120
|
+
// "design-system",
|
|
121
|
+
// "dist",
|
|
122
|
+
// "scalars",
|
|
123
|
+
// ),
|
|
124
|
+
// "@powerhousedao/design-system": join(
|
|
125
|
+
// projectRoot,
|
|
126
|
+
// "node_modules",
|
|
127
|
+
// "@powerhousedao",
|
|
128
|
+
// "design-system",
|
|
129
|
+
// ),
|
|
130
|
+
// "@powerhousedao/scalars": join(
|
|
131
|
+
// projectRoot,
|
|
132
|
+
// "node_modules",
|
|
133
|
+
// "@powerhousedao",
|
|
134
|
+
// "scalars",
|
|
135
|
+
// ),
|
|
136
|
+
// "@powerhousedao/reactor-browser/hooks/useUiNodesContext": join(
|
|
137
|
+
// projectRoot,
|
|
138
|
+
// "node_modules",
|
|
139
|
+
// "@powerhousedao",
|
|
140
|
+
// "reactor-browser",
|
|
141
|
+
// "dist/src/hooks",
|
|
142
|
+
// ),
|
|
143
|
+
// react: join(projectRoot, "node_modules", "react"),
|
|
144
|
+
// "react-dom": join(projectRoot, "node_modules", "react-dom"),
|
|
145
|
+
// },
|
|
146
|
+
},
|
|
147
|
+
plugins: [
|
|
148
|
+
viteConnectDevStudioPlugin(true, connectPath),
|
|
149
|
+
viteLoadExternalPackages(options.packages, true),
|
|
150
|
+
viteEnvs({
|
|
151
|
+
declarationFile: join(connectPath, ".env"),
|
|
152
|
+
computedEnv,
|
|
153
|
+
}),
|
|
154
|
+
runShellScriptPlugin("vite-envs.sh", connectPath),
|
|
155
|
+
options.https &&
|
|
156
|
+
basicSsl({
|
|
157
|
+
name: "Powerhouse Connect Studio",
|
|
158
|
+
}),
|
|
159
|
+
generateImportMapPlugin(connectPath, [
|
|
160
|
+
{ name: "react", provider: "esm.sh" },
|
|
161
|
+
{ name: "react-dom", provider: "esm.sh" },
|
|
162
|
+
"@powerhousedao/reactor-browser",
|
|
163
|
+
]),
|
|
164
|
+
],
|
|
165
|
+
build: {
|
|
166
|
+
rollupOptions: {
|
|
167
|
+
input: "index.html",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
const server = await createServer(config);
|
|
172
|
+
await server.listen();
|
|
173
|
+
server.printUrls();
|
|
174
|
+
server.bindCLIShortcuts({ print: true });
|
|
175
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../connect-studio/studio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,YAAY,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,6BA8E/D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { dirname, isAbsolute, join } from "path";
|
|
2
|
+
import { readJsonFile } from "./helpers.js";
|
|
3
|
+
import { startServer } from "./server.js";
|
|
4
|
+
export function startConnectStudio(options) {
|
|
5
|
+
const serverOptions = {};
|
|
6
|
+
if (options.port) {
|
|
7
|
+
process.env.PORT = options.port;
|
|
8
|
+
}
|
|
9
|
+
if (options.host) {
|
|
10
|
+
process.env.HOST = options.host.toString();
|
|
11
|
+
}
|
|
12
|
+
if (typeof options.open === "boolean") {
|
|
13
|
+
serverOptions.open = options.open;
|
|
14
|
+
}
|
|
15
|
+
if (options.configFile) {
|
|
16
|
+
const config = readJsonFile(options.configFile);
|
|
17
|
+
if (!config)
|
|
18
|
+
return;
|
|
19
|
+
const configFileDir = dirname(options.configFile);
|
|
20
|
+
if (config.packages && config.packages.length > 0) {
|
|
21
|
+
serverOptions.packages = config.packages.map((p) => p.packageName);
|
|
22
|
+
}
|
|
23
|
+
if (config.documentModelsDir) {
|
|
24
|
+
process.env.LOCAL_DOCUMENT_MODELS = isAbsolute(config.documentModelsDir)
|
|
25
|
+
? config.documentModelsDir
|
|
26
|
+
: join(configFileDir, config.documentModelsDir);
|
|
27
|
+
}
|
|
28
|
+
if (config.editorsDir) {
|
|
29
|
+
process.env.LOCAL_DOCUMENT_EDITORS = isAbsolute(config.editorsDir)
|
|
30
|
+
? config.editorsDir
|
|
31
|
+
: join(configFileDir, config.editorsDir);
|
|
32
|
+
}
|
|
33
|
+
if (config.studio?.port) {
|
|
34
|
+
process.env.PORT = config.studio.port.toString();
|
|
35
|
+
}
|
|
36
|
+
if (typeof config.studio?.openBrowser === "boolean") {
|
|
37
|
+
process.env.OPEN_BROWSER = config.studio.openBrowser.toString();
|
|
38
|
+
}
|
|
39
|
+
if (config.studio?.host) {
|
|
40
|
+
process.env.HOST = config.studio.host;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (options.packages && options.packages.length > 0) {
|
|
44
|
+
serverOptions.packages = options.packages.map((p) => p.packageName);
|
|
45
|
+
}
|
|
46
|
+
if (options.localEditors) {
|
|
47
|
+
process.env.LOCAL_DOCUMENT_EDITORS = options.localEditors;
|
|
48
|
+
}
|
|
49
|
+
if (options.localDocuments) {
|
|
50
|
+
process.env.LOCAL_DOCUMENT_MODELS = options.localDocuments;
|
|
51
|
+
}
|
|
52
|
+
if (options.https) {
|
|
53
|
+
serverOptions.https = options.https;
|
|
54
|
+
}
|
|
55
|
+
if (options.phCliVersion) {
|
|
56
|
+
serverOptions.phCliVersion = options.phCliVersion;
|
|
57
|
+
}
|
|
58
|
+
if (options.logLevel) {
|
|
59
|
+
process.env.LOG_LEVEL = options.logLevel;
|
|
60
|
+
serverOptions.logLevel = options.logLevel;
|
|
61
|
+
}
|
|
62
|
+
return startServer(serverOptions).catch((error) => {
|
|
63
|
+
throw error;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type ConnectStudioOptions = {
|
|
2
|
+
connectPath?: string;
|
|
3
|
+
port?: string;
|
|
4
|
+
host?: boolean;
|
|
5
|
+
https?: boolean;
|
|
6
|
+
configFile?: string;
|
|
7
|
+
localEditors?: string;
|
|
8
|
+
localDocuments?: string;
|
|
9
|
+
open?: boolean;
|
|
10
|
+
packages?: {
|
|
11
|
+
packageName: string;
|
|
12
|
+
}[];
|
|
13
|
+
phCliVersion?: string;
|
|
14
|
+
logLevel?: "verbose" | "debug" | "info" | "warn" | "error" | "silent";
|
|
15
|
+
};
|
|
16
|
+
export type StartServerOptions = {
|
|
17
|
+
connectPath?: string;
|
|
18
|
+
configFile?: string;
|
|
19
|
+
packages?: string[];
|
|
20
|
+
https?: boolean;
|
|
21
|
+
open?: boolean;
|
|
22
|
+
phCliVersion?: string;
|
|
23
|
+
logLevel?: "verbose" | "debug" | "info" | "warn" | "error" | "silent";
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../connect-studio/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Package } from "resolve.exports";
|
|
2
|
+
import { Plugin, PluginOption } from "vite";
|
|
3
|
+
export declare const externalIds: RegExp[];
|
|
4
|
+
export declare const LOCAL_DOCUMENT_MODELS_IMPORT = "LOCAL_DOCUMENT_MODELS";
|
|
5
|
+
export declare const LOCAL_DOCUMENT_EDITORS_IMPORT = "LOCAL_DOCUMENT_EDITORS";
|
|
6
|
+
export declare const HMR_MODULE_IMPORT = "PH:HMR_MODULE";
|
|
7
|
+
export declare const STUDIO_IMPORTS: readonly ["LOCAL_DOCUMENT_MODELS", "LOCAL_DOCUMENT_EDITORS", "PH:HMR_MODULE"];
|
|
8
|
+
export declare function getStudioConfig(env?: Record<string, string>): {
|
|
9
|
+
[LOCAL_DOCUMENT_MODELS_IMPORT]?: string;
|
|
10
|
+
[LOCAL_DOCUMENT_EDITORS_IMPORT]?: string;
|
|
11
|
+
LOAD_EXTERNAL_PACKAGES?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function viteIgnoreStaticImport(_importKeys: (string | RegExp | false | undefined)[]): Plugin;
|
|
14
|
+
export declare function viteReplaceImports(imports: Record<string, string>): PluginOption;
|
|
15
|
+
export declare function findPackageJson(packageName: string): Promise<{
|
|
16
|
+
packageJson: Package;
|
|
17
|
+
path: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../connect-studio/vite-plugins/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAiB,MAAM,MAAM,CAAC;AAGhF,eAAO,MAAM,WAAW,UAGvB,CAAC;AAEF,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AACpE,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AACtE,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,cAAc,+EAIjB,CAAC;AAEX,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAC7D,CAAC,4BAA4B,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,6BAA6B,CAAC,CAAC,EAAE,MAAM,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CA8BA;AAKD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,EAAE,GACnD,MAAM,CAgER;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,YAAY,CAgDd;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM;iBAsBT,OAAO;;GAOtD"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import fs from "fs/promises";
|
|
2
|
+
import MagicString from "magic-string";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import path, { basename, dirname } from "node:path";
|
|
5
|
+
import { normalizePath } from "vite";
|
|
6
|
+
// matches @powerhousedao/connect, react, react-dom and all their sub-imports like react-dom/client
|
|
7
|
+
export const externalIds = [
|
|
8
|
+
/^react(-dom)?(\/.*)?$/,
|
|
9
|
+
/^@powerhousedao\/reactor-browser(\/.*)?$/,
|
|
10
|
+
];
|
|
11
|
+
export const LOCAL_DOCUMENT_MODELS_IMPORT = "LOCAL_DOCUMENT_MODELS";
|
|
12
|
+
export const LOCAL_DOCUMENT_EDITORS_IMPORT = "LOCAL_DOCUMENT_EDITORS";
|
|
13
|
+
export const HMR_MODULE_IMPORT = "PH:HMR_MODULE";
|
|
14
|
+
export const STUDIO_IMPORTS = [
|
|
15
|
+
LOCAL_DOCUMENT_MODELS_IMPORT,
|
|
16
|
+
LOCAL_DOCUMENT_EDITORS_IMPORT,
|
|
17
|
+
HMR_MODULE_IMPORT,
|
|
18
|
+
];
|
|
19
|
+
export function getStudioConfig(env) {
|
|
20
|
+
const config = {};
|
|
21
|
+
const LOCAL_DOCUMENT_MODELS = process.env.LOCAL_DOCUMENT_MODELS ?? env?.LOCAL_DOCUMENT_MODELS;
|
|
22
|
+
const LOCAL_DOCUMENT_EDITORS = process.env.LOCAL_DOCUMENT_EDITORS ?? env?.LOCAL_DOCUMENT_EDITORS;
|
|
23
|
+
const LOCAL_DOCUMENT_MODELS_PATH = LOCAL_DOCUMENT_MODELS
|
|
24
|
+
? path.resolve(process.cwd(), LOCAL_DOCUMENT_MODELS)
|
|
25
|
+
: undefined;
|
|
26
|
+
const LOCAL_DOCUMENT_EDITORS_PATH = LOCAL_DOCUMENT_EDITORS
|
|
27
|
+
? path.resolve(process.cwd(), LOCAL_DOCUMENT_EDITORS)
|
|
28
|
+
: undefined;
|
|
29
|
+
if (LOCAL_DOCUMENT_MODELS_PATH) {
|
|
30
|
+
config[LOCAL_DOCUMENT_MODELS_IMPORT] = normalizePath(LOCAL_DOCUMENT_MODELS_PATH);
|
|
31
|
+
}
|
|
32
|
+
if (LOCAL_DOCUMENT_EDITORS_PATH) {
|
|
33
|
+
config[LOCAL_DOCUMENT_EDITORS_IMPORT] = normalizePath(LOCAL_DOCUMENT_EDITORS_PATH);
|
|
34
|
+
}
|
|
35
|
+
if (typeof process.env.LOAD_EXTERNAL_PACKAGES !== "undefined") {
|
|
36
|
+
config.LOAD_EXTERNAL_PACKAGES = process.env.LOAD_EXTERNAL_PACKAGES;
|
|
37
|
+
}
|
|
38
|
+
return config;
|
|
39
|
+
}
|
|
40
|
+
// https://github.com/vitejs/vite/issues/6393#issuecomment-1006819717
|
|
41
|
+
// vite dev server doesn't support setting dependencies as external
|
|
42
|
+
// as when building the app.
|
|
43
|
+
export function viteIgnoreStaticImport(_importKeys) {
|
|
44
|
+
const importKeys = _importKeys.filter((key) => typeof key === "string" || key instanceof RegExp);
|
|
45
|
+
return {
|
|
46
|
+
name: "vite-plugin-ignore-static-import",
|
|
47
|
+
enforce: "pre",
|
|
48
|
+
// vite will still append /@id/ to an external import
|
|
49
|
+
// so this will rewrite the 'vite:import-analysis' prefix
|
|
50
|
+
configResolved(resolvedConfig) {
|
|
51
|
+
const values = importKeys.map((key) => typeof key === "string" ? key : key.source);
|
|
52
|
+
const reg = new RegExp(`("|')\\/@id\\/(${values.join("|")})(\\/[^"'\\\\]*)?\\1`, "g");
|
|
53
|
+
resolvedConfig.plugins.push({
|
|
54
|
+
name: "vite-plugin-ignore-static-import-replace-idprefix",
|
|
55
|
+
transform: (code) => {
|
|
56
|
+
const s = new MagicString(code);
|
|
57
|
+
const matches = code.matchAll(reg);
|
|
58
|
+
let modified = false;
|
|
59
|
+
for (const match of matches) {
|
|
60
|
+
s.overwrite(match.index, match.index + match[0].length, match[0].replace("/@id/", ""));
|
|
61
|
+
modified = true;
|
|
62
|
+
}
|
|
63
|
+
if (!modified)
|
|
64
|
+
return null;
|
|
65
|
+
return {
|
|
66
|
+
code: s.toString(),
|
|
67
|
+
map: s.generateMap({ hires: true }), // Generate an accurate source map
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
// prevents the external import from being transformed to 'node_modules/...'
|
|
73
|
+
resolveId: (id) => {
|
|
74
|
+
if (importKeys.some((key) => typeof key === "string" ? key === id : key.test(id))) {
|
|
75
|
+
return { id, external: true };
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
// returns empty string to prevent "Pre-transform error: Failed to load url"
|
|
79
|
+
load(id) {
|
|
80
|
+
if (importKeys.some((key) => typeof key === "string" ? key === id : key.test(id))) {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export function viteReplaceImports(imports) {
|
|
87
|
+
const importKeys = Object.keys(imports);
|
|
88
|
+
return {
|
|
89
|
+
name: "vite-plugin-connect-replace-imports",
|
|
90
|
+
enforce: "pre",
|
|
91
|
+
config(config) {
|
|
92
|
+
// adds the provided paths to be resolved by vite
|
|
93
|
+
const resolve = config.resolve ?? {};
|
|
94
|
+
const alias = resolve.alias;
|
|
95
|
+
let resolvedAlias;
|
|
96
|
+
if (Array.isArray(alias)) {
|
|
97
|
+
const arrayAlias = [...alias];
|
|
98
|
+
arrayAlias.push(...Object.entries(imports).map(([find, replacement]) => ({
|
|
99
|
+
find,
|
|
100
|
+
replacement,
|
|
101
|
+
})));
|
|
102
|
+
resolvedAlias = arrayAlias;
|
|
103
|
+
}
|
|
104
|
+
else if (typeof alias === "object") {
|
|
105
|
+
resolvedAlias = {
|
|
106
|
+
...alias,
|
|
107
|
+
...imports,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
else if (typeof alias === "undefined") {
|
|
111
|
+
resolvedAlias = { ...imports };
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.error("resolve.alias was not recognized");
|
|
115
|
+
}
|
|
116
|
+
if (resolvedAlias) {
|
|
117
|
+
resolve.alias = resolvedAlias;
|
|
118
|
+
config.resolve = resolve;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
resolveId: (id) => {
|
|
122
|
+
// if the path was not provided then declares the local
|
|
123
|
+
// imports as external so that vite ignores them
|
|
124
|
+
if (importKeys.includes(id)) {
|
|
125
|
+
return {
|
|
126
|
+
id,
|
|
127
|
+
external: true,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export async function findPackageJson(packageName) {
|
|
134
|
+
let packagePath;
|
|
135
|
+
try {
|
|
136
|
+
// Locate the package entry point
|
|
137
|
+
const require = createRequire(process.cwd());
|
|
138
|
+
packagePath = require.resolve(packageName, { paths: [process.cwd()] });
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
throw new Error(`Failed to resolve package: ${packageName}`, {
|
|
142
|
+
cause: err,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
// Walk up the directory tree to find package.json
|
|
146
|
+
let dir = dirname(packagePath);
|
|
147
|
+
while (dir !== "/" && dir !== "." && dir !== "node_modules") {
|
|
148
|
+
if (basename(dir) === "dist") {
|
|
149
|
+
dir = dirname(dir);
|
|
150
|
+
}
|
|
151
|
+
const pkgJsonPath = `${dir}/package.json`;
|
|
152
|
+
try {
|
|
153
|
+
await fs.access(pkgJsonPath);
|
|
154
|
+
const file = await fs.readFile(pkgJsonPath, "utf-8");
|
|
155
|
+
return { packageJson: JSON.parse(file), path: dir };
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
dir = dirname(dir); // Move up one level
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
throw new Error(`package.json not found for ${packageName}`);
|
|
162
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PluginOption } from "vite";
|
|
2
|
+
export declare const EXTERNAL_PACKAGES_IMPORT = "PH:EXTERNAL_PACKAGES";
|
|
3
|
+
export declare const IMPORT_SCRIPT_FILE: string;
|
|
4
|
+
export declare function generateImportScript(packages: string[]): string;
|
|
5
|
+
export declare const viteLoadExternalPackages: (packages: string[] | undefined, hmr?: boolean) => PluginOption;
|
|
6
|
+
//# sourceMappingURL=external-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-packages.d.ts","sourceRoot":"","sources":["../../../connect-studio/vite-plugins/external-packages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,YAAY,EAAE,MAAM,MAAM,CAAC;AAOnD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,kBAAkB,QAE9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAiCtD;AAED,eAAO,MAAM,wBAAwB,aACzB,MAAM,EAAE,GAAG,SAAS,oBAE7B,YA4CF,CAAC"}
|