@equinor/fusion-framework-cli 10.7.4 → 11.0.0-next.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/CHANGELOG.md +44 -0
- package/README.md +144 -17
- package/bin/cli.mjs +4 -1
- package/dist/esm/bin/app-build.js +34 -0
- package/dist/esm/bin/app-build.js.map +1 -0
- package/dist/esm/bin/app-check.js +63 -0
- package/dist/esm/bin/app-check.js.map +1 -0
- package/dist/esm/bin/app-config-publish.js +89 -0
- package/dist/esm/bin/app-config-publish.js.map +1 -0
- package/dist/esm/bin/app-config.js +48 -0
- package/dist/esm/bin/app-config.js.map +1 -0
- package/dist/esm/bin/app-dev.js +92 -0
- package/dist/esm/bin/app-dev.js.map +1 -0
- package/dist/esm/bin/app-manifest.js +38 -0
- package/dist/esm/bin/app-manifest.js.map +1 -0
- package/dist/esm/bin/app-pack.js +51 -0
- package/dist/esm/bin/app-pack.js.map +1 -0
- package/dist/esm/bin/app-tag.js +89 -0
- package/dist/esm/bin/app-tag.js.map +1 -0
- package/dist/esm/bin/app-upload.js +109 -0
- package/dist/esm/bin/app-upload.js.map +1 -0
- package/dist/esm/bin/helpers/load-bundle-metadata.js +32 -0
- package/dist/esm/bin/helpers/load-bundle-metadata.js.map +1 -0
- package/dist/esm/bin/helpers/load-vite-config.js +55 -0
- package/dist/esm/bin/helpers/load-vite-config.js.map +1 -0
- package/dist/esm/bin/helpers/resolve-app-config.js +46 -0
- package/dist/esm/bin/helpers/resolve-app-config.js.map +1 -0
- package/dist/esm/bin/helpers/resolve-app-manifest.js +55 -0
- package/dist/esm/bin/helpers/resolve-app-manifest.js.map +1 -0
- package/dist/esm/bin/helpers/resolve-portal-manifest.js +55 -0
- package/dist/esm/bin/helpers/resolve-portal-manifest.js.map +1 -0
- package/dist/esm/bin/helpers/resolve-project-package.js +32 -0
- package/dist/esm/bin/helpers/resolve-project-package.js.map +1 -0
- package/dist/esm/bin/index.js +10 -0
- package/dist/esm/bin/index.js.map +1 -0
- package/dist/esm/bin/pack.js +70 -0
- package/dist/esm/bin/pack.js.map +1 -0
- package/dist/esm/bin/portal-build.js +40 -0
- package/dist/esm/bin/portal-build.js.map +1 -0
- package/dist/esm/bin/portal-dev.js +69 -0
- package/dist/esm/bin/portal-dev.js.map +1 -0
- package/dist/esm/bin/portal-manifest.js +38 -0
- package/dist/esm/bin/portal-manifest.js.map +1 -0
- package/dist/esm/bin/portal-pack.js +60 -0
- package/dist/esm/bin/portal-pack.js.map +1 -0
- package/dist/esm/bin/portal-tag.js +96 -0
- package/dist/esm/bin/portal-tag.js.map +1 -0
- package/dist/esm/bin/portal-upload.js +99 -0
- package/dist/esm/bin/portal-upload.js.map +1 -0
- package/dist/esm/bin/utils/ConsoleLogger.js +112 -0
- package/dist/esm/bin/utils/ConsoleLogger.js.map +1 -0
- package/dist/esm/bin/utils/create-dev-server.js +167 -0
- package/dist/esm/bin/utils/create-dev-server.js.map +1 -0
- package/dist/esm/bin/utils/format.js +47 -0
- package/dist/esm/bin/utils/format.js.map +1 -0
- package/dist/esm/bin/utils/index.js +5 -0
- package/dist/esm/bin/utils/index.js.map +1 -0
- package/dist/esm/bin/utils/spinner.js +142 -0
- package/dist/esm/bin/utils/spinner.js.map +1 -0
- package/dist/esm/cli/commands/app/alias.js +42 -0
- package/dist/esm/cli/commands/app/alias.js.map +1 -0
- package/dist/esm/cli/commands/app/build.js +46 -0
- package/dist/esm/cli/commands/app/build.js.map +1 -0
- package/dist/esm/cli/commands/app/check.js +47 -0
- package/dist/esm/cli/commands/app/check.js.map +1 -0
- package/dist/esm/cli/commands/app/config.js +91 -0
- package/dist/esm/cli/commands/app/config.js.map +1 -0
- package/dist/esm/cli/commands/app/dev.js +61 -0
- package/dist/esm/cli/commands/app/dev.js.map +1 -0
- package/dist/esm/cli/commands/app/index.js +25 -0
- package/dist/esm/cli/commands/app/index.js.map +1 -0
- package/dist/esm/cli/commands/app/manifest.js +73 -0
- package/dist/esm/cli/commands/app/manifest.js.map +1 -0
- package/dist/esm/cli/commands/app/pack.js +64 -0
- package/dist/esm/cli/commands/app/pack.js.map +1 -0
- package/dist/esm/cli/commands/app/publish.js +119 -0
- package/dist/esm/cli/commands/app/publish.js.map +1 -0
- package/dist/esm/cli/commands/app/tag.js +101 -0
- package/dist/esm/cli/commands/app/tag.js.map +1 -0
- package/dist/esm/cli/commands/app/upload.js +80 -0
- package/dist/esm/cli/commands/app/upload.js.map +1 -0
- package/dist/esm/cli/commands/auth/index.js +10 -0
- package/dist/esm/cli/commands/auth/index.js.map +1 -0
- package/dist/esm/cli/commands/auth/login.js +68 -0
- package/dist/esm/cli/commands/auth/login.js.map +1 -0
- package/dist/esm/cli/commands/auth/logout.js +55 -0
- package/dist/esm/cli/commands/auth/logout.js.map +1 -0
- package/dist/esm/cli/commands/auth/token.js +74 -0
- package/dist/esm/cli/commands/auth/token.js.map +1 -0
- package/dist/esm/cli/commands/disco/index.js +6 -0
- package/dist/esm/cli/commands/disco/index.js.map +1 -0
- package/dist/esm/cli/commands/disco/resolve.js +61 -0
- package/dist/esm/cli/commands/disco/resolve.js.map +1 -0
- package/dist/esm/cli/commands/index.js +11 -0
- package/dist/esm/cli/commands/index.js.map +1 -0
- package/dist/esm/cli/commands/portal/build.js +22 -0
- package/dist/esm/cli/commands/portal/build.js.map +1 -0
- package/dist/esm/cli/commands/portal/dev.js +24 -0
- package/dist/esm/cli/commands/portal/dev.js.map +1 -0
- package/dist/esm/cli/commands/portal/index.js +21 -0
- package/dist/esm/cli/commands/portal/index.js.map +1 -0
- package/dist/esm/cli/commands/portal/manifest.js +45 -0
- package/dist/esm/cli/commands/portal/manifest.js.map +1 -0
- package/dist/esm/cli/commands/portal/pack.js +35 -0
- package/dist/esm/cli/commands/portal/pack.js.map +1 -0
- package/dist/esm/cli/commands/portal/publish.js +73 -0
- package/dist/esm/cli/commands/portal/publish.js.map +1 -0
- package/dist/esm/cli/commands/portal/schema.js +68 -0
- package/dist/esm/cli/commands/portal/schema.js.map +1 -0
- package/dist/esm/cli/commands/portal/tag.js +69 -0
- package/dist/esm/cli/commands/portal/tag.js.map +1 -0
- package/dist/esm/cli/commands/portal/upload.js +40 -0
- package/dist/esm/cli/commands/portal/upload.js.map +1 -0
- package/dist/esm/cli/main.js +52 -0
- package/dist/esm/cli/main.js.map +1 -0
- package/dist/esm/cli/options/auth.js +96 -0
- package/dist/esm/cli/options/auth.js.map +1 -0
- package/dist/esm/cli/options/env.js +30 -0
- package/dist/esm/cli/options/env.js.map +1 -0
- package/dist/esm/lib/app/app-config.js +12 -0
- package/dist/esm/lib/app/app-config.js.map +1 -0
- package/dist/esm/lib/app/app-manifest.js +15 -0
- package/dist/esm/lib/app/app-manifest.js.map +1 -0
- package/dist/{lib → esm/lib/app}/app-package.js +30 -10
- package/dist/esm/lib/app/app-package.js.map +1 -0
- package/dist/esm/lib/app/create-app-manifest.js +72 -0
- package/dist/esm/lib/app/create-app-manifest.js.map +1 -0
- package/dist/esm/lib/app/index.js +9 -0
- package/dist/esm/lib/app/index.js.map +1 -0
- package/dist/esm/lib/app/load-app-config.js +47 -0
- package/dist/esm/lib/app/load-app-config.js.map +1 -0
- package/dist/esm/lib/app/load-app-manifest.js +61 -0
- package/dist/esm/lib/app/load-app-manifest.js.map +1 -0
- package/dist/esm/lib/app/merge-app-config.js +21 -0
- package/dist/esm/lib/app/merge-app-config.js.map +1 -0
- package/dist/esm/lib/app/merge-app-manifest.js +31 -0
- package/dist/esm/lib/app/merge-app-manifest.js.map +1 -0
- package/dist/esm/lib/app/schemas.js +28 -0
- package/dist/esm/lib/app/schemas.js.map +1 -0
- package/dist/esm/lib/dev-server.js +3 -0
- package/dist/esm/lib/dev-server.js.map +1 -0
- package/dist/esm/lib/framework.node.js +104 -0
- package/dist/esm/lib/framework.node.js.map +1 -0
- package/dist/esm/lib/index.js +5 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/legacy.js +38 -0
- package/dist/esm/lib/legacy.js.map +1 -0
- package/dist/esm/lib/load-dev-server-config.js +43 -0
- package/dist/esm/lib/load-dev-server-config.js.map +1 -0
- package/dist/esm/lib/merge-dev-server-config.js +37 -0
- package/dist/esm/lib/merge-dev-server-config.js.map +1 -0
- package/dist/esm/lib/portal/create-portal-manifest.js +93 -0
- package/dist/esm/lib/portal/create-portal-manifest.js.map +1 -0
- package/dist/esm/lib/portal/index.js +3 -0
- package/dist/esm/lib/portal/index.js.map +1 -0
- package/dist/esm/lib/portal/load-portal-manifest.js +54 -0
- package/dist/esm/lib/portal/load-portal-manifest.js.map +1 -0
- package/dist/esm/lib/portal/load-portal-schema.js +49 -0
- package/dist/esm/lib/portal/load-portal-schema.js.map +1 -0
- package/dist/esm/lib/portal/portal-manifest.js +21 -0
- package/dist/esm/lib/portal/portal-manifest.js.map +1 -0
- package/dist/esm/lib/portal/portal-manifest.schema.js +134 -0
- package/dist/esm/lib/portal/portal-manifest.schema.js.map +1 -0
- package/dist/esm/lib/static.js +20 -0
- package/dist/esm/lib/static.js.map +1 -0
- package/dist/{lib/utils → esm/lib}/types.js.map +1 -1
- package/dist/esm/lib/utils/assert.js +87 -0
- package/dist/esm/lib/utils/assert.js.map +1 -0
- package/dist/esm/lib/utils/expect.js.map +1 -0
- package/dist/{lib/plugins/app-assets/extension-filter-pattern.js → esm/lib/utils/extension-filter.js} +1 -1
- package/dist/esm/lib/utils/extension-filter.js.map +1 -0
- package/dist/esm/lib/utils/file-exists.js.map +1 -0
- package/dist/esm/lib/utils/index.js +6 -0
- package/dist/esm/lib/utils/index.js.map +1 -0
- package/dist/{lib → esm/lib}/utils/parse-json-request.js +3 -1
- package/dist/esm/lib/utils/parse-json-request.js.map +1 -0
- package/dist/esm/lib/utils/resolve-annotations.js +28 -0
- package/dist/esm/lib/utils/resolve-annotations.js.map +1 -0
- package/dist/esm/lib/utils/resolve-devops-annotations.js +59 -0
- package/dist/esm/lib/utils/resolve-devops-annotations.js.map +1 -0
- package/dist/esm/lib/utils/resolve-git-commit-sha.js +23 -0
- package/dist/esm/lib/utils/resolve-git-commit-sha.js.map +1 -0
- package/dist/esm/lib/utils/resolve-git-remote-url.js +24 -0
- package/dist/esm/lib/utils/resolve-git-remote-url.js.map +1 -0
- package/dist/esm/lib/utils/resolve-github-annotations.js +127 -0
- package/dist/esm/lib/utils/resolve-github-annotations.js.map +1 -0
- package/dist/esm/lib/utils/resolve-package-repo.js +14 -0
- package/dist/esm/lib/utils/resolve-package-repo.js.map +1 -0
- package/dist/esm/lib/utils/resolve-package.js +18 -0
- package/dist/esm/lib/utils/resolve-package.js.map +1 -0
- package/dist/esm/lib/utils/resolve-source-entry-point.js +39 -0
- package/dist/esm/lib/utils/resolve-source-entry-point.js.map +1 -0
- package/dist/esm/lib/utils/types.js.map +1 -0
- package/dist/esm/lib/utils/write-file.js +25 -0
- package/dist/esm/lib/utils/write-file.js.map +1 -0
- package/dist/esm/version.js +3 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/bin/app-build.d.ts +52 -0
- package/dist/types/bin/app-check.d.ts +31 -0
- package/dist/types/bin/app-config-publish.d.ts +23 -0
- package/dist/types/bin/app-config.d.ts +52 -0
- package/dist/types/bin/app-dev.d.ts +45 -0
- package/dist/types/bin/app-manifest.d.ts +42 -0
- package/dist/types/bin/app-pack.d.ts +38 -0
- package/dist/types/bin/app-tag.d.ts +51 -0
- package/dist/types/bin/app-upload.d.ts +40 -0
- package/dist/types/bin/helpers/load-bundle-metadata.d.ts +15 -0
- package/dist/types/bin/helpers/load-vite-config.d.ts +12 -0
- package/dist/types/bin/helpers/resolve-app-config.d.ts +18 -0
- package/dist/types/bin/helpers/resolve-app-manifest.d.ts +17 -0
- package/dist/types/bin/helpers/resolve-portal-manifest.d.ts +27 -0
- package/dist/types/bin/helpers/resolve-project-package.d.ts +13 -0
- package/dist/types/bin/index.d.ts +9 -0
- package/dist/types/bin/pack.d.ts +36 -0
- package/dist/types/bin/portal-build.d.ts +54 -0
- package/dist/types/bin/portal-dev.d.ts +37 -0
- package/dist/types/bin/portal-manifest.d.ts +60 -0
- package/dist/types/bin/portal-pack.d.ts +54 -0
- package/dist/types/bin/portal-tag.d.ts +51 -0
- package/dist/types/bin/portal-upload.d.ts +37 -0
- package/dist/types/bin/utils/ConsoleLogger.d.ts +84 -0
- package/dist/types/bin/utils/create-dev-server.d.ts +49 -0
- package/dist/types/bin/utils/format.d.ts +27 -0
- package/dist/types/bin/utils/index.d.ts +3 -13
- package/dist/types/bin/utils/spinner.d.ts +75 -0
- package/dist/types/cli/commands/app/alias.d.ts +6 -0
- package/dist/types/cli/commands/app/build.d.ts +27 -0
- package/dist/types/cli/commands/app/check.d.ts +26 -0
- package/dist/types/cli/commands/app/config.d.ts +34 -0
- package/dist/types/cli/commands/app/dev.d.ts +29 -0
- package/dist/types/cli/commands/app/index.d.ts +3 -0
- package/dist/types/cli/commands/app/manifest.d.ts +30 -0
- package/dist/types/cli/commands/app/pack.d.ts +31 -0
- package/dist/types/cli/commands/app/publish.d.ts +31 -0
- package/dist/types/cli/commands/app/tag.d.ts +33 -0
- package/dist/types/cli/commands/app/upload.d.ts +29 -0
- package/dist/types/cli/commands/auth/index.d.ts +3 -0
- package/dist/types/cli/commands/auth/login.d.ts +2 -0
- package/dist/types/cli/commands/auth/logout.d.ts +12 -0
- package/dist/types/cli/commands/auth/token.d.ts +13 -0
- package/dist/types/cli/commands/disco/index.d.ts +2 -0
- package/dist/types/cli/commands/disco/resolve.d.ts +25 -0
- package/dist/types/cli/commands/portal/build.d.ts +2 -0
- package/dist/types/cli/commands/portal/dev.d.ts +2 -0
- package/dist/types/cli/commands/portal/index.d.ts +2 -0
- package/dist/types/cli/commands/portal/manifest.d.ts +2 -0
- package/dist/types/cli/commands/portal/pack.d.ts +2 -0
- package/dist/types/cli/commands/portal/publish.d.ts +2 -0
- package/dist/types/cli/commands/portal/schema.d.ts +2 -0
- package/dist/types/cli/commands/portal/tag.d.ts +2 -0
- package/dist/types/cli/commands/portal/upload.d.ts +2 -0
- package/dist/types/cli/main.d.ts +21 -0
- package/dist/types/cli/options/auth.d.ts +37 -0
- package/dist/types/cli/options/env.d.ts +19 -0
- package/dist/types/lib/app/app-config.d.ts +31 -0
- package/dist/types/lib/app/app-manifest.d.ts +39 -0
- package/dist/types/lib/{app-package.d.ts → app/app-package.d.ts} +27 -10
- package/dist/types/lib/app/create-app-manifest.d.ts +17 -0
- package/dist/types/lib/app/index.d.ts +8 -0
- package/dist/types/lib/app/load-app-config.d.ts +54 -0
- package/dist/types/lib/app/load-app-manifest.d.ts +57 -0
- package/dist/types/lib/app/merge-app-config.d.ts +13 -0
- package/dist/types/lib/app/merge-app-manifest.d.ts +25 -0
- package/dist/types/{schemas.d.ts → lib/app/schemas.d.ts} +10 -1
- package/dist/types/lib/dev-server.d.ts +2 -0
- package/dist/types/lib/framework.node.d.ts +77 -0
- package/dist/types/lib/index.d.ts +4 -3
- package/dist/types/lib/legacy.d.ts +24 -0
- package/dist/types/lib/load-dev-server-config.d.ts +40 -0
- package/dist/types/lib/merge-dev-server-config.d.ts +16 -0
- package/dist/types/lib/portal/create-portal-manifest.d.ts +22 -0
- package/dist/types/lib/portal/index.d.ts +2 -0
- package/dist/types/lib/portal/load-portal-manifest.d.ts +65 -0
- package/dist/types/lib/portal/load-portal-schema.d.ts +43 -0
- package/dist/types/lib/portal/portal-manifest.d.ts +16 -0
- package/dist/types/lib/portal/portal-manifest.schema.d.ts +154 -0
- package/dist/types/lib/static.d.ts +10 -0
- package/dist/types/lib/types.d.ts +34 -0
- package/dist/types/lib/utils/assert.d.ts +48 -0
- package/dist/types/lib/utils/index.d.ts +5 -0
- package/dist/types/lib/utils/resolve-annotations.d.ts +11 -0
- package/dist/types/lib/utils/resolve-devops-annotations.d.ts +30 -0
- package/dist/types/lib/utils/resolve-git-commit-sha.d.ts +13 -0
- package/dist/types/lib/utils/resolve-git-remote-url.d.ts +13 -0
- package/dist/types/lib/utils/resolve-github-annotations.d.ts +65 -0
- package/dist/types/lib/utils/resolve-package-repo.d.ts +9 -0
- package/dist/types/lib/utils/resolve-package.d.ts +15 -0
- package/dist/types/lib/utils/resolve-source-entry-point.d.ts +17 -0
- package/dist/types/lib/utils/types.d.ts +1 -1
- package/dist/types/lib/utils/write-file.d.ts +14 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +47 -68
- package/dist/bin/build-application.js +0 -55
- package/dist/bin/build-application.js.map +0 -1
- package/dist/bin/bundle-application.js +0 -41
- package/dist/bin/bundle-application.js.map +0 -1
- package/dist/bin/create-dev-serve.js +0 -127
- package/dist/bin/create-dev-serve.js.map +0 -1
- package/dist/bin/create-export-config.js +0 -40
- package/dist/bin/create-export-config.js.map +0 -1
- package/dist/bin/create-export-manifest.js +0 -67
- package/dist/bin/create-export-manifest.js.map +0 -1
- package/dist/bin/dev-portal/AppLoader.js +0 -80
- package/dist/bin/dev-portal/AppLoader.js.map +0 -1
- package/dist/bin/dev-portal/BookMarkSideSheet.js +0 -13
- package/dist/bin/dev-portal/BookMarkSideSheet.js.map +0 -1
- package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +0 -40
- package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +0 -1
- package/dist/bin/dev-portal/ContextSelector/index.js +0 -2
- package/dist/bin/dev-portal/ContextSelector/index.js.map +0 -1
- package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +0 -216
- package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +0 -1
- package/dist/bin/dev-portal/EquinorLoader.js +0 -14
- package/dist/bin/dev-portal/EquinorLoader.js.map +0 -1
- package/dist/bin/dev-portal/ErrorViewer.js +0 -7
- package/dist/bin/dev-portal/ErrorViewer.js.map +0 -1
- package/dist/bin/dev-portal/FusionLogo.js +0 -4
- package/dist/bin/dev-portal/FusionLogo.js.map +0 -1
- package/dist/bin/dev-portal/Header.Actions.js +0 -12
- package/dist/bin/dev-portal/Header.Actions.js.map +0 -1
- package/dist/bin/dev-portal/Header.js +0 -41
- package/dist/bin/dev-portal/Header.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/index.js +0 -32
- package/dist/bin/dev-portal/PersonSideSheet/index.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +0 -16
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +0 -15
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +0 -13
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +0 -19
- package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js +0 -30
- package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js +0 -3
- package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js.map +0 -1
- package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js.map +0 -1
- package/dist/bin/dev-portal/Router.js +0 -59
- package/dist/bin/dev-portal/Router.js.map +0 -1
- package/dist/bin/dev-portal/config.js +0 -79
- package/dist/bin/dev-portal/config.js.map +0 -1
- package/dist/bin/dev-portal/main.js +0 -13
- package/dist/bin/dev-portal/main.js.map +0 -1
- package/dist/bin/dev-portal/resources/fallback-photo.svg.js +0 -3
- package/dist/bin/dev-portal/resources/fallback-photo.svg.js.map +0 -1
- package/dist/bin/dev-portal/useAppContextNavigation.js +0 -87
- package/dist/bin/dev-portal/useAppContextNavigation.js.map +0 -1
- package/dist/bin/main.app.js +0 -172
- package/dist/bin/main.app.js.map +0 -1
- package/dist/bin/main.js +0 -20
- package/dist/bin/main.js.map +0 -1
- package/dist/bin/public/assets/index-Cyqq53lr.js +0 -3686
- package/dist/bin/public/index.html +0 -37
- package/dist/bin/publish-application.js +0 -96
- package/dist/bin/publish-application.js.map +0 -1
- package/dist/bin/tag-application.js +0 -73
- package/dist/bin/tag-application.js.map +0 -1
- package/dist/bin/upload-application.js +0 -63
- package/dist/bin/upload-application.js.map +0 -1
- package/dist/bin/upload-export-config.js +0 -78
- package/dist/bin/upload-export-config.js.map +0 -1
- package/dist/bin/utils/execute-command.js +0 -14
- package/dist/bin/utils/execute-command.js.map +0 -1
- package/dist/bin/utils/format.js +0 -16
- package/dist/bin/utils/format.js.map +0 -1
- package/dist/bin/utils/getEndpointUrl.js +0 -40
- package/dist/bin/utils/getEndpointUrl.js.map +0 -1
- package/dist/bin/utils/index.js +0 -14
- package/dist/bin/utils/index.js.map +0 -1
- package/dist/bin/utils/isAppRegistered.js +0 -26
- package/dist/bin/utils/isAppRegistered.js.map +0 -1
- package/dist/bin/utils/load-app-config.js +0 -26
- package/dist/bin/utils/load-app-config.js.map +0 -1
- package/dist/bin/utils/load-manifest.js +0 -31
- package/dist/bin/utils/load-manifest.js.map +0 -1
- package/dist/bin/utils/load-package.js +0 -18
- package/dist/bin/utils/load-package.js.map +0 -1
- package/dist/bin/utils/load-vite-config.js +0 -45
- package/dist/bin/utils/load-vite-config.js.map +0 -1
- package/dist/bin/utils/proxy-request-logger.js +0 -33
- package/dist/bin/utils/proxy-request-logger.js.map +0 -1
- package/dist/bin/utils/publishAppConfig.js +0 -29
- package/dist/bin/utils/publishAppConfig.js.map +0 -1
- package/dist/bin/utils/requireToken.js +0 -9
- package/dist/bin/utils/requireToken.js.map +0 -1
- package/dist/bin/utils/spinner.js +0 -65
- package/dist/bin/utils/spinner.js.map +0 -1
- package/dist/bin/utils/tagAppBundle.js +0 -26
- package/dist/bin/utils/tagAppBundle.js.map +0 -1
- package/dist/bin/utils/uploadAppBundle.js +0 -45
- package/dist/bin/utils/uploadAppBundle.js.map +0 -1
- package/dist/lib/app-config.js +0 -32
- package/dist/lib/app-config.js.map +0 -1
- package/dist/lib/app-manifest.js +0 -142
- package/dist/lib/app-manifest.js.map +0 -1
- package/dist/lib/app-package.js.map +0 -1
- package/dist/lib/index.js +0 -4
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/plugins/app-assets/app-asset-plugin.js +0 -96
- package/dist/lib/plugins/app-assets/app-asset-plugin.js.map +0 -1
- package/dist/lib/plugins/app-assets/emit-asset.js +0 -46
- package/dist/lib/plugins/app-assets/emit-asset.js.map +0 -1
- package/dist/lib/plugins/app-assets/extension-filter-pattern.js.map +0 -1
- package/dist/lib/plugins/app-assets/index.js +0 -4
- package/dist/lib/plugins/app-assets/index.js.map +0 -1
- package/dist/lib/plugins/app-assets/read-asset-content.js +0 -34
- package/dist/lib/plugins/app-assets/read-asset-content.js.map +0 -1
- package/dist/lib/plugins/app-assets/resolve-asset-id.js +0 -54
- package/dist/lib/plugins/app-assets/resolve-asset-id.js.map +0 -1
- package/dist/lib/plugins/app-assets/static.js +0 -15
- package/dist/lib/plugins/app-assets/static.js.map +0 -1
- package/dist/lib/plugins/app-proxy/app-proxy-plugin.js +0 -125
- package/dist/lib/plugins/app-proxy/app-proxy-plugin.js.map +0 -1
- package/dist/lib/plugins/app-proxy/index.js +0 -2
- package/dist/lib/plugins/app-proxy/index.js.map +0 -1
- package/dist/lib/plugins/app-settings/index.js +0 -36
- package/dist/lib/plugins/app-settings/index.js.map +0 -1
- package/dist/lib/plugins/external-public/external-public-plugin.js +0 -101
- package/dist/lib/plugins/external-public/external-public-plugin.js.map +0 -1
- package/dist/lib/plugins/external-public/index.js +0 -2
- package/dist/lib/plugins/external-public/index.js.map +0 -1
- package/dist/lib/plugins/help-proxy/help-proxy-plugin.js +0 -78
- package/dist/lib/plugins/help-proxy/help-proxy-plugin.js.map +0 -1
- package/dist/lib/plugins/help-proxy/index.js +0 -2
- package/dist/lib/plugins/help-proxy/index.js.map +0 -1
- package/dist/lib/utils/assert.js +0 -28
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/config.js +0 -67
- package/dist/lib/utils/config.js.map +0 -1
- package/dist/lib/utils/expect.js.map +0 -1
- package/dist/lib/utils/file-exists.js.map +0 -1
- package/dist/lib/utils/parse-json-request.js.map +0 -1
- package/dist/lib/utils/ts-transpile.js +0 -45
- package/dist/lib/utils/ts-transpile.js.map +0 -1
- package/dist/lib/vite-config.js +0 -76
- package/dist/lib/vite-config.js.map +0 -1
- package/dist/lib/vite-logger.js +0 -21
- package/dist/lib/vite-logger.js.map +0 -1
- package/dist/schemas.js +0 -14
- package/dist/schemas.js.map +0 -1
- package/dist/types/bin/build-application.d.ts +0 -13
- package/dist/types/bin/bundle-application.d.ts +0 -4
- package/dist/types/bin/create-dev-serve.d.ts +0 -12
- package/dist/types/bin/create-export-config.d.ts +0 -13
- package/dist/types/bin/create-export-manifest.d.ts +0 -16
- package/dist/types/bin/dev-portal/AppLoader.d.ts +0 -11
- package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +0 -6
- package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +0 -8
- package/dist/types/bin/dev-portal/ContextSelector/index.d.ts +0 -1
- package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +0 -15
- package/dist/types/bin/dev-portal/EquinorLoader.d.ts +0 -5
- package/dist/types/bin/dev-portal/ErrorViewer.d.ts +0 -4
- package/dist/types/bin/dev-portal/FusionLogo.d.ts +0 -6
- package/dist/types/bin/dev-portal/Header.Actions.d.ts +0 -7
- package/dist/types/bin/dev-portal/Header.d.ts +0 -2
- package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +0 -11
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +0 -6
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +0 -5
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +0 -5
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +0 -5
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +0 -6
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/index.d.ts +0 -2
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/types.d.ts +0 -5
- package/dist/types/bin/dev-portal/Router.d.ts +0 -1
- package/dist/types/bin/dev-portal/config.d.ts +0 -3
- package/dist/types/bin/dev-portal/main.d.ts +0 -1
- package/dist/types/bin/dev-portal/resources/fallback-photo.svg.d.ts +0 -2
- package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +0 -5
- package/dist/types/bin/main.d.ts +0 -1
- package/dist/types/bin/publish-application.d.ts +0 -6
- package/dist/types/bin/tag-application.d.ts +0 -12
- package/dist/types/bin/upload-application.d.ts +0 -6
- package/dist/types/bin/upload-export-config.d.ts +0 -10
- package/dist/types/bin/utils/execute-command.d.ts +0 -8
- package/dist/types/bin/utils/getEndpointUrl.d.ts +0 -10
- package/dist/types/bin/utils/isAppRegistered.d.ts +0 -5
- package/dist/types/bin/utils/load-app-config.d.ts +0 -10
- package/dist/types/bin/utils/load-manifest.d.ts +0 -10
- package/dist/types/bin/utils/load-package.d.ts +0 -5
- package/dist/types/bin/utils/load-vite-config.d.ts +0 -10
- package/dist/types/bin/utils/proxy-request-logger.d.ts +0 -15
- package/dist/types/bin/utils/publishAppConfig.d.ts +0 -9
- package/dist/types/bin/utils/requireToken.d.ts +0 -4
- package/dist/types/bin/utils/tagAppBundle.d.ts +0 -7
- package/dist/types/bin/utils/uploadAppBundle.d.ts +0 -7
- package/dist/types/lib/app-config.d.ts +0 -27
- package/dist/types/lib/app-manifest.d.ts +0 -52
- package/dist/types/lib/plugins/app-assets/app-asset-plugin.d.ts +0 -36
- package/dist/types/lib/plugins/app-assets/emit-asset.d.ts +0 -18
- package/dist/types/lib/plugins/app-assets/index.d.ts +0 -3
- package/dist/types/lib/plugins/app-assets/read-asset-content.d.ts +0 -14
- package/dist/types/lib/plugins/app-assets/resolve-asset-id.d.ts +0 -16
- package/dist/types/lib/plugins/app-assets/static.d.ts +0 -5
- package/dist/types/lib/plugins/app-proxy/app-proxy-plugin.d.ts +0 -89
- package/dist/types/lib/plugins/app-proxy/index.d.ts +0 -1
- package/dist/types/lib/plugins/app-settings/index.d.ts +0 -32
- package/dist/types/lib/plugins/external-public/external-public-plugin.d.ts +0 -30
- package/dist/types/lib/plugins/external-public/index.d.ts +0 -1
- package/dist/types/lib/plugins/help-proxy/help-proxy-plugin.d.ts +0 -42
- package/dist/types/lib/plugins/help-proxy/index.d.ts +0 -1
- package/dist/types/lib/utils/config.d.ts +0 -32
- package/dist/types/lib/utils/ts-transpile.d.ts +0 -2
- package/dist/types/lib/vite-config.d.ts +0 -17
- package/dist/types/lib/vite-logger.d.ts +0 -2
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
- /package/dist/{bin/dev-portal/PersonSideSheet/sheets → esm/lib}/types.js +0 -0
- /package/dist/{lib → esm/lib}/utils/expect.js +0 -0
- /package/dist/{lib → esm/lib}/utils/file-exists.js +0 -0
- /package/dist/{lib → esm/lib}/utils/types.js +0 -0
- /package/dist/types/{bin/main.app.d.ts → cli/commands/index.d.ts} +0 -0
- /package/dist/types/lib/{plugins/app-assets/extension-filter-pattern.d.ts → utils/extension-filter.d.ts} +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import AdmZip from 'adm-zip';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { mkdir, stat } from 'node:fs/promises';
|
|
4
|
+
import { formatByteSize, formatPath, chalk } from './utils';
|
|
5
|
+
import { fileExistsSync } from '../lib/utils';
|
|
6
|
+
/* Files to add to zip package */
|
|
7
|
+
const addFiles = ['package.json', 'LICENSE.md', 'README.md', 'CHANGELOG.md'];
|
|
8
|
+
/**
|
|
9
|
+
* Packages an application build directory and additional files into a zip archive.
|
|
10
|
+
*
|
|
11
|
+
* This function validates the build directory, adds build output and standard files (e.g., package.json, README.md),
|
|
12
|
+
* and optionally writes the archive to disk. It supports adding extra content and provides detailed logging.
|
|
13
|
+
*
|
|
14
|
+
* @param pkg - The resolved package info from package.json.
|
|
15
|
+
* @param options - Packaging options including build directory, archive path, logger, and extra content.
|
|
16
|
+
* @returns The AdmZip instance representing the created archive.
|
|
17
|
+
* @throws If the build directory does not exist or writing the archive fails.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export const pack = async (pkg, options) => {
|
|
21
|
+
const { archive, log } = options ?? {};
|
|
22
|
+
// Resolve the path to the package root and build directory
|
|
23
|
+
const pkgPath = dirname(pkg.path);
|
|
24
|
+
const buildDir = options?.buildDir ?? 'dist';
|
|
25
|
+
const buildDirPath = resolve(pkgPath, buildDir);
|
|
26
|
+
// Ensure the build directory exists and is a directory
|
|
27
|
+
if (!(await stat(buildDirPath)).isDirectory()) {
|
|
28
|
+
throw new Error(`Build directory ${buildDir} does not exist`);
|
|
29
|
+
}
|
|
30
|
+
log?.log(chalk.bold('Starting to pack bundle'));
|
|
31
|
+
// Create a new zip archive
|
|
32
|
+
const bundle = new AdmZip();
|
|
33
|
+
// Add the build directory to the archive under its own folder
|
|
34
|
+
bundle.addLocalFolder(buildDirPath, buildDir);
|
|
35
|
+
// Add any additional content provided in options
|
|
36
|
+
if (options?.content) {
|
|
37
|
+
for (const [name, data] of Object.entries(options.content)) {
|
|
38
|
+
bundle.addFile(name, Buffer.from(data));
|
|
39
|
+
log?.info('📄', formatPath(name, { relative: true }));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
log?.info('📂', formatPath(buildDirPath, { relative: true }));
|
|
43
|
+
// Add standard files and any files listed in package.json 'files' array
|
|
44
|
+
for (const file of addFiles.concat(pkg.packageJson.files ?? [])) {
|
|
45
|
+
const filePath = resolve(pkgPath, file);
|
|
46
|
+
const fileDir = dirname(filePath.replace(pkgPath, ''));
|
|
47
|
+
if (fileExistsSync(filePath)) {
|
|
48
|
+
bundle.addLocalFile(filePath, fileDir);
|
|
49
|
+
log?.info('📄', formatPath(filePath, { relative: true }));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
log?.warn(chalk.dim('📄', formatPath(filePath, { relative: true })));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// If an archive path is provided, write the zip file to disk
|
|
56
|
+
if (archive) {
|
|
57
|
+
// Ensure the output directory exists
|
|
58
|
+
if (!fileExistsSync(dirname(archive))) {
|
|
59
|
+
await mkdir(dirname(archive), { recursive: true });
|
|
60
|
+
}
|
|
61
|
+
log?.start('compressing content');
|
|
62
|
+
await bundle.writeZipPromise(archive);
|
|
63
|
+
log?.succeed('📚', formatPath(archive, { relative: true }), formatByteSize(archive));
|
|
64
|
+
}
|
|
65
|
+
// Return the AdmZip instance for further use or testing
|
|
66
|
+
return bundle;
|
|
67
|
+
};
|
|
68
|
+
// Export as default for compatibility with import patterns
|
|
69
|
+
export default pack;
|
|
70
|
+
//# sourceMappingURL=pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../../src/bin/pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { build as viteBuild } from 'vite';
|
|
2
|
+
import { chalk } from './utils';
|
|
3
|
+
import { loadViteConfig } from './helpers/load-vite-config.js';
|
|
4
|
+
import { loadPortalManifest } from './portal-manifest.js';
|
|
5
|
+
/**
|
|
6
|
+
* Builds a portal application using Vite.
|
|
7
|
+
*
|
|
8
|
+
* This function loads the portal manifest, applies Vite configuration, and runs the Vite build process.
|
|
9
|
+
* It provides detailed logging for each step and returns the package info, manifest, and output directory.
|
|
10
|
+
*
|
|
11
|
+
* @param opt - Build options including environment, manifest path, and logger.
|
|
12
|
+
* @returns An object containing the package info, manifest, and output directory.
|
|
13
|
+
* @throws If the build process fails or configuration is invalid.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const buildPortal = async (opt) => {
|
|
17
|
+
const { log } = opt ?? {};
|
|
18
|
+
// Log the start of the portal build process
|
|
19
|
+
log?.log(chalk.bold('Starting to build portal'));
|
|
20
|
+
// Load the portal manifest, package info, and environment variables
|
|
21
|
+
const { manifest, pkg, env } = await loadPortalManifest({ log, manifest: opt?.manifest });
|
|
22
|
+
log?.start('loading vite config...');
|
|
23
|
+
// Load local Vite configuration for the build
|
|
24
|
+
const viteConfig = await loadViteConfig(env, pkg);
|
|
25
|
+
log?.succeed('vite config applied');
|
|
26
|
+
log?.debug('vite config:', viteConfig);
|
|
27
|
+
log?.start('🤞🏻', 'building portal...');
|
|
28
|
+
// Capture native console output during the build
|
|
29
|
+
log?.startNativeConsoleCapture();
|
|
30
|
+
await viteBuild(viteConfig);
|
|
31
|
+
log?.stopNativeConsoleCapture();
|
|
32
|
+
log?.succeed('build completed 😘');
|
|
33
|
+
// Output directory for the built portal
|
|
34
|
+
const outDir = viteConfig.build.outDir;
|
|
35
|
+
// Return the package info, manifest, and output directory for further use
|
|
36
|
+
return { pkg, manifest, outDir };
|
|
37
|
+
};
|
|
38
|
+
// Export as default for compatibility with import patterns
|
|
39
|
+
export default buildPortal;
|
|
40
|
+
//# sourceMappingURL=portal-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-build.js","sourceRoot":"","sources":["../../../src/bin/portal-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,EAAsB,KAAK,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAoB1D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC;IAE1B,4CAA4C;IAC5C,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEjD,oEAAoE;IACpE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1F,GAAG,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrC,8CAA8C;IAC9C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,GAAG,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAEvC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzC,iDAAiD;IACjD,GAAG,EAAE,yBAAyB,EAAE,CAAC;IACjC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5B,GAAG,EAAE,wBAAwB,EAAE,CAAC;IAChC,GAAG,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnC,wCAAwC;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;IAEvC,0EAA0E;IAC1E,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,2DAA2D;AAC3D,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { createDevServer } from './utils';
|
|
3
|
+
import { resolveProjectPackage } from './helpers/resolve-project-package.js';
|
|
4
|
+
/**
|
|
5
|
+
* Starts the portal development server for local development and testing.
|
|
6
|
+
*
|
|
7
|
+
* This function sets up the runtime environment, resolves the portal manifest and config,
|
|
8
|
+
* and launches a development server using the resolved configuration. It provides detailed
|
|
9
|
+
* logging for each step and returns the dev server instance for further use.
|
|
10
|
+
*
|
|
11
|
+
* @param options - Settings for environment, manifest path, config path, logger, and server options.
|
|
12
|
+
* @returns The dev server instance after it has started.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export const startPortalDevServer = async (options) => {
|
|
16
|
+
const { log } = options ?? {};
|
|
17
|
+
// The portalId is currently hardcoded, but could be made configurable in the future
|
|
18
|
+
const portalId = '@equinor/fusion-framework-dev-portal';
|
|
19
|
+
// Resolve the application's package.json for root and metadata
|
|
20
|
+
const pkg = await resolveProjectPackage(log);
|
|
21
|
+
// Setup the runtime environment for the dev server
|
|
22
|
+
const env = {
|
|
23
|
+
root: pkg.root,
|
|
24
|
+
environment: 'local', // Always use 'local' for dev server
|
|
25
|
+
...options?.env, // Allow overrides from options
|
|
26
|
+
mode: 'development', // Force development mode
|
|
27
|
+
command: 'serve', // Command is always 'serve' for dev
|
|
28
|
+
};
|
|
29
|
+
// @todo - replace with resolvePortalManifest
|
|
30
|
+
// Dummy implementation for resolving the portal manifest
|
|
31
|
+
const resolvePortalManifest = async (...args) => {
|
|
32
|
+
// Returns a dummy manifest for development; replace with real logic as needed
|
|
33
|
+
return {
|
|
34
|
+
id: 'dev-portal-dummy',
|
|
35
|
+
build: {
|
|
36
|
+
entrypoint: resolve(env.root || '', 'src/index.ts'),
|
|
37
|
+
// if this is portal - portal-template-manifest
|
|
38
|
+
template: {},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const portalManifest = await resolvePortalManifest();
|
|
43
|
+
// Dummy implementation for resolving the portal config
|
|
44
|
+
const resolvePortalConfig = async (...args) => ({ foo: 'bar' });
|
|
45
|
+
// Resolve the portal config (replace with real logic as needed)
|
|
46
|
+
const portalConfig = await resolvePortalConfig(env, { log, config: options?.config });
|
|
47
|
+
log?.start('Starting app development server...');
|
|
48
|
+
// Create the dev server configuration, including portal and server settings
|
|
49
|
+
const devServer = await createDevServer(env, {
|
|
50
|
+
template: {
|
|
51
|
+
portal: {
|
|
52
|
+
id: portalManifest.id,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
portal: {
|
|
56
|
+
manifest: portalManifest,
|
|
57
|
+
config: portalConfig,
|
|
58
|
+
},
|
|
59
|
+
server: {
|
|
60
|
+
port: options?.server?.port,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
await devServer.listen();
|
|
64
|
+
// Log the resolved local URL for the dev server
|
|
65
|
+
log?.succeed(`Started app development server on ${devServer.resolvedUrls?.local?.[0]}`);
|
|
66
|
+
// Return the dev server instance for further use
|
|
67
|
+
return devServer;
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=portal-dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-dev.js","sourceRoot":"","sources":["../../../src/bin/portal-dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAsB,MAAM,SAAS,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAuB1C,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE9B,oFAAoF;IACpF,MAAM,QAAQ,GAAG,sCAAsC,CAAC;IAExD,+DAA+D;IAC/D,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE7C,mDAAmD;IACnD,MAAM,GAAG,GAAe;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,OAAO,EAAE,oCAAoC;QAC1D,GAAG,OAAO,EAAE,GAAG,EAAE,+BAA+B;QAChD,IAAI,EAAE,aAAa,EAAE,yBAAyB;QAC9C,OAAO,EAAE,OAAO,EAAE,oCAAoC;KACvD,CAAC;IAEF,6CAA6C;IAC7C,yDAAyD;IACzD,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QACzD,8EAA8E;QAC9E,OAAO;YACL,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,cAAc,CAAC;gBACnD,+CAA+C;gBAC/C,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAErD,uDAAuD;IACvD,MAAM,mBAAmB,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3E,gEAAgE;IAChE,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtF,GAAG,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;QAC3C,QAAQ,EAAE;YACR,MAAM,EAAE;gBACN,EAAE,EAAE,cAAc,CAAC,EAAE;aACtB;SACF;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,YAAY;SACrB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IAEzB,gDAAgD;IAChD,GAAG,EAAE,OAAO,CAAC,qCAAqC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExF,iDAAiD;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { resolvePortalManifest } from './helpers/resolve-portal-manifest.js';
|
|
2
|
+
import { resolveProjectPackage } from './helpers/resolve-project-package.js';
|
|
3
|
+
/**
|
|
4
|
+
* Loads and resolves the portal manifest based on the provided options.
|
|
5
|
+
*
|
|
6
|
+
* This function resolves the app package, sets up the runtime environment, and loads the portal manifest.
|
|
7
|
+
* Logging is supported for debugging and progress tracking. Returns the manifest, package, and environment.
|
|
8
|
+
*
|
|
9
|
+
* @param options - The options for resolving the portal manifest.
|
|
10
|
+
* @returns An object containing the resolved manifest, package, and runtime environment.
|
|
11
|
+
* @throws Will throw an error if resolving the application package or manifest fails.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export const loadPortalManifest = async (options) => {
|
|
15
|
+
const { log } = options ?? {};
|
|
16
|
+
// Resolve the application's package.json for root and metadata
|
|
17
|
+
const pkg = await resolveProjectPackage(log);
|
|
18
|
+
log?.debug('package', pkg);
|
|
19
|
+
// Setup the runtime environment for manifest resolution
|
|
20
|
+
const env = {
|
|
21
|
+
command: 'build',
|
|
22
|
+
mode: process.env.NODE_ENV ?? 'production',
|
|
23
|
+
root: pkg.root,
|
|
24
|
+
...options?.env, // Allow overrides from options
|
|
25
|
+
};
|
|
26
|
+
log?.debug('env:', env);
|
|
27
|
+
// Resolve the portal manifest using the environment and manifest path
|
|
28
|
+
const manifest = await resolvePortalManifest(env, pkg, {
|
|
29
|
+
log,
|
|
30
|
+
manifestPath: options?.manifest,
|
|
31
|
+
});
|
|
32
|
+
log?.debug('manifest:', manifest);
|
|
33
|
+
// Return the resolved manifest, package, and environment for further use
|
|
34
|
+
return { manifest, pkg, env };
|
|
35
|
+
};
|
|
36
|
+
// Export as default for compatibility with import patterns
|
|
37
|
+
export default loadPortalManifest;
|
|
38
|
+
//# sourceMappingURL=portal-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-manifest.js","sourceRoot":"","sources":["../../../src/bin/portal-manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AA0B7E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAqC,EAAE,EAAE;IAChF,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE9B,+DAA+D;IAC/D,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE7C,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,wDAAwD;IACxD,MAAM,GAAG,GAAe;QACtB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;QAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,OAAO,EAAE,GAAG,EAAE,+BAA+B;KACjD,CAAC;IAEF,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAExB,sEAAsE;IACtE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE;QACrD,GAAG;QACH,YAAY,EAAE,OAAO,EAAE,QAAQ;KAChC,CAAC,CAAC;IAEH,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElC,yEAAyE;IACzE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,2DAA2D;AAC3D,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { loadPortalSchema } from '../lib/portal';
|
|
2
|
+
import { pack } from './pack';
|
|
3
|
+
import { buildPortal } from './portal-build';
|
|
4
|
+
/**
|
|
5
|
+
* Bundles the portal into an archive for distribution or deployment.
|
|
6
|
+
*
|
|
7
|
+
* This function builds the portal, validates the manifest, loads the schema, and creates an archive containing
|
|
8
|
+
* the portal manifest, schema, and metadata. Handles errors and logs progress for maintainability and debugging.
|
|
9
|
+
*
|
|
10
|
+
* @param options - Options for logger, manifest path, schema path, and archive name.
|
|
11
|
+
* @returns An object containing the archive path, portal manifest, and schema.
|
|
12
|
+
* @throws If the manifest build config is missing or packaging fails.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export const bundlePortal = async (options) => {
|
|
16
|
+
const { log, manifest } = options;
|
|
17
|
+
// Setup a default runtime environment for the build
|
|
18
|
+
const env = {
|
|
19
|
+
command: 'build',
|
|
20
|
+
mode: process.env.NODE_ENV ?? 'production',
|
|
21
|
+
environment: null,
|
|
22
|
+
root: process.cwd(),
|
|
23
|
+
};
|
|
24
|
+
// Build the portal and retrieve the manifest and package info
|
|
25
|
+
const { pkg, manifest: portalManifest } = await buildPortal({
|
|
26
|
+
log,
|
|
27
|
+
manifest,
|
|
28
|
+
});
|
|
29
|
+
// Ensure the manifest contains build configuration
|
|
30
|
+
if (!portalManifest.build) {
|
|
31
|
+
throw new Error('Manifest build config not found');
|
|
32
|
+
}
|
|
33
|
+
// Load the portal schema for validation and inclusion in the archive
|
|
34
|
+
const schemaResult = await loadPortalSchema(env, { file: options?.schema });
|
|
35
|
+
log?.debug('Schema:', schemaResult);
|
|
36
|
+
// Create the archive with the portal manifest, schema, and metadata
|
|
37
|
+
const result = await pack(pkg, {
|
|
38
|
+
log,
|
|
39
|
+
archive: options?.archive,
|
|
40
|
+
content: {
|
|
41
|
+
'portal-template-manifest.json': JSON.stringify(portalManifest.build, null, 2),
|
|
42
|
+
'portal.schema.json': JSON.stringify(schemaResult.schema, null, 2),
|
|
43
|
+
'metadata.json': JSON.stringify({
|
|
44
|
+
name: portalManifest.name,
|
|
45
|
+
version: portalManifest.build.version,
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
}).catch((error) => {
|
|
49
|
+
// Log and exit if packaging fails
|
|
50
|
+
log?.error('Failed to create package:', error);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
53
|
+
// Return the archive path, manifest, and schema for further use
|
|
54
|
+
return {
|
|
55
|
+
archive: result,
|
|
56
|
+
manifest: portalManifest,
|
|
57
|
+
schema: schemaResult.schema,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=portal-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-pack.js","sourceRoot":"","sources":["../../../src/bin/portal-pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwB7C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAA4B,EAAE,EAAE;IACjE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAElC,oDAAoD;IACpD,MAAM,GAAG,GAAe;QACtB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;QAC1C,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;KACpB,CAAC;IAEF,8DAA8D;IAC9D,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,WAAW,CAAC;QAC1D,GAAG;QACH,QAAQ;KACT,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpC,oEAAoE;IACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE;QAC7B,GAAG;QACH,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,OAAO,EAAE;YACP,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC9B,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO;aACtC,CAAC;SACH;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,kCAAkC;QAClC,GAAG,EAAE,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,gEAAgE;IAChE,OAAO;QACL,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { HttpJsonResponseError } from '@equinor/fusion-framework-module-http/errors';
|
|
2
|
+
import { chalk, formatPath } from './utils';
|
|
3
|
+
/**
|
|
4
|
+
* Allowed tags for portal versions in the portal service.
|
|
5
|
+
*
|
|
6
|
+
* - `latest`: Marks the most recent stable version of the portal template.
|
|
7
|
+
* - `preview`: Marks a pre-release or preview version for testing or review.
|
|
8
|
+
*
|
|
9
|
+
* Used by {@link tagPortal} to validate and apply version tags.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export var AllowedTags;
|
|
14
|
+
(function (AllowedTags) {
|
|
15
|
+
AllowedTags["Latest"] = "latest";
|
|
16
|
+
AllowedTags["Preview"] = "preview";
|
|
17
|
+
})(AllowedTags || (AllowedTags = {}));
|
|
18
|
+
/**
|
|
19
|
+
* Tags a portal template version in the portal service with a specified tag (e.g., 'latest' or 'preview').
|
|
20
|
+
*
|
|
21
|
+
* This function validates input, creates a client for the portal service, and sends a tag request.
|
|
22
|
+
* It provides detailed logging and error handling for common failure scenarios.
|
|
23
|
+
*
|
|
24
|
+
* @param options - Tag, portal name, version, framework instance, and logger.
|
|
25
|
+
* @returns The result of the tag operation from the portal service.
|
|
26
|
+
* @throws If the tag, name, or version is invalid, or if the tag operation fails.
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export const tagPortal = async (options) => {
|
|
30
|
+
const { tag, name, version, framework, log } = options;
|
|
31
|
+
// Validate tag value
|
|
32
|
+
if (!['latest', 'preview'].includes(tag)) {
|
|
33
|
+
log?.fail('🤪', 'Invalid tag. Use "latest" or "preview".');
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
// Validate portal name
|
|
37
|
+
if (!name) {
|
|
38
|
+
log?.fail('🤪', 'Application name is required.');
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
// Validate version
|
|
42
|
+
if (!version) {
|
|
43
|
+
log?.fail('🤪', 'Version is required.');
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
// Log the tagging action for traceability
|
|
47
|
+
log?.info('Tagging application:', chalk.greenBright(`${name}@${tag}`, version));
|
|
48
|
+
// Create a client for the 'portal-config' service
|
|
49
|
+
const client = await framework.serviceDiscovery.createClient('portal-config');
|
|
50
|
+
// Subscribe to outgoing requests for logging and debugging
|
|
51
|
+
client.request$.subscribe((request) => {
|
|
52
|
+
log?.debug('Request:', request);
|
|
53
|
+
log?.info('🌎', 'Executing request to:', formatPath(request.uri));
|
|
54
|
+
});
|
|
55
|
+
log?.start('Tagging portal template...');
|
|
56
|
+
try {
|
|
57
|
+
// Send a PUT request to tag the portal template version
|
|
58
|
+
const response = await client.json(`/templates/${name}/tags/${tag}`, {
|
|
59
|
+
method: 'PUT',
|
|
60
|
+
body: { version },
|
|
61
|
+
});
|
|
62
|
+
log?.debug('Response:', response);
|
|
63
|
+
log?.succeed('Tagged portal template successfully');
|
|
64
|
+
log?.info('🚀', JSON.stringify(response));
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
// Handle known HTTP errors with specific log messages
|
|
68
|
+
if (error instanceof HttpJsonResponseError) {
|
|
69
|
+
const { data, response } = error;
|
|
70
|
+
log?.debug('Error:', data);
|
|
71
|
+
if (data) {
|
|
72
|
+
log?.warn(chalk.red(`🤯 error: ${data.code}\n`), chalk.yellowBright(data.message), '\n');
|
|
73
|
+
}
|
|
74
|
+
switch (response?.status) {
|
|
75
|
+
case 410:
|
|
76
|
+
log?.fail(`🤬 - ${response?.status} -`, `${name} is deleted. Please check the name and try again.`);
|
|
77
|
+
break;
|
|
78
|
+
case 404:
|
|
79
|
+
log?.fail(`🤬 - ${response?.status} -`, `${name} not found. Please check the name and try again.`);
|
|
80
|
+
break;
|
|
81
|
+
case 403:
|
|
82
|
+
case 401:
|
|
83
|
+
log?.fail(`🤬 - ${response?.status} -`, 'You are not authorized to tag. Please check your permissions.');
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
log?.fail(`🤬 - ${response?.status} -`, 'Failed to tag', `Error: ${error.message}`);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Rethrow error for upstream handling
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
// Export as default for compatibility with import patterns
|
|
95
|
+
export default tagPortal;
|
|
96
|
+
//# sourceMappingURL=portal-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-tag.js","sourceRoot":"","sources":["../../../src/bin/portal-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import AdmZip from 'adm-zip';
|
|
2
|
+
import { chalk } from './utils';
|
|
3
|
+
import { loadMetadata } from './helpers/load-bundle-metadata';
|
|
4
|
+
/**
|
|
5
|
+
* Uploads a portal bundle to the portal service for publishing or updating a portal template.
|
|
6
|
+
*
|
|
7
|
+
* This function loads the bundle, resolves the portal name (from argument or metadata),
|
|
8
|
+
* reads the bundle content, and uploads it to the portal service. Handles and logs errors
|
|
9
|
+
* for common failure scenarios, including HTTP status codes and bundle reading issues.
|
|
10
|
+
*
|
|
11
|
+
* @param opt - Options for bundle file, portal name, framework, and logger.
|
|
12
|
+
* @returns A promise that resolves when the upload is complete.
|
|
13
|
+
* @throws If bundle reading or upload fails, or if the portal service returns an error status.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const uploadPortalBundle = async (opt) => {
|
|
17
|
+
const { log, framework } = opt;
|
|
18
|
+
// Load the bundle from file or use the provided AdmZip instance
|
|
19
|
+
const bundle = typeof opt.fileOrBundle === 'string' ? new AdmZip(opt.fileOrBundle) : opt.fileOrBundle;
|
|
20
|
+
// Resolve the portal name from argument or bundle metadata
|
|
21
|
+
const { name } = opt.name
|
|
22
|
+
? { name: opt.name }
|
|
23
|
+
: await loadMetadata(bundle).catch((error) => {
|
|
24
|
+
log?.error('Failed to resolve manifest:', error);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
27
|
+
// Read the bundle content as a buffer
|
|
28
|
+
const content = await bundle.toBufferPromise().catch((error) => {
|
|
29
|
+
log?.error('Failed to read bundle content:', error);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
});
|
|
32
|
+
try {
|
|
33
|
+
// Create a client for the 'portal-config' service
|
|
34
|
+
const appClient = await framework.serviceDiscovery.createClient('portal-config');
|
|
35
|
+
// Subscribe to outgoing requests for logging and debugging
|
|
36
|
+
appClient.request$.subscribe((request) => {
|
|
37
|
+
log?.info('🌎', 'Executing request to:', request.uri);
|
|
38
|
+
log?.debug('Request:', request);
|
|
39
|
+
});
|
|
40
|
+
// Upload the bundle as a zip file to the portal service
|
|
41
|
+
const response = await appClient.fetch(`/bundles/templates/${name}`, {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
body: new Blob([content], {
|
|
44
|
+
type: 'application/zip',
|
|
45
|
+
}),
|
|
46
|
+
headers: {
|
|
47
|
+
'Content-Type': 'application/zip',
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
// Handle non-OK responses with detailed error logging
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
try {
|
|
53
|
+
const { error } = await response.json();
|
|
54
|
+
log?.debug('Error:', error);
|
|
55
|
+
if (error.message) {
|
|
56
|
+
log?.warn(chalk.red(`🤯 error: ${error.code}\n`), chalk.yellowBright(error.message), '\n');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
log?.debug('Error:', response.statusText);
|
|
61
|
+
}
|
|
62
|
+
// Handle specific HTTP status codes for user-friendly error messages
|
|
63
|
+
if (response.status === 409) {
|
|
64
|
+
log?.fail(`🤬 - ${response.status} - `, 'Version is already published, please generate a new release');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
if (response.status === 410) {
|
|
68
|
+
log?.fail(`🤬 - ${response.status} - `, `${name} is removed from Fusion`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
if (response.status === 404) {
|
|
72
|
+
log?.fail(`🤬 - ${response.status} - `, `${name} not found`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
if (response.status === 401 || response.status === 403) {
|
|
76
|
+
log?.fail(`🤬 - ${response.status} - `, `This is not allowed for your role on ${name}`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
if (response.status === 500) {
|
|
80
|
+
log?.fail(`🤬 - ${response.status} - `, 'Internal server error, please try again later or contact support');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
// Throw for any other error status
|
|
84
|
+
throw new Error(`Failed to upload bundle. HTTP status ${response.status}, ${response.statusText}`);
|
|
85
|
+
}
|
|
86
|
+
// Log and return the successful response
|
|
87
|
+
log?.succeed('Successfully uploaded application bundle');
|
|
88
|
+
log?.debug('Response:', response);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
// Log and exit on any error during upload
|
|
92
|
+
log?.fail('🙅♂️', 'Failed to upload application bundle');
|
|
93
|
+
log?.error(error);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
// Export as default for compatibility with import patterns
|
|
98
|
+
export default uploadPortalBundle;
|
|
99
|
+
//# sourceMappingURL=portal-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-upload.js","sourceRoot":"","sources":["../../../src/bin/portal-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// ConsoleLogger provides a unified interface for logging and spinner-based feedback in CLI tools.
|
|
2
|
+
// It wraps a Spinner instance and exposes methods for different log levels and progress reporting.
|
|
3
|
+
import { Spinner } from './spinner.js';
|
|
4
|
+
/**
|
|
5
|
+
* ConsoleLogger is a utility class for logging progress, status, and debug information in CLI applications.
|
|
6
|
+
* It uses a spinner for visual feedback and supports debug mode for verbose output.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This class is designed for CLI tools that require both spinner-based progress indication and
|
|
10
|
+
* structured logging at various levels (info, warn, error, debug).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const logger = new ConsoleLogger('My CLI', { debug: true });
|
|
15
|
+
* logger.start('Starting task...');
|
|
16
|
+
* logger.succeed('Task complete!');
|
|
17
|
+
* logger.debug('Debug info');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export class ConsoleLogger {
|
|
21
|
+
/**
|
|
22
|
+
* The spinner instance used for progress and status messages.
|
|
23
|
+
*/
|
|
24
|
+
spinner;
|
|
25
|
+
/**
|
|
26
|
+
* Indicates if debug mode is enabled for verbose output.
|
|
27
|
+
*/
|
|
28
|
+
debugMode;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new ConsoleLogger.
|
|
31
|
+
* @param title - Prefix for spinner/log messages.
|
|
32
|
+
* @param options - Optional debug flag.
|
|
33
|
+
*/
|
|
34
|
+
constructor(title, options) {
|
|
35
|
+
this.spinner = new Spinner({ prefixText: title });
|
|
36
|
+
this.debugMode = options?.debug ?? false;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Start the spinner with a message.
|
|
40
|
+
* @param args - Message parts to display.
|
|
41
|
+
*/
|
|
42
|
+
start(...args) {
|
|
43
|
+
this.spinner.start(...args);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Mark spinner as succeeded with a message.
|
|
47
|
+
* @param args - Message parts to display.
|
|
48
|
+
*/
|
|
49
|
+
succeed(...args) {
|
|
50
|
+
this.spinner.succeed(...args);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mark spinner as failed with a message.
|
|
54
|
+
* @param args - Message parts to display.
|
|
55
|
+
*/
|
|
56
|
+
fail(...args) {
|
|
57
|
+
this.spinner.fail(...args);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Log an error message to the console.
|
|
61
|
+
* @param args - Error message parts.
|
|
62
|
+
*/
|
|
63
|
+
// biome-ignore lint/suspicious/noExplicitAny: same as original
|
|
64
|
+
error(...args) {
|
|
65
|
+
console.log(...args);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Log a warning message.
|
|
69
|
+
* @param args - Warning message parts.
|
|
70
|
+
*/
|
|
71
|
+
warn(...args) {
|
|
72
|
+
this.spinner.warn(...args);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Log an informational message.
|
|
76
|
+
* @param args - Info message parts.
|
|
77
|
+
*/
|
|
78
|
+
info(...args) {
|
|
79
|
+
this.spinner.info(...args);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Alias for info.
|
|
83
|
+
* @param args - Info message parts.
|
|
84
|
+
*/
|
|
85
|
+
log(...args) {
|
|
86
|
+
this.spinner.info(...args);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Log debug messages if debugMode is enabled.
|
|
90
|
+
* @param args - Debug message parts.
|
|
91
|
+
*/
|
|
92
|
+
// biome-ignore lint/suspicious/noExplicitAny: same as original
|
|
93
|
+
debug(...args) {
|
|
94
|
+
if (this.debugMode) {
|
|
95
|
+
console.debug(...args);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Attach spinner to native console output.
|
|
100
|
+
*/
|
|
101
|
+
startNativeConsoleCapture() {
|
|
102
|
+
this.spinner.attachConsole = true;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Detach spinner from native console output.
|
|
106
|
+
*/
|
|
107
|
+
stopNativeConsoleCapture() {
|
|
108
|
+
this.spinner.attachConsole = false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export default ConsoleLogger;
|
|
112
|
+
//# sourceMappingURL=ConsoleLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleLogger.js","sourceRoot":"","sources":["../../../../src/bin/utils/ConsoleLogger.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mGAAmG;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAa;IACxB;;OAEG;IACa,OAAO,CAAU;IACjC;;OAEG;IACa,SAAS,CAAU;IAEnC;;;;OAIG;IACH,YAAY,KAAa,EAAE,OAA6B;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,GAAG,IAAc;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAc;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IACD;;;OAGG;IACH,IAAI,CAAC,GAAG,IAAc;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD;;;OAGG;IACH,+DAA+D;IAC/D,KAAK,CAAC,GAAG,IAAW;QAClB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;IACD;;;OAGG;IACH,IAAI,CAAC,GAAG,IAAc;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD;;;OAGG;IACH,IAAI,CAAC,GAAG,IAAc;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD;;;OAGG;IACH,GAAG,CAAC,GAAG,IAAc;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD;;;OAGG;IACH,+DAA+D;IAC/D,KAAK,CAAC,GAAG,IAAW;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD;;OAEG;IACH,yBAAyB;QACvB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IACpC,CAAC;IACD;;OAEG;IACH,wBAAwB;QACtB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;IACrC,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
|