@equinor/fusion-framework-cli 10.0.0-next-663bed8344cc2ca0111705b05045173328b3104d → 10.0.0-next-65f4bbf022d22b529abd095acd74ab218499fb8b

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.
Files changed (181) hide show
  1. package/CHANGELOG.md +10 -15
  2. package/bin/cli.mjs +1 -1
  3. package/dist/bin/build-application.js +65 -0
  4. package/dist/bin/build-application.js.map +1 -0
  5. package/dist/bin/bundle-application.js +56 -0
  6. package/dist/bin/bundle-application.js.map +1 -0
  7. package/dist/bin/create-dev-serve.js +123 -0
  8. package/dist/bin/create-dev-serve.js.map +1 -0
  9. package/dist/bin/create-export-config.js +50 -0
  10. package/dist/bin/create-export-config.js.map +1 -0
  11. package/dist/bin/create-export-manifest.js +77 -0
  12. package/dist/bin/create-export-manifest.js.map +1 -0
  13. package/dist/bin/dev-portal/AppLoader.js +77 -0
  14. package/dist/bin/dev-portal/AppLoader.js.map +1 -0
  15. package/dist/bin/dev-portal/BookMarkSideSheet.js +15 -0
  16. package/dist/bin/dev-portal/BookMarkSideSheet.js.map +1 -0
  17. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +41 -0
  18. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +1 -0
  19. package/dist/bin/dev-portal/ContextSelector/index.js +2 -0
  20. package/dist/bin/dev-portal/ContextSelector/index.js.map +1 -0
  21. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +171 -0
  22. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +1 -0
  23. package/dist/bin/dev-portal/EquinorLoader.js +14 -0
  24. package/dist/bin/dev-portal/EquinorLoader.js.map +1 -0
  25. package/dist/bin/dev-portal/ErrorViewer.js +7 -0
  26. package/dist/bin/dev-portal/ErrorViewer.js.map +1 -0
  27. package/dist/bin/dev-portal/FusionLogo.js +4 -0
  28. package/dist/bin/dev-portal/FusionLogo.js.map +1 -0
  29. package/dist/bin/dev-portal/Header.js +37 -0
  30. package/dist/bin/dev-portal/Header.js.map +1 -0
  31. package/dist/bin/dev-portal/PersonSideSheet/index.js +32 -0
  32. package/dist/bin/dev-portal/PersonSideSheet/index.js.map +1 -0
  33. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +16 -0
  34. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +1 -0
  35. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +16 -0
  36. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +1 -0
  37. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +16 -0
  38. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +1 -0
  39. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +19 -0
  40. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +1 -0
  41. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js +30 -0
  42. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js.map +1 -0
  43. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js +3 -0
  44. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js.map +1 -0
  45. package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js +2 -0
  46. package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js.map +1 -0
  47. package/dist/bin/dev-portal/Router.js +59 -0
  48. package/dist/bin/dev-portal/Router.js.map +1 -0
  49. package/dist/bin/dev-portal/config.js +69 -0
  50. package/dist/bin/dev-portal/config.js.map +1 -0
  51. package/dist/bin/dev-portal/main.js +13 -0
  52. package/dist/bin/dev-portal/main.js.map +1 -0
  53. package/dist/bin/dev-portal/resources/fallback-photo.svg.js +3 -0
  54. package/dist/bin/dev-portal/resources/fallback-photo.svg.js.map +1 -0
  55. package/dist/bin/dev-portal/useAppContextNavigation.js +68 -0
  56. package/dist/bin/dev-portal/useAppContextNavigation.js.map +1 -0
  57. package/dist/bin/main.app.js +171 -0
  58. package/dist/bin/main.app.js.map +1 -0
  59. package/dist/bin/main.js +20 -0
  60. package/dist/bin/main.js.map +1 -0
  61. package/dist/bin/public/assets/{index-Cb85_fOB.js → index-D0eBBcR8.js} +483 -483
  62. package/dist/bin/public/index.html +1 -1
  63. package/dist/bin/publish-application.js +104 -0
  64. package/dist/bin/publish-application.js.map +1 -0
  65. package/dist/bin/tag-application.js +82 -0
  66. package/dist/bin/tag-application.js.map +1 -0
  67. package/dist/bin/upload-application.js +72 -0
  68. package/dist/bin/upload-application.js.map +1 -0
  69. package/dist/bin/upload-export-config.js +87 -0
  70. package/dist/bin/upload-export-config.js.map +1 -0
  71. package/dist/bin/utils/execute-command.js +23 -0
  72. package/dist/bin/utils/execute-command.js.map +1 -0
  73. package/dist/bin/utils/format.js +17 -0
  74. package/dist/bin/utils/format.js.map +1 -0
  75. package/dist/bin/utils/getEndpointUrl.js +49 -0
  76. package/dist/bin/utils/getEndpointUrl.js.map +1 -0
  77. package/dist/bin/utils/index.js +14 -0
  78. package/dist/bin/utils/index.js.map +1 -0
  79. package/dist/bin/utils/isAppRegistered.js +35 -0
  80. package/dist/bin/utils/isAppRegistered.js.map +1 -0
  81. package/dist/bin/utils/load-app-config.js +35 -0
  82. package/dist/bin/utils/load-app-config.js.map +1 -0
  83. package/dist/bin/utils/load-manifest.js +40 -0
  84. package/dist/bin/utils/load-manifest.js.map +1 -0
  85. package/dist/bin/utils/load-package.js +24 -0
  86. package/dist/bin/utils/load-package.js.map +1 -0
  87. package/dist/bin/utils/load-vite-config.js +54 -0
  88. package/dist/bin/utils/load-vite-config.js.map +1 -0
  89. package/dist/bin/utils/proxy-request-logger.js +34 -0
  90. package/dist/bin/utils/proxy-request-logger.js.map +1 -0
  91. package/dist/bin/utils/publishAppConfig.js +36 -0
  92. package/dist/bin/utils/publishAppConfig.js.map +1 -0
  93. package/dist/bin/utils/requireToken.js +10 -0
  94. package/dist/bin/utils/requireToken.js.map +1 -0
  95. package/dist/bin/utils/spinner.js +77 -0
  96. package/dist/bin/utils/spinner.js.map +1 -0
  97. package/dist/bin/utils/tagAppBundle.js +35 -0
  98. package/dist/bin/utils/tagAppBundle.js.map +1 -0
  99. package/dist/bin/utils/uploadAppBundle.js +54 -0
  100. package/dist/bin/utils/uploadAppBundle.js.map +1 -0
  101. package/dist/lib/app-config.js +1 -1
  102. package/dist/lib/app-config.js.map +1 -1
  103. package/dist/schemas.js +14 -0
  104. package/dist/schemas.js.map +1 -0
  105. package/dist/types/bin/build-application.d.ts +13 -0
  106. package/dist/types/bin/bundle-application.d.ts +4 -0
  107. package/dist/types/bin/create-dev-serve.d.ts +11 -0
  108. package/dist/types/bin/create-export-config.d.ts +13 -0
  109. package/dist/types/bin/create-export-manifest.d.ts +16 -0
  110. package/dist/types/bin/dev-portal/AppLoader.d.ts +11 -0
  111. package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +6 -0
  112. package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +8 -0
  113. package/dist/types/bin/dev-portal/ContextSelector/index.d.ts +1 -0
  114. package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +15 -0
  115. package/dist/types/bin/dev-portal/EquinorLoader.d.ts +5 -0
  116. package/dist/types/bin/dev-portal/ErrorViewer.d.ts +4 -0
  117. package/dist/types/bin/dev-portal/FusionLogo.d.ts +5 -0
  118. package/dist/types/bin/dev-portal/Header.d.ts +3 -0
  119. package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +11 -0
  120. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +6 -0
  121. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +5 -0
  122. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +5 -0
  123. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +5 -0
  124. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +6 -0
  125. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/index.d.ts +2 -0
  126. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/types.d.ts +5 -0
  127. package/dist/types/bin/dev-portal/Router.d.ts +1 -0
  128. package/dist/types/bin/dev-portal/config.d.ts +3 -0
  129. package/dist/types/bin/dev-portal/main.d.ts +1 -0
  130. package/dist/types/bin/dev-portal/resources/fallback-photo.svg.d.ts +2 -0
  131. package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +5 -0
  132. package/dist/types/bin/main.app.d.ts +3 -0
  133. package/dist/types/bin/main.d.ts +1 -0
  134. package/dist/types/bin/publish-application.d.ts +6 -0
  135. package/dist/types/bin/tag-application.d.ts +12 -0
  136. package/dist/types/bin/upload-application.d.ts +6 -0
  137. package/dist/types/bin/upload-export-config.d.ts +10 -0
  138. package/dist/types/bin/utils/execute-command.d.ts +8 -0
  139. package/dist/types/bin/utils/format.d.ts +8 -0
  140. package/dist/types/bin/utils/getEndpointUrl.d.ts +10 -0
  141. package/dist/types/bin/utils/index.d.ts +14 -0
  142. package/dist/types/bin/utils/isAppRegistered.d.ts +5 -0
  143. package/dist/types/bin/utils/load-app-config.d.ts +10 -0
  144. package/dist/types/bin/utils/load-manifest.d.ts +10 -0
  145. package/dist/types/bin/utils/load-package.d.ts +5 -0
  146. package/dist/types/bin/utils/load-vite-config.d.ts +10 -0
  147. package/dist/types/bin/utils/proxy-request-logger.d.ts +15 -0
  148. package/dist/types/bin/utils/publishAppConfig.d.ts +9 -0
  149. package/dist/types/bin/utils/requireToken.d.ts +4 -0
  150. package/dist/types/bin/utils/spinner.d.ts +20 -0
  151. package/dist/types/bin/utils/tagAppBundle.d.ts +7 -0
  152. package/dist/types/bin/utils/uploadAppBundle.d.ts +7 -0
  153. package/dist/types/{app-config.d.ts → lib/app-config.d.ts} +1 -1
  154. package/dist/types/{plugins → lib/plugins}/app-proxy/app-proxy-plugin.d.ts +1 -1
  155. package/dist/types/schemas.d.ts +30 -0
  156. package/dist/types/version.d.ts +1 -0
  157. package/dist/version.js +3 -0
  158. package/dist/version.js.map +1 -0
  159. package/package.json +20 -23
  160. package/dist/bin/main.mjs +0 -2003
  161. /package/dist/types/{app-manifest.d.ts → lib/app-manifest.d.ts} +0 -0
  162. /package/dist/types/{app-package.d.ts → lib/app-package.d.ts} +0 -0
  163. /package/dist/types/{index.d.ts → lib/index.d.ts} +0 -0
  164. /package/dist/types/{plugins → lib/plugins}/app-assets/app-asset-plugin.d.ts +0 -0
  165. /package/dist/types/{plugins → lib/plugins}/app-assets/emit-asset.d.ts +0 -0
  166. /package/dist/types/{plugins → lib/plugins}/app-assets/extension-filter-pattern.d.ts +0 -0
  167. /package/dist/types/{plugins → lib/plugins}/app-assets/index.d.ts +0 -0
  168. /package/dist/types/{plugins → lib/plugins}/app-assets/read-asset-content.d.ts +0 -0
  169. /package/dist/types/{plugins → lib/plugins}/app-assets/resolve-asset-id.d.ts +0 -0
  170. /package/dist/types/{plugins → lib/plugins}/app-assets/static.d.ts +0 -0
  171. /package/dist/types/{plugins → lib/plugins}/app-proxy/index.d.ts +0 -0
  172. /package/dist/types/{plugins → lib/plugins}/external-public/external-public-plugin.d.ts +0 -0
  173. /package/dist/types/{plugins → lib/plugins}/external-public/index.d.ts +0 -0
  174. /package/dist/types/{utils → lib/utils}/assert.d.ts +0 -0
  175. /package/dist/types/{utils → lib/utils}/config.d.ts +0 -0
  176. /package/dist/types/{utils → lib/utils}/expect.d.ts +0 -0
  177. /package/dist/types/{utils → lib/utils}/file-exists.d.ts +0 -0
  178. /package/dist/types/{utils → lib/utils}/ts-transpile.d.ts +0 -0
  179. /package/dist/types/{utils → lib/utils}/types.d.ts +0 -0
  180. /package/dist/types/{vite-config.d.ts → lib/vite-config.d.ts} +0 -0
  181. /package/dist/types/{vite-logger.d.ts → lib/vite-logger.d.ts} +0 -0
