@powerhousedao/builder-tools 6.0.0-dev.8 → 6.0.0-dev.80
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/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/connect-utils/helpers.d.ts +1 -1
- package/dist/connect-utils/helpers.d.ts.map +1 -1
- package/dist/connect-utils/index.d.ts +0 -1
- package/dist/connect-utils/index.d.ts.map +1 -1
- package/dist/connect-utils/types.d.ts +0 -1
- package/dist/connect-utils/types.d.ts.map +1 -1
- package/dist/connect-utils/vite-config.d.ts.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111925 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -114
- package/dist/browser.d.ts +0 -2
- package/dist/browser.d.ts.map +0 -1
- package/dist/browser.js +0 -2
- package/dist/browser.js.map +0 -1
- package/dist/connect-build/build.d.ts +0 -6
- package/dist/connect-build/build.d.ts.map +0 -1
- package/dist/connect-build/build.js +0 -54
- package/dist/connect-build/build.js.map +0 -1
- package/dist/connect-build/constants.d.ts +0 -11
- package/dist/connect-build/constants.d.ts.map +0 -1
- package/dist/connect-build/constants.js +0 -11
- package/dist/connect-build/constants.js.map +0 -1
- package/dist/connect-build/helpers.d.ts +0 -37
- package/dist/connect-build/helpers.d.ts.map +0 -1
- package/dist/connect-build/helpers.js +0 -111
- package/dist/connect-build/helpers.js.map +0 -1
- package/dist/connect-build/index.d.ts +0 -5
- package/dist/connect-build/index.d.ts.map +0 -1
- package/dist/connect-build/index.js +0 -4
- package/dist/connect-build/index.js.map +0 -1
- package/dist/connect-build/preview.d.ts +0 -3
- package/dist/connect-build/preview.d.ts.map +0 -1
- package/dist/connect-build/preview.js +0 -19
- package/dist/connect-build/preview.js.map +0 -1
- package/dist/connect-build/types.d.ts +0 -27
- package/dist/connect-build/types.d.ts.map +0 -1
- package/dist/connect-build/types.js +0 -2
- package/dist/connect-build/types.js.map +0 -1
- package/dist/connect-studio/index.d.ts +0 -3
- package/dist/connect-studio/index.d.ts.map +0 -1
- package/dist/connect-studio/index.js +0 -2
- package/dist/connect-studio/index.js.map +0 -1
- package/dist/connect-studio/server.d.ts +0 -3
- package/dist/connect-studio/server.d.ts.map +0 -1
- package/dist/connect-studio/server.js +0 -234
- package/dist/connect-studio/server.js.map +0 -1
- package/dist/connect-studio/studio.d.ts +0 -3
- package/dist/connect-studio/studio.d.ts.map +0 -1
- package/dist/connect-studio/studio.js +0 -66
- package/dist/connect-studio/studio.js.map +0 -1
- package/dist/connect-studio/types.d.ts +0 -28
- package/dist/connect-studio/types.d.ts.map +0 -1
- package/dist/connect-studio/types.js +0 -2
- package/dist/connect-studio/types.js.map +0 -1
- package/dist/connect-utils/build.js +0 -21
- package/dist/connect-utils/build.js.map +0 -1
- package/dist/connect-utils/constants.js +0 -5
- package/dist/connect-utils/constants.js.map +0 -1
- package/dist/connect-utils/env-config.d.ts +0 -844
- package/dist/connect-utils/env-config.d.ts.map +0 -1
- package/dist/connect-utils/env-config.js +0 -518
- package/dist/connect-utils/env-config.js.map +0 -1
- package/dist/connect-utils/helpers.js +0 -265
- package/dist/connect-utils/helpers.js.map +0 -1
- package/dist/connect-utils/index.js +0 -16
- package/dist/connect-utils/index.js.map +0 -1
- package/dist/connect-utils/preview.js +0 -33
- package/dist/connect-utils/preview.js.map +0 -1
- package/dist/connect-utils/studio.js +0 -30
- package/dist/connect-utils/studio.js.map +0 -1
- package/dist/connect-utils/types.js +0 -2
- package/dist/connect-utils/types.js.map +0 -1
- package/dist/connect-utils/vite-config.js +0 -267
- package/dist/connect-utils/vite-config.js.map +0 -1
- package/dist/connect-utils/vite-plugins/base.js +0 -130
- package/dist/connect-utils/vite-plugins/base.js.map +0 -1
- package/dist/connect-utils/vite-plugins/document-models-hmr.js +0 -62
- package/dist/connect-utils/vite-plugins/document-models-hmr.js.map +0 -1
- package/dist/connect-utils/vite-plugins/editors-hmr.js +0 -61
- package/dist/connect-utils/vite-plugins/editors-hmr.js.map +0 -1
- package/dist/connect-utils/vite-plugins/external-packages.js +0 -127
- package/dist/connect-utils/vite-plugins/external-packages.js.map +0 -1
- package/dist/connect-utils/vite-plugins/importmap.js +0 -243
- package/dist/connect-utils/vite-plugins/importmap.js.map +0 -1
- package/dist/connect-utils/vite-plugins/ph-external-packages.js +0 -88
- package/dist/connect-utils/vite-plugins/ph-external-packages.js.map +0 -1
- package/dist/connect-utils/vite-plugins/studio.js +0 -33
- package/dist/connect-utils/vite-plugins/studio.js.map +0 -1
- package/dist/document-model-editor/components/button.d.ts +0 -2
- package/dist/document-model-editor/components/button.d.ts.map +0 -1
- package/dist/document-model-editor/components/button.js +0 -8
- package/dist/document-model-editor/components/button.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/constants.d.ts +0 -3
- package/dist/document-model-editor/components/code-editors/constants.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/constants.js +0 -38
- package/dist/document-model-editor/components/code-editors/constants.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/factories.d.ts +0 -4
- package/dist/document-model-editor/components/code-editors/factories.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/factories.js +0 -47
- package/dist/document-model-editor/components/code-editors/factories.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts +0 -10
- package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/graphql-editor.js +0 -73
- package/dist/document-model-editor/components/code-editors/graphql-editor.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/hooks.d.ts +0 -23
- package/dist/document-model-editor/components/code-editors/hooks.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/hooks.js +0 -59
- package/dist/document-model-editor/components/code-editors/hooks.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/json-editor.d.ts +0 -8
- package/dist/document-model-editor/components/code-editors/json-editor.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/json-editor.js +0 -47
- package/dist/document-model-editor/components/code-editors/json-editor.js.map +0 -1
- package/dist/document-model-editor/components/code-editors/linting.d.ts +0 -6
- package/dist/document-model-editor/components/code-editors/linting.d.ts.map +0 -1
- package/dist/document-model-editor/components/code-editors/linting.js +0 -59
- package/dist/document-model-editor/components/code-editors/linting.js.map +0 -1
- package/dist/document-model-editor/components/divider.d.ts +0 -8
- package/dist/document-model-editor/components/divider.d.ts.map +0 -1
- package/dist/document-model-editor/components/divider.js +0 -22
- package/dist/document-model-editor/components/divider.js.map +0 -1
- package/dist/document-model-editor/components/errors.d.ts +0 -6
- package/dist/document-model-editor/components/errors.d.ts.map +0 -1
- package/dist/document-model-editor/components/errors.js +0 -5
- package/dist/document-model-editor/components/errors.js.map +0 -1
- package/dist/document-model-editor/components/form.d.ts +0 -12
- package/dist/document-model-editor/components/form.d.ts.map +0 -1
- package/dist/document-model-editor/components/form.js +0 -43
- package/dist/document-model-editor/components/form.js.map +0 -1
- package/dist/document-model-editor/components/input.d.ts +0 -6
- package/dist/document-model-editor/components/input.d.ts.map +0 -1
- package/dist/document-model-editor/components/input.js +0 -9
- package/dist/document-model-editor/components/input.js.map +0 -1
- package/dist/document-model-editor/components/label.d.ts +0 -6
- package/dist/document-model-editor/components/label.d.ts.map +0 -1
- package/dist/document-model-editor/components/label.js +0 -10
- package/dist/document-model-editor/components/label.js.map +0 -1
- package/dist/document-model-editor/components/model-metadata-form.d.ts +0 -31
- package/dist/document-model-editor/components/model-metadata-form.d.ts.map +0 -1
- package/dist/document-model-editor/components/model-metadata-form.js +0 -70
- package/dist/document-model-editor/components/model-metadata-form.js.map +0 -1
- package/dist/document-model-editor/components/module-form.d.ts +0 -10
- package/dist/document-model-editor/components/module-form.d.ts.map +0 -1
- package/dist/document-model-editor/components/module-form.js +0 -22
- package/dist/document-model-editor/components/module-form.js.map +0 -1
- package/dist/document-model-editor/components/module.d.ts +0 -22
- package/dist/document-model-editor/components/module.d.ts.map +0 -1
- package/dist/document-model-editor/components/module.js +0 -10
- package/dist/document-model-editor/components/module.js.map +0 -1
- package/dist/document-model-editor/components/modules.d.ts +0 -20
- package/dist/document-model-editor/components/modules.d.ts.map +0 -1
- package/dist/document-model-editor/components/modules.js +0 -17
- package/dist/document-model-editor/components/modules.js.map +0 -1
- package/dist/document-model-editor/components/operation-description-form.d.ts +0 -9
- package/dist/document-model-editor/components/operation-description-form.d.ts.map +0 -1
- package/dist/document-model-editor/components/operation-description-form.js +0 -13
- package/dist/document-model-editor/components/operation-description-form.js.map +0 -1
- package/dist/document-model-editor/components/operation-error-form.d.ts +0 -13
- package/dist/document-model-editor/components/operation-error-form.d.ts.map +0 -1
- package/dist/document-model-editor/components/operation-error-form.js +0 -40
- package/dist/document-model-editor/components/operation-error-form.js.map +0 -1
- package/dist/document-model-editor/components/operation-errors.d.ts +0 -10
- package/dist/document-model-editor/components/operation-errors.d.ts.map +0 -1
- package/dist/document-model-editor/components/operation-errors.js +0 -17
- package/dist/document-model-editor/components/operation-errors.js.map +0 -1
- package/dist/document-model-editor/components/operation-form.d.ts +0 -13
- package/dist/document-model-editor/components/operation-form.d.ts.map +0 -1
- package/dist/document-model-editor/components/operation-form.js +0 -37
- package/dist/document-model-editor/components/operation-form.js.map +0 -1
- package/dist/document-model-editor/components/operation.d.ts +0 -23
- package/dist/document-model-editor/components/operation.d.ts.map +0 -1
- package/dist/document-model-editor/components/operation.js +0 -25
- package/dist/document-model-editor/components/operation.js.map +0 -1
- package/dist/document-model-editor/components/operations.d.ts +0 -18
- package/dist/document-model-editor/components/operations.d.ts.map +0 -1
- package/dist/document-model-editor/components/operations.js +0 -20
- package/dist/document-model-editor/components/operations.js.map +0 -1
- package/dist/document-model-editor/components/state-error.d.ts +0 -5
- package/dist/document-model-editor/components/state-error.d.ts.map +0 -1
- package/dist/document-model-editor/components/state-error.js +0 -21
- package/dist/document-model-editor/components/state-error.js.map +0 -1
- package/dist/document-model-editor/components/state-schemas.d.ts +0 -15
- package/dist/document-model-editor/components/state-schemas.d.ts.map +0 -1
- package/dist/document-model-editor/components/state-schemas.js +0 -81
- package/dist/document-model-editor/components/state-schemas.js.map +0 -1
- package/dist/document-model-editor/components/tabs.d.ts +0 -8
- package/dist/document-model-editor/components/tabs.d.ts.map +0 -1
- package/dist/document-model-editor/components/tabs.js +0 -13
- package/dist/document-model-editor/components/tabs.js.map +0 -1
- package/dist/document-model-editor/components/text-area.d.ts +0 -9
- package/dist/document-model-editor/components/text-area.d.ts.map +0 -1
- package/dist/document-model-editor/components/text-area.js +0 -27
- package/dist/document-model-editor/components/text-area.js.map +0 -1
- package/dist/document-model-editor/components/text-field.d.ts +0 -21
- package/dist/document-model-editor/components/text-field.d.ts.map +0 -1
- package/dist/document-model-editor/components/text-field.js +0 -80
- package/dist/document-model-editor/components/text-field.js.map +0 -1
- package/dist/document-model-editor/config.d.ts +0 -3
- package/dist/document-model-editor/config.d.ts.map +0 -1
- package/dist/document-model-editor/config.js +0 -4
- package/dist/document-model-editor/config.js.map +0 -1
- package/dist/document-model-editor/constants/documents.d.ts +0 -13
- package/dist/document-model-editor/constants/documents.d.ts.map +0 -1
- package/dist/document-model-editor/constants/documents.js +0 -18
- package/dist/document-model-editor/constants/documents.js.map +0 -1
- package/dist/document-model-editor/constants/graphql-kinds.d.ts +0 -9
- package/dist/document-model-editor/constants/graphql-kinds.d.ts.map +0 -1
- package/dist/document-model-editor/constants/graphql-kinds.js +0 -13
- package/dist/document-model-editor/constants/graphql-kinds.js.map +0 -1
- package/dist/document-model-editor/context/form-context.d.ts +0 -11
- package/dist/document-model-editor/context/form-context.d.ts.map +0 -1
- package/dist/document-model-editor/context/form-context.js +0 -4
- package/dist/document-model-editor/context/form-context.js.map +0 -1
- package/dist/document-model-editor/context/schema-context.d.ts +0 -18
- package/dist/document-model-editor/context/schema-context.d.ts.map +0 -1
- package/dist/document-model-editor/context/schema-context.js +0 -129
- package/dist/document-model-editor/context/schema-context.js.map +0 -1
- package/dist/document-model-editor/document-model-editor.stories.d.ts +0 -8
- package/dist/document-model-editor/document-model-editor.stories.d.ts.map +0 -1
- package/dist/document-model-editor/document-model-editor.stories.js +0 -267
- package/dist/document-model-editor/document-model-editor.stories.js.map +0 -1
- package/dist/document-model-editor/editor.d.ts +0 -2
- package/dist/document-model-editor/editor.d.ts.map +0 -1
- package/dist/document-model-editor/editor.js +0 -217
- package/dist/document-model-editor/editor.js.map +0 -1
- package/dist/document-model-editor/hooks/index.d.ts +0 -3
- package/dist/document-model-editor/hooks/index.d.ts.map +0 -1
- package/dist/document-model-editor/hooks/index.js +0 -3
- package/dist/document-model-editor/hooks/index.js.map +0 -1
- package/dist/document-model-editor/hooks/useDocumentModelDocument.d.ts +0 -5
- package/dist/document-model-editor/hooks/useDocumentModelDocument.d.ts.map +0 -1
- package/dist/document-model-editor/hooks/useDocumentModelDocument.js +0 -8
- package/dist/document-model-editor/hooks/useDocumentModelDocument.js.map +0 -1
- package/dist/document-model-editor/hooks/useFormField.d.ts +0 -13
- package/dist/document-model-editor/hooks/useFormField.d.ts.map +0 -1
- package/dist/document-model-editor/hooks/useFormField.js +0 -22
- package/dist/document-model-editor/hooks/useFormField.js.map +0 -1
- package/dist/document-model-editor/index.d.ts +0 -2
- package/dist/document-model-editor/index.d.ts.map +0 -1
- package/dist/document-model-editor/index.js +0 -2
- package/dist/document-model-editor/index.js.map +0 -1
- package/dist/document-model-editor/module.d.ts +0 -3
- package/dist/document-model-editor/module.d.ts.map +0 -1
- package/dist/document-model-editor/module.js +0 -10
- package/dist/document-model-editor/module.js.map +0 -1
- package/dist/document-model-editor/schemas/inputs.d.ts +0 -25
- package/dist/document-model-editor/schemas/inputs.d.ts.map +0 -1
- package/dist/document-model-editor/schemas/inputs.js +0 -71
- package/dist/document-model-editor/schemas/inputs.js.map +0 -1
- package/dist/document-model-editor/schemas/utils.d.ts +0 -3
- package/dist/document-model-editor/schemas/utils.d.ts.map +0 -1
- package/dist/document-model-editor/schemas/utils.js +0 -3
- package/dist/document-model-editor/schemas/utils.js.map +0 -1
- package/dist/document-model-editor/types/documents.d.ts +0 -26
- package/dist/document-model-editor/types/documents.d.ts.map +0 -1
- package/dist/document-model-editor/types/documents.js +0 -2
- package/dist/document-model-editor/types/documents.js.map +0 -1
- package/dist/document-model-editor/types.d.ts +0 -2
- package/dist/document-model-editor/types.d.ts.map +0 -1
- package/dist/document-model-editor/types.js +0 -2
- package/dist/document-model-editor/types.js.map +0 -1
- package/dist/document-model-editor/utils/helpers.d.ts +0 -112
- package/dist/document-model-editor/utils/helpers.d.ts.map +0 -1
- package/dist/document-model-editor/utils/helpers.js +0 -920
- package/dist/document-model-editor/utils/helpers.js.map +0 -1
- package/dist/document-model-editor/utils/linting.d.ts +0 -7
- package/dist/document-model-editor/utils/linting.d.ts.map +0 -1
- package/dist/document-model-editor/utils/linting.js +0 -49
- package/dist/document-model-editor/utils/linting.js.map +0 -1
- package/dist/document-model-editor/utils/style.d.ts +0 -3
- package/dist/document-model-editor/utils/style.d.ts.map +0 -1
- package/dist/document-model-editor/utils/style.js +0 -6
- package/dist/document-model-editor/utils/style.js.map +0 -1
- package/dist/editor-utils/components/documentEditor.d.ts +0 -7
- package/dist/editor-utils/components/documentEditor.d.ts.map +0 -1
- package/dist/editor-utils/components/documentEditor.js +0 -6
- package/dist/editor-utils/components/documentEditor.js.map +0 -1
- package/dist/editor-utils/components/editorToolbar.d.ts +0 -11
- package/dist/editor-utils/components/editorToolbar.d.ts.map +0 -1
- package/dist/editor-utils/components/editorToolbar.js +0 -6
- package/dist/editor-utils/components/editorToolbar.js.map +0 -1
- package/dist/editor-utils/components/editorWorksheet.d.ts +0 -7
- package/dist/editor-utils/components/editorWorksheet.d.ts.map +0 -1
- package/dist/editor-utils/components/editorWorksheet.js +0 -5
- package/dist/editor-utils/components/editorWorksheet.js.map +0 -1
- package/dist/editor-utils/components/index.d.ts +0 -9
- package/dist/editor-utils/components/index.d.ts.map +0 -1
- package/dist/editor-utils/components/index.js +0 -10
- package/dist/editor-utils/components/index.js.map +0 -1
- package/dist/editor-utils/components/styles.d.ts +0 -40
- package/dist/editor-utils/components/styles.d.ts.map +0 -1
- package/dist/editor-utils/components/styles.js +0 -79
- package/dist/editor-utils/components/styles.js.map +0 -1
- package/dist/editor-utils/components/stylesVariant.d.ts +0 -40
- package/dist/editor-utils/components/stylesVariant.d.ts.map +0 -1
- package/dist/editor-utils/components/stylesVariant.js +0 -89
- package/dist/editor-utils/components/stylesVariant.js.map +0 -1
- package/dist/editor-utils/components/textInput.d.ts +0 -20
- package/dist/editor-utils/components/textInput.d.ts.map +0 -1
- package/dist/editor-utils/components/textInput.js +0 -84
- package/dist/editor-utils/components/textInput.js.map +0 -1
- package/dist/editor-utils/components/textInputVariant.d.ts +0 -21
- package/dist/editor-utils/components/textInputVariant.d.ts.map +0 -1
- package/dist/editor-utils/components/textInputVariant.js +0 -93
- package/dist/editor-utils/components/textInputVariant.js.map +0 -1
- package/dist/editor-utils/components/toolbarButton.d.ts +0 -7
- package/dist/editor-utils/components/toolbarButton.d.ts.map +0 -1
- package/dist/editor-utils/components/toolbarButton.js +0 -9
- package/dist/editor-utils/components/toolbarButton.js.map +0 -1
- package/dist/editor-utils/hooks/index.d.ts +0 -2
- package/dist/editor-utils/hooks/index.d.ts.map +0 -1
- package/dist/editor-utils/hooks/index.js +0 -2
- package/dist/editor-utils/hooks/index.js.map +0 -1
- package/dist/editor-utils/hooks/useEnsInfo.d.ts +0 -15
- package/dist/editor-utils/hooks/useEnsInfo.d.ts.map +0 -1
- package/dist/editor-utils/hooks/useEnsInfo.js +0 -64
- package/dist/editor-utils/hooks/useEnsInfo.js.map +0 -1
- package/dist/editor-utils/index.d.ts +0 -5
- package/dist/editor-utils/index.d.ts.map +0 -1
- package/dist/editor-utils/index.js +0 -5
- package/dist/editor-utils/index.js.map +0 -1
- package/dist/editor-utils/reducer.d.ts +0 -3
- package/dist/editor-utils/reducer.d.ts.map +0 -1
- package/dist/editor-utils/reducer.js +0 -25
- package/dist/editor-utils/reducer.js.map +0 -1
- package/dist/editor-utils/storybook.d.ts +0 -32
- package/dist/editor-utils/storybook.d.ts.map +0 -1
- package/dist/editor-utils/storybook.js +0 -104
- package/dist/editor-utils/storybook.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/style.css +0 -890
- package/dist/test/helpers.test.d.ts +0 -2
- package/dist/test/helpers.test.d.ts.map +0 -1
- package/dist/test/helpers.test.js +0 -805
- package/dist/test/helpers.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -2
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -2
- package/dist/test/index.js.map +0 -1
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import fs from "fs/promises";
|
|
2
|
-
import MagicString from "magic-string";
|
|
3
|
-
import { createRequire } from "node:module";
|
|
4
|
-
import { basename, dirname } from "node:path";
|
|
5
|
-
// matches @powerhousedao/connect, react, react-dom and all their sub-imports like react-dom/client
|
|
6
|
-
export const externalIds = [/^react(-dom)?(\/.*)?$/, /^node:.*$/];
|
|
7
|
-
// https://github.com/vitejs/vite/issues/6393#issuecomment-1006819717
|
|
8
|
-
// vite dev server doesn't support setting dependencies as external
|
|
9
|
-
// as when building the app.
|
|
10
|
-
export function viteIgnoreStaticImport(_importKeys) {
|
|
11
|
-
const importKeys = _importKeys.filter((key) => typeof key === "string" || key instanceof RegExp);
|
|
12
|
-
return {
|
|
13
|
-
name: "vite-plugin-ignore-static-import",
|
|
14
|
-
enforce: "pre",
|
|
15
|
-
// vite will still append /@id/ to an external import
|
|
16
|
-
// so this will rewrite the 'vite:import-analysis' prefix
|
|
17
|
-
configResolved(resolvedConfig) {
|
|
18
|
-
const values = importKeys.map((key) => typeof key === "string" ? key : key.source);
|
|
19
|
-
const reg = new RegExp(`("|')\\/@id\\/(${values.join("|")})(\\/[^"'\\\\]*)?\\1`, "g");
|
|
20
|
-
resolvedConfig.plugins.push({
|
|
21
|
-
name: "vite-plugin-ignore-static-import-replace-idprefix",
|
|
22
|
-
transform: (code) => {
|
|
23
|
-
const s = new MagicString(code);
|
|
24
|
-
const matches = code.matchAll(reg);
|
|
25
|
-
let modified = false;
|
|
26
|
-
for (const match of matches) {
|
|
27
|
-
s.overwrite(match.index, match.index + match[0].length, match[0].replace("/@id/", ""));
|
|
28
|
-
modified = true;
|
|
29
|
-
}
|
|
30
|
-
if (!modified)
|
|
31
|
-
return null;
|
|
32
|
-
return {
|
|
33
|
-
code: s.toString(),
|
|
34
|
-
map: s.generateMap({ hires: true }), // Generate an accurate source map
|
|
35
|
-
};
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
},
|
|
39
|
-
// prevents the external import from being transformed to 'node_modules/...'
|
|
40
|
-
resolveId: (id) => {
|
|
41
|
-
if (importKeys.some((key) => typeof key === "string" ? key === id : key.test(id))) {
|
|
42
|
-
return { id, external: true };
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
// returns empty string to prevent "Pre-transform error: Failed to load url"
|
|
46
|
-
load(id) {
|
|
47
|
-
if (importKeys.some((key) => typeof key === "string" ? key === id : key.test(id))) {
|
|
48
|
-
return "";
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export function viteReplaceImports(imports) {
|
|
54
|
-
const importKeys = Object.keys(imports);
|
|
55
|
-
return {
|
|
56
|
-
name: "vite-plugin-connect-replace-imports",
|
|
57
|
-
enforce: "pre",
|
|
58
|
-
config(config) {
|
|
59
|
-
// adds the provided paths to be resolved by vite
|
|
60
|
-
const resolve = config.resolve ?? {};
|
|
61
|
-
const alias = resolve.alias;
|
|
62
|
-
let resolvedAlias;
|
|
63
|
-
if (Array.isArray(alias)) {
|
|
64
|
-
const arrayAlias = [...alias];
|
|
65
|
-
arrayAlias.push(...Object.entries(imports).map(([find, replacement]) => ({
|
|
66
|
-
find,
|
|
67
|
-
replacement,
|
|
68
|
-
})));
|
|
69
|
-
resolvedAlias = arrayAlias;
|
|
70
|
-
}
|
|
71
|
-
else if (typeof alias === "object") {
|
|
72
|
-
resolvedAlias = {
|
|
73
|
-
...alias,
|
|
74
|
-
...imports,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
else if (typeof alias === "undefined") {
|
|
78
|
-
resolvedAlias = { ...imports };
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
console.error("resolve.alias was not recognized");
|
|
82
|
-
}
|
|
83
|
-
if (resolvedAlias) {
|
|
84
|
-
resolve.alias = resolvedAlias;
|
|
85
|
-
config.resolve = resolve;
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
resolveId: (id) => {
|
|
89
|
-
// if the path was not provided then declares the local
|
|
90
|
-
// imports as external so that vite ignores them
|
|
91
|
-
if (importKeys.includes(id)) {
|
|
92
|
-
return {
|
|
93
|
-
id,
|
|
94
|
-
external: true,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
export async function findPackageJson(packageName) {
|
|
101
|
-
let packagePath;
|
|
102
|
-
try {
|
|
103
|
-
// Locate the package entry point
|
|
104
|
-
const require = createRequire(process.cwd());
|
|
105
|
-
packagePath = require.resolve(packageName, { paths: [process.cwd()] });
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
throw new Error(`Failed to resolve package: ${packageName}`, {
|
|
109
|
-
cause: err,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
// Walk up the directory tree to find package.json
|
|
113
|
-
let dir = dirname(packagePath);
|
|
114
|
-
while (dir !== "/" && dir !== "." && dir !== "node_modules") {
|
|
115
|
-
if (basename(dir) === "dist") {
|
|
116
|
-
dir = dirname(dir);
|
|
117
|
-
}
|
|
118
|
-
const pkgJsonPath = `${dir}/package.json`;
|
|
119
|
-
try {
|
|
120
|
-
await fs.access(pkgJsonPath);
|
|
121
|
-
const file = await fs.readFile(pkgJsonPath, "utf-8");
|
|
122
|
-
return { packageJson: JSON.parse(file), path: dir };
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
dir = dirname(dir); // Move up one level
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
throw new Error(`package.json not found for ${packageName}`);
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { IMPORT_SCRIPT_FILE } from "../constants.js";
|
|
3
|
-
export const viteDocumentModelsHMR = (targetDir) => {
|
|
4
|
-
const importPath = join(targetDir, IMPORT_SCRIPT_FILE);
|
|
5
|
-
const projectRoot = process.cwd();
|
|
6
|
-
const documentModelsPath = join(projectRoot, "document-models");
|
|
7
|
-
function triggerDocumentModelsHMR(server) {
|
|
8
|
-
// Get the external-packages module that imports our document models
|
|
9
|
-
const externalPackagesModule = server.moduleGraph.getModuleById(importPath);
|
|
10
|
-
if (externalPackagesModule) {
|
|
11
|
-
// Invalidate the external-packages module to trigger re-import
|
|
12
|
-
server.moduleGraph.invalidateModule(externalPackagesModule);
|
|
13
|
-
// Send custom event like the external-packages plugin does
|
|
14
|
-
const timestamp = Date.now();
|
|
15
|
-
const eventData = {
|
|
16
|
-
url: externalPackagesModule.url,
|
|
17
|
-
timestamp: timestamp.toString(),
|
|
18
|
-
};
|
|
19
|
-
server.ws.send("studio:external-packages-updated", eventData);
|
|
20
|
-
// Return the modules that should be updated
|
|
21
|
-
return [
|
|
22
|
-
externalPackagesModule,
|
|
23
|
-
...externalPackagesModule.importers.values(),
|
|
24
|
-
];
|
|
25
|
-
}
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
name: "vite-plugin-document-models-hmr",
|
|
30
|
-
configureServer(server) {
|
|
31
|
-
// Add document-models files to Vite's watcher
|
|
32
|
-
const documentModelsIndexJs = join(documentModelsPath, "index.js");
|
|
33
|
-
const documentModelsIndexTs = join(documentModelsPath, "index.ts");
|
|
34
|
-
// Add the document-models files to the server's watcher
|
|
35
|
-
server.watcher.add([documentModelsIndexJs, documentModelsIndexTs]);
|
|
36
|
-
},
|
|
37
|
-
handleHotUpdate({ file, server, modules }) {
|
|
38
|
-
// Check if this is a document-models index file change
|
|
39
|
-
const isDocumentModelIndex = file.endsWith("document-models/index.js") ||
|
|
40
|
-
file.endsWith("document-models/index.ts");
|
|
41
|
-
// Check if this is the external-packages.js file that gets regenerated
|
|
42
|
-
const isExternalPackagesFile = file === importPath;
|
|
43
|
-
// Ignore other document-models files to prevent unwanted updates
|
|
44
|
-
const isOtherDocumentModelFile = file.includes("/document-models/") && !isDocumentModelIndex;
|
|
45
|
-
if (isOtherDocumentModelFile) {
|
|
46
|
-
// Return empty array to prevent any HMR for non-index files
|
|
47
|
-
return [];
|
|
48
|
-
}
|
|
49
|
-
if (isDocumentModelIndex) {
|
|
50
|
-
// Send the WebSocket event but return empty array to prevent Vite's default HMR
|
|
51
|
-
triggerDocumentModelsHMR(server);
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
if (isExternalPackagesFile) {
|
|
55
|
-
// This file was already handled when document-models changed, don't trigger default HMR
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
return modules;
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=document-models-hmr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-models-hmr.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/document-models-hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAgB,EAAE;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAEhE,SAAS,wBAAwB,CAAC,MAAqB;QACrD,oEAAoE;QACpE,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE5E,IAAI,sBAAsB,EAAE,CAAC;YAC3B,+DAA+D;YAC/D,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;YAE5D,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG;gBAChB,GAAG,EAAE,sBAAsB,CAAC,GAAG;gBAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;aAChC,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;YAE9D,4CAA4C;YAC5C,OAAO;gBACL,sBAAsB;gBACtB,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,EAAE;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,iCAAiC;QACvC,eAAe,CAAC,MAAM;YACpB,8CAA8C;YAC9C,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;YAEnE,wDAAwD;YACxD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,uDAAuD;YACvD,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;YAE5C,uEAAuE;YACvE,MAAM,sBAAsB,GAAG,IAAI,KAAK,UAAU,CAAC;YAEnD,iEAAiE;YACjE,MAAM,wBAAwB,GAC5B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAE9D,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,4DAA4D;gBAC5D,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,oBAAoB,EAAE,CAAC;gBACzB,gFAAgF;gBAChF,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,wFAAwF;gBACxF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { IMPORT_SCRIPT_FILE } from "../constants.js";
|
|
3
|
-
export const viteEditorsHMR = (targetDir) => {
|
|
4
|
-
const importPath = join(targetDir, IMPORT_SCRIPT_FILE);
|
|
5
|
-
const projectRoot = process.cwd();
|
|
6
|
-
const editorsPath = join(projectRoot, "editors");
|
|
7
|
-
function triggerEditorsHMR(server) {
|
|
8
|
-
// Get the external-packages module that imports our editors
|
|
9
|
-
const externalPackagesModule = server.moduleGraph.getModuleById(importPath);
|
|
10
|
-
if (externalPackagesModule) {
|
|
11
|
-
// Invalidate the external-packages module to trigger re-import
|
|
12
|
-
server.moduleGraph.invalidateModule(externalPackagesModule);
|
|
13
|
-
// Send custom event like the external-packages plugin does
|
|
14
|
-
const timestamp = Date.now();
|
|
15
|
-
const eventData = {
|
|
16
|
-
url: externalPackagesModule.url,
|
|
17
|
-
timestamp: timestamp.toString(),
|
|
18
|
-
};
|
|
19
|
-
server.ws.send("studio:external-packages-updated", eventData);
|
|
20
|
-
// Return the modules that should be updated
|
|
21
|
-
return [
|
|
22
|
-
externalPackagesModule,
|
|
23
|
-
...externalPackagesModule.importers.values(),
|
|
24
|
-
];
|
|
25
|
-
}
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
name: "vite-plugin-editors-hmr",
|
|
30
|
-
configureServer(server) {
|
|
31
|
-
// Add editors files to Vite's watcher
|
|
32
|
-
const editorsIndexJs = join(editorsPath, "index.js");
|
|
33
|
-
const editorsIndexTs = join(editorsPath, "index.ts");
|
|
34
|
-
// Add the editors files to the server's watcher
|
|
35
|
-
server.watcher.add([editorsIndexJs, editorsIndexTs]);
|
|
36
|
-
},
|
|
37
|
-
handleHotUpdate({ file, server, modules }) {
|
|
38
|
-
// Check if this is an editors index file change
|
|
39
|
-
const isEditorsIndex = file.endsWith("editors/index.js") || file.endsWith("editors/index.ts");
|
|
40
|
-
// Check if this is the external-packages.js file that gets regenerated
|
|
41
|
-
const isExternalPackagesFile = file === importPath;
|
|
42
|
-
// Ignore other editors files to prevent unwanted updates
|
|
43
|
-
const isOtherEditorsFile = file.includes("/editors/") && !isEditorsIndex;
|
|
44
|
-
if (isOtherEditorsFile) {
|
|
45
|
-
// Return empty array to prevent any HMR for non-index files
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
if (isEditorsIndex) {
|
|
49
|
-
// Send the WebSocket event but return empty array to prevent Vite's default HMR
|
|
50
|
-
triggerEditorsHMR(server);
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
if (isExternalPackagesFile) {
|
|
54
|
-
// This file was already handled when editors changed, don't trigger default HMR
|
|
55
|
-
return [];
|
|
56
|
-
}
|
|
57
|
-
return modules;
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=editors-hmr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editors-hmr.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/editors-hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAgB,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEjD,SAAS,iBAAiB,CAAC,MAAqB;QAC9C,4DAA4D;QAC5D,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE5E,IAAI,sBAAsB,EAAE,CAAC;YAC3B,+DAA+D;YAC/D,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;YAE5D,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG;gBAChB,GAAG,EAAE,sBAAsB,CAAC,GAAG;gBAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;aAChC,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;YAE9D,4CAA4C;YAC5C,OAAO;gBACL,sBAAsB;gBACtB,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,EAAE;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,eAAe,CAAC,MAAM;YACpB,sCAAsC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAErD,gDAAgD;YAChD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;YACvC,gDAAgD;YAChD,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAEzE,uEAAuE;YACvE,MAAM,sBAAsB,GAAG,IAAI,KAAK,UAAU,CAAC;YAEnD,yDAAyD;YACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;YAEzE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,4DAA4D;gBAC5D,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,gFAAgF;gBAChF,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,gFAAgF;gBAChF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { getConfig } from "@powerhousedao/config/node";
|
|
2
|
-
import { exec } from "node:child_process";
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
import { dirname, join, resolve } from "node:path";
|
|
5
|
-
import { IMPORT_SCRIPT_FILE } from "../constants.js";
|
|
6
|
-
import { makeImportScriptFromPackages } from "../helpers.js";
|
|
7
|
-
const LOCAL_CSS = "../../style.css";
|
|
8
|
-
const LOCAL_JS = "../../index.js";
|
|
9
|
-
function generateImportScript(packages, targetPath, localPackage) {
|
|
10
|
-
// create file if it doesn't exist, also create path if it doesn't exist (recursive)
|
|
11
|
-
const targetDir = dirname(targetPath);
|
|
12
|
-
if (!fs.existsSync(targetDir)) {
|
|
13
|
-
fs.mkdirSync(targetDir, { recursive: true });
|
|
14
|
-
}
|
|
15
|
-
const hasJsModule = localPackage && fs.existsSync(resolve(targetDir, LOCAL_JS));
|
|
16
|
-
const hasTsModule = localPackage &&
|
|
17
|
-
fs.existsSync(resolve(targetDir, LOCAL_JS.replace(".js", ".ts")));
|
|
18
|
-
const hasModule = hasJsModule || hasTsModule;
|
|
19
|
-
const hasStyles = localPackage && fs.existsSync(resolve(targetDir, LOCAL_CSS));
|
|
20
|
-
// Use the correct file extension based on what actually exists
|
|
21
|
-
const localJsPath = hasModule
|
|
22
|
-
? hasJsModule
|
|
23
|
-
? LOCAL_JS
|
|
24
|
-
: LOCAL_JS.replace(".js", ".ts")
|
|
25
|
-
: undefined;
|
|
26
|
-
const localCssPath = hasStyles ? LOCAL_CSS : undefined;
|
|
27
|
-
const fileContent = makeImportScriptFromPackages({
|
|
28
|
-
packages,
|
|
29
|
-
localJsPath,
|
|
30
|
-
localCssPath,
|
|
31
|
-
});
|
|
32
|
-
fs.writeFileSync(targetPath, fileContent.trim());
|
|
33
|
-
return targetPath;
|
|
34
|
-
}
|
|
35
|
-
const handleExternalPackageEvents = (server) => {
|
|
36
|
-
server.ws.on("studio:add-external-package", (data, client) => {
|
|
37
|
-
const { name } = data;
|
|
38
|
-
const installProcess = exec(`ph install ${name}`, {
|
|
39
|
-
cwd: process.cwd(),
|
|
40
|
-
}, (error) => {
|
|
41
|
-
if (error) {
|
|
42
|
-
console.error(`\t[${name}]: ${error.message}`);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
server.ws.send("studio:external-package-added", {
|
|
46
|
-
name,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
installProcess.stdout?.on("data", (data) => {
|
|
51
|
-
console.log(`\t[${name}]: ${data.toString().trim()}`);
|
|
52
|
-
});
|
|
53
|
-
console.log("Installing external package:", name);
|
|
54
|
-
});
|
|
55
|
-
server.ws.on("studio:remove-external-package", (data, client) => {
|
|
56
|
-
const { name } = data;
|
|
57
|
-
const uninstallProcess = exec(`ph uninstall ${name}`, {
|
|
58
|
-
cwd: process.cwd(),
|
|
59
|
-
}, (error) => {
|
|
60
|
-
if (error) {
|
|
61
|
-
console.error(`\t[${name}]: ${error.message}`);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
server.ws.send("studio:external-package-removed", {
|
|
65
|
-
name,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
uninstallProcess.stdout?.on("data", (data) => {
|
|
70
|
-
console.log(`\t[${name}]: ${data.toString().trim()}`);
|
|
71
|
-
});
|
|
72
|
-
console.log("Removing external package:", name);
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
export const viteLoadExternalPackages = (localPackage, packages, targetDir) => {
|
|
76
|
-
const importPath = join(targetDir, IMPORT_SCRIPT_FILE);
|
|
77
|
-
packages = packages?.filter((p) => p.trim().length) ?? [];
|
|
78
|
-
return [
|
|
79
|
-
{
|
|
80
|
-
name: "vite-plugin-ph-external-packages",
|
|
81
|
-
config() {
|
|
82
|
-
if (!localPackage) {
|
|
83
|
-
generateImportScript(packages, importPath, localPackage);
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
closeBundle() {
|
|
87
|
-
generateImportScript(packages, importPath, localPackage);
|
|
88
|
-
},
|
|
89
|
-
configureServer(server) {
|
|
90
|
-
generateImportScript(packages, importPath, localPackage);
|
|
91
|
-
handleExternalPackageEvents(server);
|
|
92
|
-
},
|
|
93
|
-
handleHotUpdate({ file, server, modules, timestamp }) {
|
|
94
|
-
if (file.endsWith("powerhouse.config.json")) {
|
|
95
|
-
const config = getConfig(file);
|
|
96
|
-
generateImportScript(config.packages?.map((p) => p.packageName) ?? [], importPath, true);
|
|
97
|
-
config.packages?.forEach((pkg) => console.log("-> Loading package:", pkg.packageName));
|
|
98
|
-
const module = server.moduleGraph.getModuleById(importPath);
|
|
99
|
-
if (module) {
|
|
100
|
-
server.moduleGraph.invalidateModule(module);
|
|
101
|
-
return [module].concat(...module.importers.values());
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else if (file === importPath) {
|
|
105
|
-
modules
|
|
106
|
-
.filter((module) => module.id === importPath)
|
|
107
|
-
.forEach((module) => {
|
|
108
|
-
server.ws.send("studio:external-packages-updated", {
|
|
109
|
-
url: module.url,
|
|
110
|
-
timestampUtcMs: timestamp,
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
return modules;
|
|
114
|
-
}
|
|
115
|
-
else if (!file.startsWith(targetDir) &&
|
|
116
|
-
!file.includes("node_modules")) {
|
|
117
|
-
// When local files change, use the project's config file path instead of the changed file
|
|
118
|
-
const configPath = join(process.cwd(), "powerhouse.config.json");
|
|
119
|
-
const config = getConfig(configPath);
|
|
120
|
-
generateImportScript(config.packages?.map((p) => p.packageName) ?? [], importPath, localPackage);
|
|
121
|
-
}
|
|
122
|
-
return modules;
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
];
|
|
126
|
-
};
|
|
127
|
-
//# sourceMappingURL=external-packages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"external-packages.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/external-packages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { build } from "esbuild";
|
|
2
|
-
import fg from "fast-glob";
|
|
3
|
-
import fs from "node:fs/promises";
|
|
4
|
-
import { builtinModules } from "node:module";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
import { exports } from "resolve.exports";
|
|
7
|
-
import { findPackageJson } from "./base.js";
|
|
8
|
-
const nodeModules = builtinModules.concat(builtinModules.map((m) => `node:${m}`));
|
|
9
|
-
/**
|
|
10
|
-
* Resolves glob exports like `"./*": "./dist/*.js"` and `"./utils/*": "./dist/utils/*.js"`
|
|
11
|
-
* into actual file mappings.
|
|
12
|
-
*
|
|
13
|
-
* @param {string} exportName - The export pattern (e.g., `"./*"` or `"./utils/*"`).
|
|
14
|
-
* @param {string} exportPath - The actual path pattern (e.g., `"./dist/*.js"`).
|
|
15
|
-
* @param {string} srcPath - The package root directory where the exports are located.
|
|
16
|
-
* @returns {Promise<Record<string, string>>} - A mapping of export names to resolved paths.
|
|
17
|
-
*/
|
|
18
|
-
async function resolveGlobExport(exportName, exportPath, srcPath) {
|
|
19
|
-
const resolvedExports = new Map();
|
|
20
|
-
const hasGloblExport = exportName.endsWith("/*");
|
|
21
|
-
const globPath = hasGloblExport
|
|
22
|
-
? exportPath.replace("*", "**/*")
|
|
23
|
-
: exportPath;
|
|
24
|
-
const distPath = exportPath.substring(0, exportPath.lastIndexOf("/*"));
|
|
25
|
-
const resolvedSrcPath = hasGloblExport
|
|
26
|
-
? path.join(srcPath.replace("*", ""), distPath)
|
|
27
|
-
: srcPath;
|
|
28
|
-
const files = await fg(path.join(srcPath, globPath));
|
|
29
|
-
for (const file of files) {
|
|
30
|
-
const relativeSrcFilePath = path.relative(resolvedSrcPath, file); // Relative to the dist folder
|
|
31
|
-
const exportFilePath = path.relative(srcPath, file); // Relative to package root
|
|
32
|
-
const exportKey = relativeSrcFilePath.replace(path.extname(file), ""); // Remove .js extension
|
|
33
|
-
const mappedExport = exportName.replace("*", exportKey); // Replace glob `*` with actual name
|
|
34
|
-
resolvedExports.set(mappedExport, {
|
|
35
|
-
export: `./${relativeSrcFilePath}`,
|
|
36
|
-
file: exportFilePath,
|
|
37
|
-
}); // Final mapped entry
|
|
38
|
-
}
|
|
39
|
-
return resolvedExports;
|
|
40
|
-
}
|
|
41
|
-
async function addExportToMap(exportName, exportPath, srcPath, map) {
|
|
42
|
-
if (exportName.includes("*")) {
|
|
43
|
-
const exports = await resolveGlobExport(exportName, exportPath, srcPath);
|
|
44
|
-
exports.forEach((value, key) => map.set(key, value));
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
map.set(exportName, { export: exportPath, file: exportPath });
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function getPackageExports(name, packageJson, srcPath) {
|
|
51
|
-
const entries = new Map();
|
|
52
|
-
const mainExport = exports(packageJson, ".", {
|
|
53
|
-
browser: true,
|
|
54
|
-
});
|
|
55
|
-
if (mainExport) {
|
|
56
|
-
for (const entry of mainExport) {
|
|
57
|
-
await addExportToMap(".", entry, srcPath, entries);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (!packageJson.exports) {
|
|
61
|
-
return entries;
|
|
62
|
-
}
|
|
63
|
-
if (typeof packageJson.exports === "string") {
|
|
64
|
-
await addExportToMap(name, packageJson.exports, srcPath, entries);
|
|
65
|
-
return entries;
|
|
66
|
-
}
|
|
67
|
-
for (const [key, entry] of Object.entries(packageJson.exports)) {
|
|
68
|
-
if (typeof entry === "string") {
|
|
69
|
-
await addExportToMap(key, entry, srcPath, entries);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
const exportEntry = exports(packageJson, key, {
|
|
73
|
-
browser: true,
|
|
74
|
-
});
|
|
75
|
-
const exportResult = exportEntry?.at(0);
|
|
76
|
-
if (exportResult) {
|
|
77
|
-
await addExportToMap(key, exportResult, srcPath, entries);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
console.warn(`No browser exports found for ${name}/${key}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// if the main entry file was resolved to a shorter path then updates it
|
|
85
|
-
const main = entries.get(".");
|
|
86
|
-
const resolvedEntry = main
|
|
87
|
-
? Array.from(entries.entries()).find(([key, entry]) => key != "." && [entry.file, `./${entry.file}`].includes(main.file))
|
|
88
|
-
: undefined;
|
|
89
|
-
const resolvedExport = resolvedEntry?.at(1);
|
|
90
|
-
if (resolvedExport) {
|
|
91
|
-
entries.set(".", {
|
|
92
|
-
export: resolvedExport.export,
|
|
93
|
-
file: resolvedExport.file,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return entries;
|
|
97
|
-
}
|
|
98
|
-
function importFromEsmSh(name, version, dependencies) {
|
|
99
|
-
const lib = `${name}${version ? `@${version}` : ""}`;
|
|
100
|
-
const query = dependencies?.length ? `&deps=${dependencies.join(",")}` : "";
|
|
101
|
-
return {
|
|
102
|
-
[name]: `https://esm.sh/${lib}${query}`,
|
|
103
|
-
[`${name}/`]: `https://esm.sh/${lib}${query}/`,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
async function importFromNodeModules(name, modulesDir, importMapDeps, baseUrl) {
|
|
107
|
-
const importMap = {};
|
|
108
|
-
const { packageJson, path: srcPath } = await findPackageJson(name);
|
|
109
|
-
const entries = await getPackageExports(name, packageJson, srcPath);
|
|
110
|
-
if (!entries.size) {
|
|
111
|
-
throw new Error(`No browser exports found for ${name}`);
|
|
112
|
-
}
|
|
113
|
-
const indexFile = entries.get("")?.export || "index";
|
|
114
|
-
const fileName = path.basename(entries.get("")?.export || "index", path.extname(indexFile));
|
|
115
|
-
const outputPath = path.join(modulesDir, name);
|
|
116
|
-
// Bundle and tree-shake only dependencies (exclude the actual library code)
|
|
117
|
-
const buildModule = () => {
|
|
118
|
-
console.log(`Bundling dependency: ${name}`);
|
|
119
|
-
return build({
|
|
120
|
-
entryPoints: Array.from(entries.values()).map((value) => path.join(srcPath, value.file)),
|
|
121
|
-
outdir: outputPath,
|
|
122
|
-
bundle: true,
|
|
123
|
-
format: "esm",
|
|
124
|
-
platform: "browser",
|
|
125
|
-
target: "esnext",
|
|
126
|
-
splitting: true,
|
|
127
|
-
external: nodeModules.concat(Array.from(importMapDeps)), // Exclude dependencies already in import map
|
|
128
|
-
sourcemap: true,
|
|
129
|
-
minify: false,
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
// Add entry to import map
|
|
133
|
-
importMap[name] = `./modules/${name}/${fileName}.js`;
|
|
134
|
-
entries.forEach((entry, key) => {
|
|
135
|
-
importMap[path.join(name, key)] = path.join(baseUrl, `./modules/${path.join(name, entry.export)}`);
|
|
136
|
-
});
|
|
137
|
-
return { importMap, buildModule };
|
|
138
|
-
}
|
|
139
|
-
async function generateImportMap(outputDir, dependencies, baseUrl) {
|
|
140
|
-
const modulesDir = path.join(outputDir, "/modules");
|
|
141
|
-
await fs.mkdir(modulesDir, { recursive: true });
|
|
142
|
-
const importMapDeps = new Set(dependencies.map((dep) => (typeof dep === "string" ? dep : dep.name)));
|
|
143
|
-
let importMap = {};
|
|
144
|
-
const buildModules = [];
|
|
145
|
-
for (const dependency of dependencies) {
|
|
146
|
-
const isString = typeof dependency === "string";
|
|
147
|
-
const name = isString ? dependency : dependency.name;
|
|
148
|
-
const version = isString ? undefined : dependency.version;
|
|
149
|
-
const provider = isString ? "node_modules" : dependency.provider;
|
|
150
|
-
const subDependencies = isString ? undefined : dependency.dependencies;
|
|
151
|
-
if (provider === "esm.sh") {
|
|
152
|
-
const imports = importFromEsmSh(name, version, subDependencies);
|
|
153
|
-
importMap = { ...importMap, ...imports };
|
|
154
|
-
// TODO: this does not make sense.
|
|
155
|
-
// We need to give this the actual correct type, or if we really don't know what it is, then make it `unknown`
|
|
156
|
-
}
|
|
157
|
-
else if (provider.toString() === "node_modules") {
|
|
158
|
-
const { importMap: imports, buildModule } = await importFromNodeModules(name, modulesDir, importMapDeps, baseUrl);
|
|
159
|
-
importMap = { ...importMap, ...imports };
|
|
160
|
-
buildModules.push(buildModule);
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
throw new Error(`Unsupported provider: ${provider}`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
importMap,
|
|
168
|
-
buildModules: async () => {
|
|
169
|
-
await Promise.all(buildModules.map((build) => build()));
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function addImportMapToHTML(importMap, html) {
|
|
174
|
-
let newHtml = "";
|
|
175
|
-
// Regex to find existing import map
|
|
176
|
-
const importMapRegex = /<script type="importmap">(.*?)<\/script>/s;
|
|
177
|
-
const match = importMapRegex.exec(html);
|
|
178
|
-
// If an import map exists, merge the imports
|
|
179
|
-
if (match) {
|
|
180
|
-
try {
|
|
181
|
-
const existingImportMap = JSON.parse(match[1]);
|
|
182
|
-
existingImportMap.imports = {
|
|
183
|
-
...existingImportMap.imports,
|
|
184
|
-
...importMap,
|
|
185
|
-
};
|
|
186
|
-
const mergedImportMapString = JSON.stringify(existingImportMap, null, 2);
|
|
187
|
-
newHtml = html.replace(importMapRegex, `<script type="importmap">${mergedImportMapString}</script>`);
|
|
188
|
-
}
|
|
189
|
-
catch (error) {
|
|
190
|
-
console.error("⚠️ Error parsing existing import map:", error);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
const importMapString = JSON.stringify({ imports: importMap }, null, 2);
|
|
195
|
-
const importMapScript = `<script type="importmap">${importMapString}</script>`;
|
|
196
|
-
newHtml = html.replace("</head>", `${importMapScript}\n</head>`);
|
|
197
|
-
}
|
|
198
|
-
return newHtml;
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Vite plugin to bundle or copy dependencies and inject an import map into `index.html`.
|
|
202
|
-
*
|
|
203
|
-
* @param {string} outputDir - The directory where the modules should be placed.
|
|
204
|
-
* @param {(string | { name: string; provider: string })[]} dependencies -
|
|
205
|
-
* List of dependencies to process. Can be:
|
|
206
|
-
* - A string (dependency is copied as is).
|
|
207
|
-
* - An object `{ name, provide }` where:
|
|
208
|
-
* - `name` (string): The module name.
|
|
209
|
-
* - `provider` (string): Where to retrieve the module bundle. Defaults to node_modules.
|
|
210
|
-
*
|
|
211
|
-
* @returns {Plugin} A Vite plugin that processes dependencies and injects an import map.
|
|
212
|
-
*/
|
|
213
|
-
export function generateImportMapPlugin(outputDir, dependencies) {
|
|
214
|
-
let buildModules = undefined;
|
|
215
|
-
let importMap = {};
|
|
216
|
-
return [
|
|
217
|
-
{
|
|
218
|
-
name: "vite-plugin-importmap",
|
|
219
|
-
enforce: "post",
|
|
220
|
-
// generates import map according to the base url
|
|
221
|
-
// and collects build method for each dependency
|
|
222
|
-
async configResolved(config) {
|
|
223
|
-
const result = await generateImportMap(outputDir, dependencies, config.base);
|
|
224
|
-
importMap = result.importMap;
|
|
225
|
-
buildModules = result.buildModules;
|
|
226
|
-
},
|
|
227
|
-
// builds modules when building the bundle
|
|
228
|
-
closeBundle() {
|
|
229
|
-
return buildModules?.();
|
|
230
|
-
},
|
|
231
|
-
// builds modules when starting the dev server
|
|
232
|
-
configureServer() {
|
|
233
|
-
return buildModules?.();
|
|
234
|
-
},
|
|
235
|
-
// adds importmap to the html
|
|
236
|
-
transformIndexHtml(html) {
|
|
237
|
-
const newHtml = addImportMapToHTML(importMap, html);
|
|
238
|
-
return newHtml || html;
|
|
239
|
-
},
|
|
240
|
-
},
|
|
241
|
-
];
|
|
242
|
-
}
|
|
243
|
-
//# sourceMappingURL=importmap.js.map
|