@equinor/fusion-framework-cli 10.7.5-apploader-be21a6b60eb13eee8bf869e75002d8634e9c50a9 → 11.0.0-next.1
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 +51 -2
- package/README.md +144 -17
- package/bin/build/bin.js +21 -0
- package/bin/build/cli.js +9868 -0
- package/bin/build/create-auth-client-7P8K_6Vu.js +89 -0
- package/bin/build/portal-pack-CAsnV44B.js +12069 -0
- 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/docs/application.md +644 -0
- package/docs/auth.md +190 -0
- package/docs/libsecret.md +97 -0
- package/docs/migration-v10-to-v11.md +74 -0
- package/docs/portal.md +278 -0
- package/package.json +60 -69
- 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-B7SVn0UQ.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,104 @@
|
|
|
1
|
+
import { ModulesConfigurator } from '@equinor/fusion-framework-module';
|
|
2
|
+
import { enableAuthModule } from '@equinor/fusion-framework-module-msal-node';
|
|
3
|
+
import { module as httpModule } from '@equinor/fusion-framework-module-http';
|
|
4
|
+
import { enableServiceDiscovery, } from '@equinor/fusion-framework-module-service-discovery';
|
|
5
|
+
import isContinuousIntegration from 'is-ci';
|
|
6
|
+
// Default scope for Fusion service discovery
|
|
7
|
+
const FUSION_SERVICE_SCOPE = ['5a842df8-3238-415d-b168-9f16a6a6031b/.default'];
|
|
8
|
+
/**
|
|
9
|
+
* Enum for supported Fusion environments.
|
|
10
|
+
* Used to select the correct environment for service discovery and authentication.
|
|
11
|
+
*/
|
|
12
|
+
export var FusionEnv;
|
|
13
|
+
(function (FusionEnv) {
|
|
14
|
+
FusionEnv["ContinuesIntegration"] = "ci";
|
|
15
|
+
FusionEnv["QualityAssurance"] = "fqa";
|
|
16
|
+
FusionEnv["Training"] = "tr";
|
|
17
|
+
FusionEnv["Production"] = "fprd";
|
|
18
|
+
FusionEnv["Development"] = "dev";
|
|
19
|
+
})(FusionEnv || (FusionEnv = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the default environment based on CI status and dev allowance.
|
|
22
|
+
*
|
|
23
|
+
* @param allowDev - If true, allows development environment when not in CI.
|
|
24
|
+
* @returns The resolved Fusion environment.
|
|
25
|
+
*/
|
|
26
|
+
export const resolveDefaultEnv = (allowDev) => {
|
|
27
|
+
// If development is allowed and not running in CI, use development environment
|
|
28
|
+
if (allowDev && !isContinuousIntegration) {
|
|
29
|
+
return FusionEnv.Development;
|
|
30
|
+
}
|
|
31
|
+
// Otherwise, default to CI environment
|
|
32
|
+
return FusionEnv.ContinuesIntegration;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Initializes the Fusion Framework with the provided settings.
|
|
36
|
+
*
|
|
37
|
+
* This function configures HTTP, service discovery, and authentication modules
|
|
38
|
+
* based on the supplied configuration. It supports multiple authentication modes
|
|
39
|
+
* and allows customization of service discovery endpoints and scopes.
|
|
40
|
+
*
|
|
41
|
+
* @param config - The settings for framework initialization.
|
|
42
|
+
* @returns A promise resolving to the initialized Fusion Framework instance.
|
|
43
|
+
* @throws Will throw if required authentication parameters are missing.
|
|
44
|
+
*/
|
|
45
|
+
export const initializeFramework = async (config) => {
|
|
46
|
+
// Create a new module configurator for the framework
|
|
47
|
+
const configurator = new ModulesConfigurator();
|
|
48
|
+
// Determine the environment to use, defaulting to CI if not specified
|
|
49
|
+
const env = config.env ?? FusionEnv.ContinuesIntegration;
|
|
50
|
+
// Configure the HTTP module for service discovery
|
|
51
|
+
configurator.addConfig({
|
|
52
|
+
module: httpModule,
|
|
53
|
+
configure: (builder) => {
|
|
54
|
+
// Use CI environment for service discovery in development, otherwise use the selected env
|
|
55
|
+
const serviceDiscoveryEnv = env === FusionEnv.Development ? FusionEnv.ContinuesIntegration : env;
|
|
56
|
+
// Determine the base URI for service discovery
|
|
57
|
+
const baseUri = config.serviceDiscovery?.url ??
|
|
58
|
+
new URL(`/service-registry/environments/${serviceDiscoveryEnv}/services`, 'https://discovery.fusion.equinor.com').toString();
|
|
59
|
+
// Use provided scopes or default Fusion service scope
|
|
60
|
+
const defaultScopes = config.serviceDiscovery?.scope ?? FUSION_SERVICE_SCOPE;
|
|
61
|
+
// Register the service discovery client with the HTTP module
|
|
62
|
+
builder.configureClient('service_discovery', {
|
|
63
|
+
baseUri,
|
|
64
|
+
defaultScopes,
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
// Enable the service discovery module
|
|
69
|
+
enableServiceDiscovery(configurator);
|
|
70
|
+
// Enable the authentication module with custom configuration logic
|
|
71
|
+
enableAuthModule(configurator, (builder) => {
|
|
72
|
+
const { auth } = config;
|
|
73
|
+
// Handle direct token authentication
|
|
74
|
+
if ('token' in auth && auth.token) {
|
|
75
|
+
const { token } = auth;
|
|
76
|
+
builder.setMode('token_only');
|
|
77
|
+
builder.setAccessToken(token);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// Handle silent or interactive authentication
|
|
81
|
+
const { clientId, tenantId, interactive } = auth;
|
|
82
|
+
if (!clientId || !tenantId) {
|
|
83
|
+
// Both clientId and tenantId are required for these modes
|
|
84
|
+
throw new Error('clientId and tenantId are required for auth module');
|
|
85
|
+
}
|
|
86
|
+
// Set client configuration for authentication
|
|
87
|
+
builder.setClientConfig(tenantId, clientId);
|
|
88
|
+
// Set authentication mode based on interactive flag
|
|
89
|
+
builder.setMode(interactive ? 'interactive' : 'silent');
|
|
90
|
+
if (interactive) {
|
|
91
|
+
// For interactive mode, server configuration is required
|
|
92
|
+
const { server } = auth;
|
|
93
|
+
if (!server.port) {
|
|
94
|
+
throw new Error('server.port is required for interactive mode');
|
|
95
|
+
}
|
|
96
|
+
builder.setServerPort(server.port);
|
|
97
|
+
builder.setServerOnOpen(server.onOpen);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
// Initialize all configured modules and return the framework instance
|
|
101
|
+
const instance = await configurator.initialize();
|
|
102
|
+
return instance;
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=framework.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.node.js","sourceRoot":"","sources":["../../../src/lib/framework.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { initializeFramework } from './framework.node.js';
|
|
2
|
+
// Legacy imports - these will be removed in the next major version
|
|
3
|
+
// @todo - remove these imports, introduced in v11
|
|
4
|
+
export { defineAppConfig, defineAppManifest } from './legacy.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAEhF,mEAAmE;AACnE,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { defineAppConfig as _defineConfig } from './app/app-config.js';
|
|
3
|
+
import { defineAppManifest as _defineManifest } from './app/app-manifest.js';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated
|
|
6
|
+
* Will be removed in the next major version.
|
|
7
|
+
* Please use `defineAppConfig` from `@equinor/fusion-framework-cli/app` instead.
|
|
8
|
+
*
|
|
9
|
+
* Transitional wrapper for legacy defineAppConfig. This function exists only to prevent immediate breaking changes
|
|
10
|
+
* and should be removed as soon as possible. Consumers should migrate to the new API without delay.
|
|
11
|
+
*
|
|
12
|
+
* @param args - Arguments passed to the new defineAppConfig function.
|
|
13
|
+
*/
|
|
14
|
+
export const defineAppConfig = (...args) => {
|
|
15
|
+
// Emit a strong warning to alert consumers that this usage is deprecated and must be fixed ASAP
|
|
16
|
+
console.warn(chalk.bgRed.white.bold('[DEPRECATION]'), chalk.redBright.bold('[@equinor/fusion-framework-cli] `defineAppConfig` is deprecated and will be removed in the next major version!\n' +
|
|
17
|
+
'Please update your code to use `defineAppConfig` from `@equinor/fusion-framework-cli/app` as soon as possible.'));
|
|
18
|
+
// Forward the call to the new implementation
|
|
19
|
+
return _defineConfig(...args);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated
|
|
23
|
+
* Will be removed in the next major version.
|
|
24
|
+
* Please use `defineAppManifest` from `@equinor/fusion-framework-cli/app` instead.
|
|
25
|
+
*
|
|
26
|
+
* Transitional wrapper for legacy defineAppManifest. This function exists only to prevent immediate breaking changes
|
|
27
|
+
* and should be removed as soon as possible. Consumers should migrate to the new API without delay.
|
|
28
|
+
*
|
|
29
|
+
* @param args - Arguments passed to the new defineAppManifest function.
|
|
30
|
+
*/
|
|
31
|
+
export const defineAppManifest = (...args) => {
|
|
32
|
+
// Emit a strong warning to alert consumers that this usage is deprecated and must be fixed ASAP
|
|
33
|
+
console.warn(chalk.bgRed.white.bold('[DEPRECATION]'), chalk.redBright.bold('[@equinor/fusion-framework-cli] `defineAppManifest` is deprecated and will be removed in the next major version!\n' +
|
|
34
|
+
'Please update your code to use `defineAppManifest` from `@equinor/fusion-framework-cli/app` as soon as possible.'));
|
|
35
|
+
// Forward the call to the new implementation
|
|
36
|
+
return _defineManifest(...args);
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../src/lib/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAsC,EAAE,EAAE;IAC3E,gGAAgG;IAChG,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,kHAAkH;QAChH,gHAAgH,CACnH,CACF,CAAC;IACF,6CAA6C;IAC7C,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAwC,EAAE,EAAE;IAC/E,gGAAgG;IAChG,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,oHAAoH;QAClH,kHAAkH,CACrH,CACF,CAAC;IACF,6CAA6C;IAC7C,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { importConfig } from '@equinor/fusion-imports';
|
|
2
|
+
/**
|
|
3
|
+
* Helper to define a dev server config function with proper typing.
|
|
4
|
+
* @param fn - The configuration function to be used as the dev server config.
|
|
5
|
+
* @returns The same function, typed as DevServerConfigFn.
|
|
6
|
+
*/
|
|
7
|
+
export const defineDevServerConfig = (fn) => fn;
|
|
8
|
+
/**
|
|
9
|
+
* Loads the dev server configuration from a file or function.
|
|
10
|
+
*
|
|
11
|
+
* @param env - The runtime environment configuration.
|
|
12
|
+
* @param base - The base DevServerOptions to use as defaults.
|
|
13
|
+
* @param options - Optional settings for file name and extensions.
|
|
14
|
+
* @returns A promise resolving to the imported config result.
|
|
15
|
+
*
|
|
16
|
+
* This function uses importConfig to dynamically load the configuration file.
|
|
17
|
+
* If the config export is a function, it is invoked with the environment and a cloned base config.
|
|
18
|
+
* If the config export is an object, it is merged with the base config.
|
|
19
|
+
*
|
|
20
|
+
* Inline comments are provided for maintainability and clarity.
|
|
21
|
+
*/
|
|
22
|
+
export const loadDevServerConfig = async (env, base, options) => {
|
|
23
|
+
// Use importConfig to load the config file, defaulting to 'dev-server.config' if not specified
|
|
24
|
+
return importConfig(options?.file ?? 'dev-server.config', {
|
|
25
|
+
baseDir: env.root, // Set the base directory for config resolution
|
|
26
|
+
extensions: options?.extensions, // Allow custom file extensions
|
|
27
|
+
script: {
|
|
28
|
+
// Custom resolver for the config module
|
|
29
|
+
resolve: async (module) => {
|
|
30
|
+
// If the default export is a function, call it with env and a cloned base config
|
|
31
|
+
if (typeof module.default === 'function') {
|
|
32
|
+
const baseClone = { ...base }; // Clone base to avoid mutation
|
|
33
|
+
const result = (await module.default(env, { base: baseClone })) ?? base;
|
|
34
|
+
// TODO: Add zod validation of the config for type safety
|
|
35
|
+
return result ?? baseClone;
|
|
36
|
+
}
|
|
37
|
+
// If the default export is an object, return it or fallback to base
|
|
38
|
+
return module.default ?? base;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=load-dev-server-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-dev-server-config.js","sourceRoot":"","sources":["../../../src/lib/load-dev-server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,yBAAyB,CAAC;AAoBhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAqB,EAAE,EAAE,CAAC,EAAE,CAAC;AAEnE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,GAAe,EACf,IAAsB,EACtB,OAGC,EAC8C,EAAE;IACjD,+FAA+F;IAC/F,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE;QACxD,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,+CAA+C;QAClE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,+BAA+B;QAChE,MAAM,EAAE;YACN,wCAAwC;YACxC,OAAO,EAAE,KAAK,EAAE,MAA0C,EAA6B,EAAE;gBACvF,iFAAiF;gBACjF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,+BAA+B;oBAC9D,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;oBACxE,yDAAyD;oBACzD,OAAO,MAAM,IAAI,SAAS,CAAC;gBAC7B,CAAC;gBACD,oEAAoE;gBACpE,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAChC,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import mergeWith from 'lodash.mergewith';
|
|
2
|
+
/**
|
|
3
|
+
* Customizer function for lodash.mergeWith to handle merging arrays.
|
|
4
|
+
*
|
|
5
|
+
* If the property being merged is an array, the source value replaces the object value.
|
|
6
|
+
* This prevents arrays from being concatenated, which is the default lodash behavior.
|
|
7
|
+
*
|
|
8
|
+
* @param objValue - The value from the base object.
|
|
9
|
+
* @param srcValue - The value from the overrides object.
|
|
10
|
+
* @returns The value to use in the merged result, or undefined to use default merging.
|
|
11
|
+
*/
|
|
12
|
+
const customizer = (objValue, srcValue) => {
|
|
13
|
+
if (Array.isArray(objValue)) {
|
|
14
|
+
// Replace arrays instead of merging/concatenating them
|
|
15
|
+
return srcValue;
|
|
16
|
+
}
|
|
17
|
+
// For non-arrays, use default merge behavior
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Merges a base development server configuration with an overrides object.
|
|
21
|
+
*
|
|
22
|
+
* Uses lodash.mergeWith to deeply merge properties, with custom logic for arrays.
|
|
23
|
+
* Arrays in the overrides object will replace arrays in the base config.
|
|
24
|
+
*
|
|
25
|
+
* @param base - The base development server configuration.
|
|
26
|
+
* @param overrides - A partial configuration object containing properties to override in the base configuration.
|
|
27
|
+
* @returns The merged development server configuration.
|
|
28
|
+
*
|
|
29
|
+
* Inline comments are provided for maintainability and clarity.
|
|
30
|
+
*/
|
|
31
|
+
export const mergeDevServerConfig = (base, overrides) => {
|
|
32
|
+
// Use lodash.mergeWith to merge base and overrides, applying the customizer for arrays
|
|
33
|
+
return mergeWith(base, overrides, customizer);
|
|
34
|
+
};
|
|
35
|
+
// Export as default for convenience in imports
|
|
36
|
+
export default mergeDevServerConfig;
|
|
37
|
+
//# sourceMappingURL=merge-dev-server-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-dev-server-config.js","sourceRoot":"","sources":["../../../src/lib/merge-dev-server-config.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,uDAAuD;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,6CAA6C;AAC/C,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAsB,EACtB,SAA6C,EAC3B,EAAE;IACpB,uFAAuF;IACvF,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAqB,CAAC;AACpE,CAAC,CAAC;AAEF,+CAA+C;AAC/C,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { assert, assertObject } from '../utils/assert.js';
|
|
2
|
+
import { resolveAnnotations } from '../utils/resolve-annotations.js';
|
|
3
|
+
import { resolveEntryPoint } from '../utils/resolve-source-entry-point.js';
|
|
4
|
+
import { resolveRepoFromPackage } from '../utils/resolve-package-repo.js';
|
|
5
|
+
import { resolveGitRemoteUrl } from '../utils/resolve-git-remote-url.js';
|
|
6
|
+
import { resolveGitCommitSha } from '../utils/resolve-git-commit-sha.js';
|
|
7
|
+
import { ASSET_EXTENSIONS } from '../static.js';
|
|
8
|
+
import { PortalManifestSchema } from './portal-manifest.schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the appropriate entry point for a portal based on the current runtime environment.
|
|
11
|
+
*
|
|
12
|
+
* - In production or preview environments, it prefers the compiled entry point specified by
|
|
13
|
+
* the `main` or `module` fields in the provided `package.json`, falling back to `'dist/bundle.js'` if neither is present.
|
|
14
|
+
* - In development, it uses the source entry point for improved debugging.
|
|
15
|
+
*
|
|
16
|
+
* @param env - The runtime environment configuration, including command and preview status.
|
|
17
|
+
* @param packageJson - The parsed contents of the package's `package.json` file.
|
|
18
|
+
* @returns The resolved entry point path as a string.
|
|
19
|
+
*/
|
|
20
|
+
const resolvePortalEntryPoint = (env, packageJson) => {
|
|
21
|
+
// Use compiled entry point when building for production or preview environments
|
|
22
|
+
if (env.command === 'build' || env.isPreview) {
|
|
23
|
+
// Prefer 'main', then 'module', then fallback to default bundle path
|
|
24
|
+
return packageJson.main || packageJson.module || 'dist/bundle.js';
|
|
25
|
+
}
|
|
26
|
+
// Use source entry point during development for better debugging
|
|
27
|
+
return resolveEntryPoint(env.root);
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Creates a `PortalManifest` object from the provided `package.json` data and runtime environment.
|
|
31
|
+
*
|
|
32
|
+
* This function validates the input package information, determines the appropriate entry point,
|
|
33
|
+
* extracts metadata such as the app key, version, and repository information, and constructs a manifest
|
|
34
|
+
* object suitable for use in portal deployment and development workflows.
|
|
35
|
+
*
|
|
36
|
+
* @param env - The runtime environment, containing information such as the current command (e.g., 'build', 'dev').
|
|
37
|
+
* @param packageJson - The parsed `package.json` object for the portal package, expected to include at least `name` and `version`.
|
|
38
|
+
* @returns A fully constructed `PortalManifest` object containing metadata, build information, and asset configuration.
|
|
39
|
+
*
|
|
40
|
+
* @throws Will throw an error if `packageJson` is not a valid object or is missing required fields.
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* - Maintainers: This function is the canonical way to generate a portal manifest from package metadata.
|
|
44
|
+
* - The manifest structure is tightly coupled to the portal build and deployment pipeline.
|
|
45
|
+
* - If you add new fields to the manifest, update this function and its documentation accordingly.
|
|
46
|
+
*/
|
|
47
|
+
export const createPortalManifestFromPackage = (env, packageJson) => {
|
|
48
|
+
// Validate that packageJson is a valid object and contains required fields
|
|
49
|
+
assertObject(packageJson, 'expected packageJson');
|
|
50
|
+
assert(packageJson.name, 'expected [name] in packageJson');
|
|
51
|
+
assert(packageJson.version, 'expected [version] in packageJson');
|
|
52
|
+
// Determine the entry point for the portal based on environment (prod/dev)
|
|
53
|
+
const entryPoint = resolvePortalEntryPoint(env, packageJson);
|
|
54
|
+
// Extract appKey from package name by removing the scope and leading @
|
|
55
|
+
// Example: '@scope/app-name' -> 'app-name'
|
|
56
|
+
const name = packageJson.name.replace(/^@|\w.*\//gm, '');
|
|
57
|
+
const version = packageJson.version;
|
|
58
|
+
// Only set assetPath when not building for production (used for dev/preview)
|
|
59
|
+
const assetPath = env.command === 'build' ? undefined : `bundles/portals/${name}/${version}`;
|
|
60
|
+
// Attempt to resolve GitHub repo from package, fallback to local git remote
|
|
61
|
+
const githubRepo = resolveRepoFromPackage(packageJson) ?? resolveGitRemoteUrl();
|
|
62
|
+
// Construct the portal manifest object with all required fields
|
|
63
|
+
const manifest = {
|
|
64
|
+
name,
|
|
65
|
+
displayName: packageJson.name,
|
|
66
|
+
description: packageJson.description || '',
|
|
67
|
+
build: {
|
|
68
|
+
templateEntry: entryPoint,
|
|
69
|
+
schemaEntry: 'portal.schema.json',
|
|
70
|
+
assetPath,
|
|
71
|
+
githubRepo,
|
|
72
|
+
version,
|
|
73
|
+
timestamp: new Date().toISOString(),
|
|
74
|
+
commitSha: resolveGitCommitSha(),
|
|
75
|
+
annotations: {
|
|
76
|
+
...resolveAnnotations(),
|
|
77
|
+
// ...packageJson.annotations ?? {}
|
|
78
|
+
},
|
|
79
|
+
projectPage: packageJson.homepage,
|
|
80
|
+
allowedExtensions: ASSET_EXTENSIONS.map((ext) => `.${ext}`),
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
// Validate manifest against schema and throw if invalid
|
|
84
|
+
const parsed = PortalManifestSchema.safeParse(manifest);
|
|
85
|
+
if (!parsed.success) {
|
|
86
|
+
const details = parsed.error.issues
|
|
87
|
+
.map((i) => `- ${i.path.join('.')}: ${i.message}`)
|
|
88
|
+
.join('\n');
|
|
89
|
+
throw new Error(['Invalid portal manifest generated from package.json:', details].join('\n'));
|
|
90
|
+
}
|
|
91
|
+
return parsed.data;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=create-portal-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/create-portal-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/portal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GAIvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GAInB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { importConfig } from '@equinor/fusion-imports';
|
|
2
|
+
import { PortalManifestSchema } from './portal-manifest.schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Loads a portal manifest configuration file, merging it with optional base values and supporting multiple file extensions.
|
|
5
|
+
*
|
|
6
|
+
* @template T - The type of the portal manifest, extending Partial<PortalManifest>. Defaults to PortalManifest.
|
|
7
|
+
* @param env - The runtime environment containing configuration such as the root directory and environment name.
|
|
8
|
+
* @param options - Optional settings for loading the manifest.
|
|
9
|
+
* @returns A promise that resolves to a `LoadAppManifestResult<T>` containing the loaded manifest, the file path, and the file extension.
|
|
10
|
+
*
|
|
11
|
+
* This function is the main entry point for loading portal manifest files. It supports merging with a base manifest, custom file name suggestions, and extension filtering.
|
|
12
|
+
*
|
|
13
|
+
* Example usage:
|
|
14
|
+
* ```ts
|
|
15
|
+
* const result = await loadPortalManifest(env, { base: {}, file: 'custom.manifest' });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export const loadPortalManifest = async (env, options) => {
|
|
19
|
+
// Determine manifest file name suggestions, defaulting to environment-specific and generic names
|
|
20
|
+
const suggestions = options?.file ?? [`portal.manifest.${env.environment}`, 'portal.manifest'];
|
|
21
|
+
// Import the manifest configuration using the provided suggestions and options
|
|
22
|
+
const importResult = await importConfig(suggestions, {
|
|
23
|
+
baseDir: env.root, // Set the base directory for manifest resolution
|
|
24
|
+
extensions: options?.extensions, // Allow custom file extensions if provided
|
|
25
|
+
script: {
|
|
26
|
+
// Custom resolver for manifest modules
|
|
27
|
+
resolve: async (module) => {
|
|
28
|
+
// Use the provided base manifest or an empty object as the starting point
|
|
29
|
+
const base = options?.base ?? {};
|
|
30
|
+
// If the manifest export is a function, call it with the environment and base manifest
|
|
31
|
+
if (typeof module.default === 'function') {
|
|
32
|
+
// Await the result of the manifest function, falling back to base if undefined
|
|
33
|
+
const result = (await module.default(env, { base })) ?? base;
|
|
34
|
+
return result ?? base;
|
|
35
|
+
}
|
|
36
|
+
// If the manifest export is an object, merge or return it directly
|
|
37
|
+
return module.default ?? base;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
// Return the loaded manifest, file path, and extension for downstream use
|
|
42
|
+
// Validate the manifest before returning using the PortalManifestSchema (Zod)
|
|
43
|
+
const manifest = importResult.config;
|
|
44
|
+
const validation = PortalManifestSchema.safeParse(manifest);
|
|
45
|
+
if (!validation.success) {
|
|
46
|
+
throw new Error(`Invalid portal manifest: ${validation.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join('; ')}`);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
manifest,
|
|
50
|
+
path: importResult.path,
|
|
51
|
+
extension: importResult.extension,
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=load-portal-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAuDnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAAe,EACf,OAAsC,EACH,EAAE;IACrC,iGAAiG;IACjG,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAE/F,+EAA+E;IAC/E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;QACnD,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,iDAAiD;QACpE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,2CAA2C;QAC5E,MAAM,EAAE;YACN,uCAAuC;YACvC,OAAO,EAAE,KAAK,EAAE,MAA4C,EAAc,EAAE;gBAC1E,0EAA0E;gBAC1E,MAAM,IAAI,GAAM,OAAO,EAAE,IAAI,IAAK,EAAQ,CAAC;gBAC3C,uFAAuF;gBACvF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,+EAA+E;oBAC/E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;oBAC7D,OAAO,MAAM,IAAI,IAAI,CAAC;gBACxB,CAAC;gBACD,mEAAmE;gBACnE,OAAQ,MAAM,CAAC,OAAa,IAAI,IAAI,CAAC;YACvC,CAAC;SACF;KACF,CAAC,CAAC;IAEH,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAW,CAAC;IAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { importConfig } from '@equinor/fusion-imports';
|
|
2
|
+
/**
|
|
3
|
+
* Helper to define a portal schema function with type inference.
|
|
4
|
+
* @template T - The type of the portal schema.
|
|
5
|
+
* @param fn - The schema function to define.
|
|
6
|
+
* @returns The provided schema function.
|
|
7
|
+
*/
|
|
8
|
+
export const definePortalSchema = (fn) => fn;
|
|
9
|
+
/**
|
|
10
|
+
* Loads a portal schema from configuration files or schema functions.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of the portal schema.
|
|
13
|
+
* @param env - The runtime environment used to resolve the schema.
|
|
14
|
+
* @param options - Optional configuration for file names and extensions.
|
|
15
|
+
* @returns An object containing the loaded schema, file path, and extension.
|
|
16
|
+
*
|
|
17
|
+
* This function attempts to import a schema configuration file or function based on the provided environment and options.
|
|
18
|
+
* It supports both direct schema objects and schema factory functions. The schema is resolved and validated before returning.
|
|
19
|
+
*/
|
|
20
|
+
export const loadPortalSchema = async (env, options) => {
|
|
21
|
+
// Determine possible schema file names based on environment and options
|
|
22
|
+
const suggestions = options?.file ?? [`portal.schema.${env.environment}`, 'portal.schema'];
|
|
23
|
+
// Attempt to import the schema configuration using the importConfig utility
|
|
24
|
+
const importResult = await importConfig(suggestions, {
|
|
25
|
+
baseDir: env.root,
|
|
26
|
+
extensions: options?.extensions,
|
|
27
|
+
script: {
|
|
28
|
+
// Custom resolver to handle both schema objects and schema factory functions
|
|
29
|
+
resolve: async (module) => {
|
|
30
|
+
// If the default export is a function, call it with the environment; otherwise, use the object directly
|
|
31
|
+
const result = typeof module.default === 'function'
|
|
32
|
+
? await Promise.resolve(module.default(env))
|
|
33
|
+
: module.default;
|
|
34
|
+
// Validate that a schema was returned
|
|
35
|
+
if (!result) {
|
|
36
|
+
throw new Error('Schema function did not return a valid schema');
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
// Return the loaded schema, along with the file path and extension for reference
|
|
43
|
+
return {
|
|
44
|
+
schema: importResult.config,
|
|
45
|
+
path: importResult.path,
|
|
46
|
+
extension: importResult.extension,
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=load-portal-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-portal-schema.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAsBvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAyB,EAAqB,EAAE,EAAE,CAAC,EAAE,CAAC;AAExF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAAe,EACf,OAGC,EACD,EAAE;IACF,wEAAwE;IACxE,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IAE3F,4EAA4E;IAC5E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;QACnD,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,MAAM,EAAE;YACN,6EAA6E;YAC7E,OAAO,EAAE,KAAK,EAAE,MAA0C,EAAc,EAAE;gBACxE,wGAAwG;gBACxG,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;oBAClC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACrB,sCAAsC;gBACtC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,MAAW,CAAC;YACrB,CAAC;SACF;KACF,CAAC,CAAC;IACH,iFAAiF;IACjF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAW;QAChC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PortalManifestSchema } from './portal-manifest.schema.js';
|
|
2
|
+
// Re-export relevant manifest utilities and types for external use
|
|
3
|
+
export { loadPortalManifest, } from './load-portal-manifest.js';
|
|
4
|
+
export { createPortalManifestFromPackage } from './create-portal-manifest.js';
|
|
5
|
+
// Helper to define a typed portal manifest function
|
|
6
|
+
export const definePortalManifest = (fn) => fn;
|
|
7
|
+
export { PortalManifestSchema, PortalManifestBuildSchema, } from './portal-manifest.schema.js';
|
|
8
|
+
/**
|
|
9
|
+
* Validates a portal manifest object against the PortalManifestSchema.
|
|
10
|
+
*
|
|
11
|
+
* @param manifest - The manifest object to validate.
|
|
12
|
+
* @returns The validated manifest object (typed) if valid.
|
|
13
|
+
* @throws ZodError if validation fails.
|
|
14
|
+
*
|
|
15
|
+
* Use this utility to ensure a manifest conforms to the expected schema before further processing.
|
|
16
|
+
*/
|
|
17
|
+
export function validatePortalManifest(manifest) {
|
|
18
|
+
// Throws if validation fails; returns typed manifest if valid
|
|
19
|
+
return PortalManifestSchema.parse(manifest);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=portal-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/portal-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,mEAAmE;AACnE,OAAO,EACL,kBAAkB,GAGnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,oDAAoD;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAqC,EAAuB,EAAE,EAAE,CAClG,EAAE,CAAC;AAEL,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAG1B,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACtD,8DAA8D;IAC9D,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for validating the build section of the PortalManifest object.
|
|
3
|
+
*
|
|
4
|
+
* This schema defines the structure and types for the build metadata used in the portal manifest.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* - Maintainers: Update this schema if the build contract changes.
|
|
8
|
+
* - This schema is the canonical source for portal build validation and structure.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
export const PortalManifestBuildSchema = z.object({
|
|
12
|
+
// Main entry point for the portal (required)
|
|
13
|
+
templateEntry: z
|
|
14
|
+
.string({
|
|
15
|
+
required_error: 'templateEntry is required in build section',
|
|
16
|
+
invalid_type_error: 'templateEntry must be a string',
|
|
17
|
+
})
|
|
18
|
+
.describe('Main entry point for the portal'),
|
|
19
|
+
// Schema file for portal validation (required)
|
|
20
|
+
schemaEntry: z
|
|
21
|
+
.string({
|
|
22
|
+
required_error: 'schemaEntry is required in build section',
|
|
23
|
+
invalid_type_error: 'schemaEntry must be a string',
|
|
24
|
+
})
|
|
25
|
+
.describe('Schema file for portal validation'),
|
|
26
|
+
// Asset path for dev/preview builds (optional)
|
|
27
|
+
assetPath: z
|
|
28
|
+
.string({
|
|
29
|
+
invalid_type_error: 'assetPath must be a string',
|
|
30
|
+
})
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Asset path for dev/preview builds'),
|
|
33
|
+
// GitHub repo URL or local git remote (optional)
|
|
34
|
+
githubRepo: z
|
|
35
|
+
.string({
|
|
36
|
+
invalid_type_error: 'githubRepo must be a string',
|
|
37
|
+
})
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('GitHub repo URL or local git remote'),
|
|
40
|
+
// Version from package.json (required)
|
|
41
|
+
version: z
|
|
42
|
+
.string({
|
|
43
|
+
required_error: 'version is required in build section',
|
|
44
|
+
invalid_type_error: 'version must be a string',
|
|
45
|
+
})
|
|
46
|
+
.describe('Version from package.json'),
|
|
47
|
+
// Current build timestamp (ISO8601, required)
|
|
48
|
+
timestamp: z
|
|
49
|
+
.string({
|
|
50
|
+
required_error: 'timestamp is required in build section',
|
|
51
|
+
invalid_type_error: 'timestamp must be a string',
|
|
52
|
+
})
|
|
53
|
+
.describe('Current build timestamp (ISO8601)'),
|
|
54
|
+
// Current git commit SHA (required)
|
|
55
|
+
commitSha: z
|
|
56
|
+
.string({
|
|
57
|
+
required_error: 'commitSha is required in build section',
|
|
58
|
+
invalid_type_error: 'commitSha must be a string',
|
|
59
|
+
})
|
|
60
|
+
.describe('Current git commit SHA'),
|
|
61
|
+
// Optional build annotations (key-value pairs)
|
|
62
|
+
annotations: z
|
|
63
|
+
.record(z.string(), {
|
|
64
|
+
invalid_type_error: 'annotations must be a record of string values',
|
|
65
|
+
})
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('Optional build annotations'),
|
|
68
|
+
// Optional project homepage
|
|
69
|
+
projectPage: z
|
|
70
|
+
.string({
|
|
71
|
+
invalid_type_error: 'projectPage must be a string',
|
|
72
|
+
})
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Optional project homepage'),
|
|
75
|
+
// List of allowed asset extensions (with leading dot, required)
|
|
76
|
+
allowedExtensions: z
|
|
77
|
+
.array(z.string({
|
|
78
|
+
invalid_type_error: 'Each allowed extension must be a string',
|
|
79
|
+
}), {
|
|
80
|
+
required_error: 'allowedExtensions is required in build section',
|
|
81
|
+
invalid_type_error: 'allowedExtensions must be an array of strings',
|
|
82
|
+
})
|
|
83
|
+
.describe('List of allowed asset extensions (with leading dot)'),
|
|
84
|
+
// Optional schema for the portal (record of unknown values)
|
|
85
|
+
schema: z
|
|
86
|
+
.record(z.unknown(), {
|
|
87
|
+
invalid_type_error: 'schema must be a record of unknown values',
|
|
88
|
+
})
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('Optional schema for the portal'),
|
|
91
|
+
// Optional configuration for the portal (record of unknown values)
|
|
92
|
+
config: z
|
|
93
|
+
.record(z.unknown(), {
|
|
94
|
+
invalid_type_error: 'config must be a record of unknown values',
|
|
95
|
+
})
|
|
96
|
+
.optional()
|
|
97
|
+
.describe('Optional configuration for the portal'),
|
|
98
|
+
});
|
|
99
|
+
/**
|
|
100
|
+
* Zod schema for validating the PortalManifest object.
|
|
101
|
+
*
|
|
102
|
+
* This schema defines the structure and types for the portal manifest used in the Fusion Framework CLI.
|
|
103
|
+
* It ensures that the manifest adheres to expected types and provides sensible defaults for build metadata.
|
|
104
|
+
*
|
|
105
|
+
* @remarks
|
|
106
|
+
* - Maintainers: Update this schema if the portal manifest contract changes.
|
|
107
|
+
* - This schema is the canonical source for portal manifest validation and structure.
|
|
108
|
+
*/
|
|
109
|
+
export const PortalManifestSchema = z.object({
|
|
110
|
+
// Short app key (unscoped, derived from package name, required)
|
|
111
|
+
name: z
|
|
112
|
+
.string({
|
|
113
|
+
required_error: 'name is required in portal manifest',
|
|
114
|
+
invalid_type_error: 'name must be a string',
|
|
115
|
+
})
|
|
116
|
+
.describe('Short app key (unscoped, derived from package name)'),
|
|
117
|
+
// Full package name, may include scope (optional)
|
|
118
|
+
displayName: z
|
|
119
|
+
.string({
|
|
120
|
+
invalid_type_error: 'displayName must be a string',
|
|
121
|
+
})
|
|
122
|
+
.optional()
|
|
123
|
+
.describe('Full package name, may include scope'),
|
|
124
|
+
// Description of the portal (optional)
|
|
125
|
+
description: z
|
|
126
|
+
.string({
|
|
127
|
+
invalid_type_error: 'description must be a string',
|
|
128
|
+
})
|
|
129
|
+
.optional()
|
|
130
|
+
.describe('Description of the portal'),
|
|
131
|
+
// Build section (required, validated by PortalManifestBuildSchema)
|
|
132
|
+
build: PortalManifestBuildSchema,
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=portal-manifest.schema.js.map
|