@@ -0,0 +1,40 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Spinner } from './spinner.js';
11
+ import { formatPath, chalk } from './format.js';
12
+ import { createManifest, createManifestFromPackage } from '../../lib/app-manifest.js';
13
+ export const loadAppManifest = (env, pkg, options) => __awaiter(void 0, void 0, void 0, function* () {
14
+ const spinner = Spinner.Clone();
15
+ try {
16
+ spinner.start('create application manifest');
17
+ const baseManifest = yield createManifestFromPackage(pkg);
18
+ spinner.info('created application manifest from package.json');
19
+ // TODO - this need to come from the config
20
+ if (env.command !== 'serve') {
21
+ baseManifest.build.entryPoint =
22
+ pkg.packageJson.type === 'module' ? 'app-bundle.js' : 'app-bundle.mjs';
23
+ }
24
+ spinner.info(`generating manifest with ${chalk.red.dim(env.command)} command in ${chalk.green.dim(env.mode)} mode`);
25
+ const manifest = yield createManifest(env, baseManifest, { file: options === null || options === void 0 ? void 0 : options.file });
26
+ if (manifest.path) {
27
+ spinner.succeed(`Created manifest from ${formatPath(manifest.path, { relative: true })}`);
28
+ }
29
+ else {
30
+ spinner.succeed(chalk.dim('no local manifest config applied, using default generated'));
31
+ }
32
+ return manifest;
33
+ }
34
+ catch (err) {
35
+ spinner.fail(`failed to resolve manifest ${(options === null || options === void 0 ? void 0 : options.file) ? formatPath(options === null || options === void 0 ? void 0 : options.file) : ''}`);
36
+ throw err;
37
+ }
38
+ });
39
+ export default loadAppManifest;
40
+ //# sourceMappingURL=load-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-manifest.js","sourceRoot":"","sources":["../../../src/bin/utils/load-manifest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAOtF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,GAAsB,EACtB,GAAuB,EACvB,OAEC,EACgD,EAAE;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,IAAI,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAE/D,2CAA2C;QAC3C,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC1B,YAAY,CAAC,KAAM,CAAC,UAAU;gBAC1B,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,IAAI,CACR,4BAA4B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CACxG,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAAC;QAElF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,CACX,yBAAyB,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAC3E,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CACR,8BAA8B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC;QACF,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,24 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { dirname } from 'node:path';
11
+ import { Spinner } from './spinner.js';
12
+ import { resolveAppPackage } from '../../lib/app-package.js';
13
+ import { chalk } from './format.js';
14
+ export const loadPackage = () => __awaiter(void 0, void 0, void 0, function* () {
15
+ const spinner = Spinner.Current;
16
+ spinner.start('resolve application package');
17
+ const pkg = yield resolveAppPackage();
18
+ spinner.succeed();
19
+ spinner.info('📦', chalk.yellowBright([pkg.packageJson.name, pkg.packageJson.version].join('@')));
20
+ const packageDirname = dirname(pkg.path);
21
+ spinner.info(`🏠 ${chalk.blueBright(packageDirname)}`);
22
+ return Object.assign(Object.assign({}, pkg), { root: packageDirname });
23
+ });
24
+ //# sourceMappingURL=load-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-package.js","sourceRoot":"","sources":["../../../src/bin/utils/load-package.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,OAAO,CAAC,IAAI,CACR,IAAI,EACJ,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvD,uCACO,GAAG,KACN,IAAI,EAAE,cAAc,IACtB;AACN,CAAC,CAAA,CAAC"}
@@ -0,0 +1,54 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { AssertionError } from 'node:assert';
11
+ import { Spinner } from './spinner.js';
12
+ import { formatPath, chalk } from './format.js';
13
+ import { createAppViteConfig, createViteConfig } from '../../lib/vite-config.js';
14
+ import { mergeConfig } from 'vite';
15
+ export const loadViteConfig = (env, options) => __awaiter(void 0, void 0, void 0, function* () {
16
+ const spinner = Spinner.Current;
17
+ try {
18
+ spinner.start('load local vite configuration');
19
+ const appViteConfig = yield createAppViteConfig(env, {
20
+ file: options === null || options === void 0 ? void 0 : options.file,
21
+ });
22
+ spinner.succeed();
23
+ if (appViteConfig === null || appViteConfig === void 0 ? void 0 : appViteConfig.path) {
24
+ spinner.info(`🛠️ ${formatPath(appViteConfig.path, { relative: true })}`);
25
+ }
26
+ else if (options === null || options === void 0 ? void 0 : options.file) {
27
+ spinner.fail(`failed to load vite config from ${formatPath(options === null || options === void 0 ? void 0 : options.file)}`);
28
+ throw new AssertionError({
29
+ message: `Expected to load config from ${formatPath(options === null || options === void 0 ? void 0 : options.file)}`,
30
+ expected: '<UserConfig>',
31
+ });
32
+ }
33
+ else {
34
+ spinner.info(chalk.dim(`no local vite config applied, using built-in see ${formatPath('https://vitejs.dev/config/')}`));
35
+ }
36
+ spinner.start('create vite configuration');
37
+ const viteConfig = yield createViteConfig(env);
38
+ spinner.succeed();
39
+ if (appViteConfig === null || appViteConfig === void 0 ? void 0 : appViteConfig.config) {
40
+ return {
41
+ viteConfig: mergeConfig(viteConfig, appViteConfig.config),
42
+ path: appViteConfig.path,
43
+ };
44
+ }
45
+ else {
46
+ return { viteConfig };
47
+ }
48
+ }
49
+ catch (err) {
50
+ spinner.fail();
51
+ throw err;
52
+ }
53
+ });
54
+ //# sourceMappingURL=load-vite-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-vite-config.js","sourceRoot":"","sources":["../../../src/bin/utils/load-vite-config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,GAAsB,EACtB,OAEC,EACH,EAAE;IACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE;YACjD,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,mCAAmC,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7E,MAAM,IAAI,cAAc,CAAC;gBACrB,OAAO,EAAE,gCAAgC,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,EAAE;gBACpE,QAAQ,EAAE,cAAc;aAC3B,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,GAAG,CACL,oDAAoD,UAAU,CAC1D,4BAA4B,CAC/B,EAAE,CACN,CACJ,CAAC;QACN,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,OAAO,EAAE,CAAC;QAElB,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAE,CAAC;YACxB,OAAO;gBACH,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;gBACzD,IAAI,EAAE,aAAa,CAAC,IAAI;aAC3B,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,EAAE,UAAU,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Spinner } from './spinner.js';
2
+ import { formatPath, chalk } from './format.js';
3
+ /**
4
+ * Logs the status of a proxy request using a spinner.
5
+ *
6
+ * @param proxyReq - The proxy request to log.
7
+ *
8
+ * The function attaches event listeners to the proxy request to handle
9
+ * 'response' and 'error' events. It uses a spinner to indicate the status
10
+ * of the request:
11
+ * - On a successful response (status code < 400), the spinner succeeds.
12
+ * - On a response with a status code >= 400, the spinner warns with the status message.
13
+ * - On an error, the spinner fails.
14
+ */
15
+ export const proxyRequestLogger = (proxyReq) => {
16
+ const spinner = Spinner.Clone();
17
+ spinner.ora.suffixText = formatPath([proxyReq.protocol, '//', proxyReq.host, proxyReq.path].join(''));
18
+ spinner.start('proxy request');
19
+ proxyReq.on('response', (res) => {
20
+ var _a;
21
+ if (Number(res.statusCode) < 400) {
22
+ spinner.succeed();
23
+ }
24
+ else {
25
+ spinner.warn(chalk.yellow((_a = res.statusMessage) !== null && _a !== void 0 ? _a : `${res.statusCode} `));
26
+ }
27
+ spinner.stop();
28
+ });
29
+ proxyReq.on('error', () => {
30
+ spinner.fail();
31
+ });
32
+ };
33
+ export default proxyRequestLogger;
34
+ //# sourceMappingURL=proxy-request-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-request-logger.js","sourceRoot":"","sources":["../../../src/bin/utils/proxy-request-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAuB,EAAE,EAAE;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAC/B,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACnE,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;;QAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAA,GAAG,CAAC,aAAa,mCAAI,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,36 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * Publishes app config to the apps-service endpoint
12
+ * @param endpoint string The endpoint to upload to
13
+ * @param appKey The application key
14
+ * @param config Object with app config
15
+ * @returns HTTP response as json
16
+ */
17
+ export const publishAppConfig = (endpoint, appKey, config) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const requestConfig = yield fetch(endpoint, {
19
+ method: 'PUT',
20
+ body: JSON.stringify(config),
21
+ headers: {
22
+ Authorization: `Bearer ${process.env.FUSION_TOKEN}`,
23
+ 'Content-Type': 'application/json',
24
+ },
25
+ });
26
+ if (requestConfig.status === 410) {
27
+ throw new Error(`App ${appKey} is deleted from apps-service. HTTP status ${requestConfig.status}, ${requestConfig.statusText}`);
28
+ }
29
+ else if (!requestConfig.ok || requestConfig.status >= 400) {
30
+ const response = yield requestConfig.json();
31
+ console.log(response);
32
+ throw new Error(`Failed to upload config. HTTP status ${requestConfig.status}, ${requestConfig.statusText}`);
33
+ }
34
+ return requestConfig.json();
35
+ });
36
+ //# sourceMappingURL=publishAppConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishAppConfig.js","sourceRoot":"","sources":["../../../src/bin/utils/publishAppConfig.ts"],"names":[],"mappings":";;;;;;;;;AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAO,QAAgB,EAAE,MAAc,EAAE,MAAoB,EAAE,EAAE;IAC7F,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACxC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YACnD,cAAc,EAAE,kBAAkB;SACrC;KACJ,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACX,OAAO,MAAM,8CAA8C,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,UAAU,EAAE,CACjH,CAAC;IACN,CAAC;SAAM,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,aAAa,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,KAAK,CACX,wCAAwC,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,UAAU,EAAE,CAC9F,CAAC;IACN,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAA,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Make sure the user has a valid azure token.
3
+ */
4
+ export const requireToken = () => {
5
+ var _a;
6
+ if (!((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.FUSION_TOKEN)) {
7
+ throw new Error('Missing required environment variable FUSION_TOKEN. Please set it before running this command.');
8
+ }
9
+ };
10
+ //# sourceMappingURL=requireToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireToken.js","sourceRoot":"","sources":["../../../src/bin/utils/requireToken.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;;IAC7B,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,YAAY,CAAA,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACX,gGAAgG,CACnG,CAAC;IACN,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _Spinner_ora;
13
+ import ora from 'ora';
14
+ const parseArgs = (args) => args.length ? args.join(' ') : undefined;
15
+ const originalConsole = console;
16
+ export class Spinner {
17
+ get ora() {
18
+ return __classPrivateFieldGet(this, _Spinner_ora, "f");
19
+ }
20
+ set attachConsole(value) {
21
+ if (value) {
22
+ console.log = this.info.bind(this);
23
+ console.info = this.info.bind(this);
24
+ }
25
+ else {
26
+ console = originalConsole;
27
+ }
28
+ }
29
+ static Global(options) {
30
+ _spinner = new Spinner(options);
31
+ return _spinner;
32
+ }
33
+ static Clone(spinner) {
34
+ const { prefixText } = spinner || _spinner;
35
+ return new Spinner({ prefixText });
36
+ }
37
+ static get Current() {
38
+ return _spinner;
39
+ }
40
+ static set Current(spinner) {
41
+ _spinner = spinner;
42
+ }
43
+ constructor(options) {
44
+ _Spinner_ora.set(this, void 0);
45
+ __classPrivateFieldSet(this, _Spinner_ora, ora(options), "f");
46
+ }
47
+ get prefixText() {
48
+ return __classPrivateFieldGet(this, _Spinner_ora, "f").prefixText;
49
+ }
50
+ info(...args) {
51
+ __classPrivateFieldGet(this, _Spinner_ora, "f").info(parseArgs(args));
52
+ }
53
+ succeed(...args) {
54
+ __classPrivateFieldGet(this, _Spinner_ora, "f").succeed(parseArgs(args));
55
+ }
56
+ start(...args) {
57
+ __classPrivateFieldGet(this, _Spinner_ora, "f").start(parseArgs(args));
58
+ }
59
+ fail(...args) {
60
+ __classPrivateFieldGet(this, _Spinner_ora, "f").fail(parseArgs(args));
61
+ }
62
+ warn(...args) {
63
+ __classPrivateFieldGet(this, _Spinner_ora, "f").warn(parseArgs(args));
64
+ }
65
+ clear() {
66
+ __classPrivateFieldGet(this, _Spinner_ora, "f").clear();
67
+ }
68
+ stop() {
69
+ __classPrivateFieldGet(this, _Spinner_ora, "f").stop();
70
+ }
71
+ stopAndPersist(...args) {
72
+ __classPrivateFieldGet(this, _Spinner_ora, "f").stopAndPersist(...args);
73
+ }
74
+ }
75
+ _Spinner_ora = new WeakMap();
76
+ let _spinner = new Spinner();
77
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/bin/utils/spinner.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,GAA0B,MAAM,KAAK,CAAC;AAE7C,MAAM,SAAS,GAAG,CAAC,IAAc,EAAsB,EAAE,CACrD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE7C,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,MAAM,OAAO,OAAO;IAGhB,IAAI,GAAG;QACH,OAAO,uBAAA,IAAI,oBAAK,CAAC;IACrB,CAAC;IAED,IAAI,aAAa,CAAC,KAAc;QAC5B,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,eAAe,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAiB;QAC3B,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAiB;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,QAAQ,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,OAAO;QACd,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,KAAK,OAAO,CAAC,OAAgB;QAC/B,QAAQ,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,YAAY,OAAiB;QAjC7B,+BAAU;QAkCN,uBAAA,IAAI,gBAAQ,GAAG,CAAC,OAAO,CAAC,MAAA,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,uBAAA,IAAI,oBAAK,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,GAAG,IAAc;QAClB,uBAAA,IAAI,oBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,IAAc;QACrB,uBAAA,IAAI,oBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,GAAG,IAAc;QACnB,uBAAA,IAAI,oBAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,GAAG,IAAc;QAClB,uBAAA,IAAI,oBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAG,IAAc;QAClB,uBAAA,IAAI,oBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,KAAK;QACD,uBAAA,IAAI,oBAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,IAAI;QACA,uBAAA,IAAI,oBAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACD,cAAc,CAAC,GAAG,IAAuC;QACrD,uBAAA,IAAI,oBAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;CACJ;;AAED,IAAI,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * Send request to apps-service to tag a bundle.
12
+ * @param endpoint string The endpoint to send request to.
13
+ * @param version string The version to tag the bundle with.
14
+ * @returns Response object as json.
15
+ */
16
+ export const tagAppBundle = (endpoint, version) => __awaiter(void 0, void 0, void 0, function* () {
17
+ const requestTag = yield fetch(endpoint, {
18
+ method: 'PUT',
19
+ body: JSON.stringify({ version }),
20
+ headers: {
21
+ Authorization: `Bearer ${process.env.FUSION_TOKEN}`,
22
+ 'Content-Type': 'application/json',
23
+ },
24
+ });
25
+ if (requestTag.status === 404) {
26
+ throw new Error(`Failed to tag bundle, make sure version ${version} exist. HTTP status ${requestTag.status} - ${requestTag.statusText}`);
27
+ }
28
+ if (requestTag.status !== 200) {
29
+ const response = yield requestTag.json();
30
+ console.log(response);
31
+ throw new Error(`Failed to tag bundle. HTTP status ${requestTag.status}, ${requestTag.statusText}`);
32
+ }
33
+ return requestTag.json();
34
+ });
35
+ //# sourceMappingURL=tagAppBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagAppBundle.js","sourceRoot":"","sources":["../../../src/bin/utils/tagAppBundle.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAO,QAAgB,EAAE,OAAe,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YACnD,cAAc,EAAE,kBAAkB;SACrC;KACJ,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACX,2CAA2C,OAAO,uBAAuB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,UAAU,EAAE,CAC1H,CAAC;IACN,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,KAAK,CACX,qCAAqC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,UAAU,EAAE,CACrF,CAAC;IACN,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC,CAAA,CAAC"}
@@ -0,0 +1,54 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { readFileSync } from 'node:fs';
11
+ /**
12
+ * Function that uploads a zip bundle to the endpoint.
13
+ * @param endpoint string The endpoint to upload to
14
+ * @param bundle string The filename to upload
15
+ * @returns Object
16
+ */
17
+ export const uploadAppBundle = (endpoint, bundle) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const state = {
19
+ buffer: null,
20
+ };
21
+ try {
22
+ state.buffer = readFileSync(bundle);
23
+ }
24
+ catch (_a) {
25
+ throw new Error(`😞 Could not read bundle ${bundle}, does it exist?`);
26
+ }
27
+ const requestBundle = yield fetch(endpoint, {
28
+ method: 'POST',
29
+ body: state.buffer,
30
+ headers: {
31
+ Authorization: `Bearer ${process.env.FUSION_TOKEN}`,
32
+ 'Content-Type': 'application/zip',
33
+ },
34
+ });
35
+ if (requestBundle.status === 401 || requestBundle.status === 403) {
36
+ throw new Error(`This is not allowed for this role on this app. HTTP message: ${requestBundle.statusText}`);
37
+ }
38
+ if (requestBundle.status === 404) {
39
+ throw new Error(`This app do not exist. HTTP message: ${requestBundle.statusText}`);
40
+ }
41
+ if (requestBundle.status === 409) {
42
+ throw new Error(`This version is already published. HTTP message: ${requestBundle.statusText}`);
43
+ }
44
+ if (requestBundle.status === 410) {
45
+ throw new Error(`This app is deleted. HTTP message: ${requestBundle.statusText}`);
46
+ }
47
+ if (!requestBundle.ok) {
48
+ const json = yield requestBundle.json();
49
+ console.error(json);
50
+ throw new Error(`Failed to publish bundle. HTTP status ${requestBundle.status}, ${requestBundle.statusText}`);
51
+ }
52
+ return requestBundle.json();
53
+ });
54
+ //# sourceMappingURL=uploadAppBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadAppBundle.js","sourceRoot":"","sources":["../../../src/bin/utils/uploadAppBundle.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,QAAgB,EAAE,MAAc,EAAE,EAAE;IACtE,MAAM,KAAK,GAA8B;QACrC,MAAM,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,WAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YACnD,cAAc,EAAE,iBAAiB;SACpC;KACJ,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACX,gEAAgE,aAAa,CAAC,UAAU,EAAE,CAC7F,CAAC;IACN,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACX,oDAAoD,aAAa,CAAC,UAAU,EAAE,CACjF,CAAC;IACN,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CACX,yCAAyC,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,UAAU,EAAE,CAC/F,CAAC;IACN,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAA,CAAC"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { loadConfig, initiateConfig, resolveConfig, } from './utils/config.js';
11
11
  import { AssertionError } from './utils/assert.js';
12
- import { ApiAppConfigSchema } from '@equinor/fusion-framework-module-app/schemas.js';
12
+ import { ApiAppConfigSchema } from '../schemas.js';
13
13
  export const appConfigFilename = 'app.config';
14
14
  export const defineAppConfig = (fn) => fn;
15
15
  export const loadAppConfig = (filename) => loadConfig(filename !== null && filename !== void 0 ? filename : appConfigFilename);
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../src/lib/app-config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,UAAU,EAGV,cAAc,EAEd,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAYnG,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAiB,EAAE,EAAE,CAC/C,UAAU,CAAe,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,iBAAiB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,OAEC,EAC0C,EAAE;IAC7C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;YACH,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;IACN,CAAC;IACD,OAAO,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,GAAsB,EACtB,IAAkB,EAClB,OAA8B,EACkB,EAAE;;IAClD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,MAAA,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC;QACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,cAAc,CAAC;YACrB,OAAO,EAAE,gCAAgC,OAAO,CAAC,IAAI,EAAE;YACvD,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../src/lib/app-config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,UAAU,EAGV,cAAc,EAEd,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAYjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAiB,EAAE,EAAE,CAC/C,UAAU,CAAe,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,iBAAiB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,OAEC,EAC0C,EAAE;IAC7C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;YACH,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;IACN,CAAC;IACD,OAAO,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,GAAsB,EACtB,IAAkB,EAClB,OAA8B,EACkB,EAAE;;IAClD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,MAAA,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC;QACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,cAAc,CAAC;YACrB,OAAO,EAAE,gCAAgC,OAAO,CAAC,IAAI,EAAE;YACvD,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAA,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Api config object
4
+ */
5
+ export const ApiAppConfigSchema = z.object({
6
+ environment: z.record(z.any()).optional().default({}),
7
+ endpoints: z
8
+ .record(z.object({
9
+ url: z.string(),
10
+ scopes: z.array(z.string()).optional().default([]),
11
+ }))
12
+ .optional(),
13
+ });
14
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,SAAS,EAAE,CAAC;SACP,MAAM,CACH,CAAC,CAAC,MAAM,CAAC;QACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACrD,CAAC,CACL;SACA,QAAQ,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const buildApplication: (options: {
2
+ configSourceFiles?: {
3
+ app?: string;
4
+ manifest?: string;
5
+ vite?: string;
6
+ };
7
+ outDir: string;
8
+ library?: "react";
9
+ }) => Promise<{
10
+ viteConfig: Record<string, any> | import("vite").UserConfig;
11
+ viteBuild: import("rollup").RollupOutput | import("rollup").RollupOutput[] | import("rollup").RollupWatcher;
12
+ pkg: import("../lib/app-package.js").ResolvedAppPackage;
13
+ }>;
@@ -0,0 +1,4 @@
1
+ export declare const bundleApplication: (options: {
2
+ outDir: string;
3
+ archive: string;
4
+ }) => Promise<void>;
@@ -0,0 +1,11 @@
1
+ export declare const createDevServer: (options: {
2
+ portal: string;
3
+ configSourceFiles: {
4
+ app?: string;
5
+ manifest?: string;
6
+ vite?: string;
7
+ };
8
+ devPortalPath: string;
9
+ port?: number;
10
+ library?: "react";
11
+ }) => Promise<void>;
@@ -0,0 +1,13 @@
1
+ import { ConfigExecuterEnv } from '../lib/utils/config.js';
2
+ export declare const createExportConfig: (options: {
3
+ command?: ConfigExecuterEnv["command"];
4
+ configFile?: string;
5
+ outputFile?: string;
6
+ }) => Promise<{
7
+ environment: Record<string, any>;
8
+ endpoints?: Record<string, {
9
+ url: string;
10
+ scopes: string[];
11
+ }> | undefined;
12
+ }>;
13
+ export default createExportConfig;
@@ -0,0 +1,16 @@
1
+ import { ConfigExecuterEnv } from '../lib/utils/config.js';
2
+ import type { AppManifest } from '@equinor/fusion-framework-module-app';
3
+ export declare const normalizeVersion: (version: string) => {
4
+ major: number;
5
+ minor: number;
6
+ patch: number;
7
+ };
8
+ type CreateManifestOptions = {
9
+ command?: ConfigExecuterEnv['command'];
10
+ configFile?: string;
11
+ outputFile?: string;
12
+ onlyBuild?: boolean;
13
+ };
14
+ export declare const createAppManifest: (options?: CreateManifestOptions) => Promise<AppManifest>;
15
+ export declare const createBuildManifest: (options?: CreateManifestOptions) => Promise<import("@equinor/fusion-framework-module-app").AppBuildManifest | null | undefined>;
16
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * React Functional Component for handling current application
3
+ *
4
+ * this component will set the current app by provided appKey.
5
+ * when the appKey changes, this component will try to initialize the referred application
6
+ * and render it.
7
+ */
8
+ export declare const AppLoader: (props: {
9
+ readonly appKey: string;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export default AppLoader;
@@ -0,0 +1,6 @@
1
+ type BookmarkSideSheetProps = {
2
+ readonly isOpen: boolean;
3
+ onClose(): void;
4
+ };
5
+ export declare const BookmarkSideSheet: ({ isOpen, onClose }: BookmarkSideSheetProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ContextSearchProps } from '@equinor/fusion-react-context-selector';
2
+ /**
3
+ * See fusion-react-component storybook for available attributes
4
+ * @link https://equinor.github.io/fusion-react-components/?path=/docs/data-contextselector--component
5
+ * @returns JSX element
6
+ */
7
+ export declare const ContextSelector: (props: ContextSearchProps) => JSX.Element | null;
8
+ export default ContextSelector;
@@ -0,0 +1 @@
1
+ export { ContextSelector } from './ContextSelector';
@@ -0,0 +1,15 @@
1
+ import { IContextProvider } from '@equinor/fusion-framework-module-context';
2
+ import '@equinor/fusion-framework-app';
3
+ import { ContextResult, ContextResolver } from '@equinor/fusion-react-context-selector';
4
+ /**
5
+ * Hook for querying context and setting resolver for ContextSelector component
6
+ * See React Components storybook for info about ContextSelector component and its resolver
7
+ * @link https://equinor.github.io/fusion-react-components/?path=/docs/data-contextselector--component
8
+ * @return Array<ContextResolver, SetContextCallback>
9
+ */
10
+ export declare const useContextResolver: () => {
11
+ resolver: ContextResolver | null;
12
+ provider: IContextProvider | null;
13
+ currentContext: ContextResult;
14
+ };
15
+ export default useContextResolver;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const EquinorLoader: ({ children, text, }: React.PropsWithChildren<{
3
+ readonly text: string;
4
+ }>) => JSX.Element;
5
+ export default EquinorLoader;
@@ -0,0 +1,4 @@
1
+ export declare const ErrorViewer: ({ error }: {
2
+ readonly error: Error;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ export default ErrorViewer;
@@ -0,0 +1,5 @@
1
+ type FusionLogoProps = Omit<React.SVGProps<SVGSVGElement>, 'viewBox'> & {
2
+ readonly scale?: number;
3
+ };
4
+ export declare const FusionLogo: ({ scale, style }: FusionLogoProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default FusionLogo;
@@ -0,0 +1,3 @@
1
+ import '@material-ui/styles';
2
+ export declare const Header: () => import("react/jsx-runtime").JSX.Element;
3
+ export default Header;
@@ -0,0 +1,11 @@
1
+ type PersonSideSheetProps = {
2
+ readonly azureId?: string;
3
+ readonly isOpen: boolean;
4
+ onClose(): void;
5
+ };
6
+ /**
7
+ * Add Sidesheet with settings for the current user.
8
+ * @param PersonSideSheetProps
9
+ */
10
+ export declare const PersonSideSheet: ({ azureId, isOpen, onClose }: PersonSideSheetProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default PersonSideSheet;
@@ -0,0 +1,6 @@
1
+ import type { SheetContentProps } from './types';
2
+ /**
3
+ * JSX structure for the content of the PersonSidesheet's Features page.
4
+ * @param SheetContentProps
5
+ */
6
+ export declare const FeatureSheetContent: ({ navigate }: SheetContentProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * JSX structure for Feature toggler tab for app features in the PersonSidesheet's Feature page.
3
+ */
4
+ export declare const FeatureTogglerApp: () => import("react/jsx-runtime").JSX.Element;
5
+ export default FeatureTogglerApp;