@equinor/fusion-framework-cli 10.0.0-beta-cli-2ce11df2efed9cbee27355186d6da472253326a7 → 10.0.0-next-9f6eec8c5a4cb3dd430fc6bee227442a3dc28bb8

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 (175) hide show
  1. package/CHANGELOG.md +387 -6
  2. package/README.md +31 -9
  3. package/dist/bin/build-application.js +22 -1
  4. package/dist/bin/build-application.js.map +1 -1
  5. package/dist/bin/bundle-application.js +8 -11
  6. package/dist/bin/bundle-application.js.map +1 -1
  7. package/dist/bin/create-dev-serve.js +89 -117
  8. package/dist/bin/create-dev-serve.js.map +1 -1
  9. package/dist/bin/create-export-config.js +54 -12
  10. package/dist/bin/create-export-config.js.map +1 -1
  11. package/dist/bin/create-export-manifest.js +44 -36
  12. package/dist/bin/create-export-manifest.js.map +1 -1
  13. package/dist/bin/dev-portal/AppLoader.js +23 -0
  14. package/dist/bin/dev-portal/AppLoader.js.map +1 -1
  15. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +17 -2
  16. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +1 -1
  17. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +35 -1
  18. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +1 -1
  19. package/dist/bin/dev-portal/Header.js +1 -0
  20. package/dist/bin/dev-portal/Header.js.map +1 -1
  21. package/dist/bin/dev-portal/PersonSideSheet/index.js +4 -0
  22. package/dist/bin/dev-portal/PersonSideSheet/index.js.map +1 -1
  23. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +4 -0
  24. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +1 -1
  25. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +3 -0
  26. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +1 -1
  27. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +3 -0
  28. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +1 -1
  29. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +3 -0
  30. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +1 -1
  31. package/dist/bin/dev-portal/Router.js +3 -0
  32. package/dist/bin/dev-portal/Router.js.map +1 -1
  33. package/dist/bin/dev-portal/config.js +7 -2
  34. package/dist/bin/dev-portal/config.js.map +1 -1
  35. package/dist/bin/dev-portal/useAppContextNavigation.js +27 -6
  36. package/dist/bin/dev-portal/useAppContextNavigation.js.map +1 -1
  37. package/dist/bin/main.app.js +32 -19
  38. package/dist/bin/main.app.js.map +1 -1
  39. package/dist/bin/main.js +3 -0
  40. package/dist/bin/main.js.map +1 -1
  41. package/dist/bin/public/assets/index-CwGBhRCD.js +5235 -0
  42. package/dist/bin/public/index.html +1 -1
  43. package/dist/bin/publish-application.js +75 -20
  44. package/dist/bin/publish-application.js.map +1 -1
  45. package/dist/bin/tag-application.js +52 -16
  46. package/dist/bin/tag-application.js.map +1 -1
  47. package/dist/bin/upload-application.js +47 -14
  48. package/dist/bin/upload-application.js.map +1 -1
  49. package/dist/bin/utils/{execute-commant.js → execute-command.js} +5 -2
  50. package/dist/bin/utils/execute-command.js.map +1 -0
  51. package/dist/bin/utils/format.js +1 -1
  52. package/dist/bin/utils/format.js.map +1 -1
  53. package/dist/bin/utils/getEndpointUrl.js +49 -0
  54. package/dist/bin/utils/getEndpointUrl.js.map +1 -0
  55. package/dist/bin/utils/index.js +14 -0
  56. package/dist/bin/utils/index.js.map +1 -0
  57. package/dist/bin/utils/isAppRegistered.js +32 -0
  58. package/dist/bin/utils/isAppRegistered.js.map +1 -0
  59. package/dist/bin/utils/load-app-config.js +1 -0
  60. package/dist/bin/utils/load-app-config.js.map +1 -1
  61. package/dist/bin/utils/load-manifest.js +9 -4
  62. package/dist/bin/utils/load-manifest.js.map +1 -1
  63. package/dist/bin/utils/proxy-request-logger.js +34 -0
  64. package/dist/bin/utils/proxy-request-logger.js.map +1 -0
  65. package/dist/bin/utils/publishAppConfig.js +36 -0
  66. package/dist/bin/utils/publishAppConfig.js.map +1 -0
  67. package/dist/bin/utils/requireToken.js +10 -0
  68. package/dist/bin/utils/requireToken.js.map +1 -0
  69. package/dist/bin/utils/spinner.js +10 -0
  70. package/dist/bin/utils/spinner.js.map +1 -1
  71. package/dist/bin/utils/tagAppBundle.js +35 -0
  72. package/dist/bin/utils/tagAppBundle.js.map +1 -0
  73. package/dist/bin/utils/uploadAppBundle.js +54 -0
  74. package/dist/bin/utils/uploadAppBundle.js.map +1 -0
  75. package/dist/lib/app-config.js +3 -1
  76. package/dist/lib/app-config.js.map +1 -1
  77. package/dist/lib/app-manifest.js +97 -15
  78. package/dist/lib/app-manifest.js.map +1 -1
  79. package/dist/lib/app-package.js +52 -5
  80. package/dist/lib/app-package.js.map +1 -1
  81. package/dist/lib/plugins/app-assets/app-asset-plugin.js +102 -0
  82. package/dist/lib/plugins/app-assets/app-asset-plugin.js.map +1 -0
  83. package/dist/lib/plugins/app-assets/emit-asset.js +41 -0
  84. package/dist/lib/plugins/app-assets/emit-asset.js.map +1 -0
  85. package/dist/lib/plugins/app-assets/extension-filter-pattern.js +20 -0
  86. package/dist/lib/plugins/app-assets/extension-filter-pattern.js.map +1 -0
  87. package/dist/lib/plugins/app-assets/index.js +4 -0
  88. package/dist/lib/plugins/app-assets/index.js.map +1 -0
  89. package/dist/lib/plugins/app-assets/read-asset-content.js +34 -0
  90. package/dist/lib/plugins/app-assets/read-asset-content.js.map +1 -0
  91. package/dist/lib/plugins/app-assets/resolve-asset-id.js +63 -0
  92. package/dist/lib/plugins/app-assets/resolve-asset-id.js.map +1 -0
  93. package/dist/lib/plugins/app-assets/static.js +15 -0
  94. package/dist/lib/plugins/app-assets/static.js.map +1 -0
  95. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js +127 -0
  96. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js.map +1 -0
  97. package/dist/lib/plugins/app-proxy/index.js +2 -0
  98. package/dist/lib/plugins/app-proxy/index.js.map +1 -0
  99. package/dist/lib/plugins/external-public/external-public-plugin.js +103 -0
  100. package/dist/lib/plugins/external-public/external-public-plugin.js.map +1 -0
  101. package/dist/lib/plugins/external-public/index.js +2 -0
  102. package/dist/lib/plugins/external-public/index.js.map +1 -0
  103. package/dist/lib/utils/assert.js +2 -1
  104. package/dist/lib/utils/assert.js.map +1 -1
  105. package/dist/lib/utils/config.js +5 -0
  106. package/dist/lib/utils/config.js.map +1 -1
  107. package/dist/lib/vite-config.js +4 -4
  108. package/dist/lib/vite-config.js.map +1 -1
  109. package/dist/lib/vite-logger.js +2 -0
  110. package/dist/lib/vite-logger.js.map +1 -1
  111. package/dist/types/bin/build-application.d.ts +4 -3
  112. package/dist/types/bin/create-dev-serve.d.ts +1 -1
  113. package/dist/types/bin/create-export-config.d.ts +3 -3
  114. package/dist/types/bin/create-export-manifest.d.ts +6 -9
  115. package/dist/types/bin/dev-portal/AppLoader.d.ts +7 -0
  116. package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +5 -0
  117. package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +6 -0
  118. package/dist/types/bin/dev-portal/FusionLogo.d.ts +0 -1
  119. package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +4 -0
  120. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +4 -0
  121. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +3 -0
  122. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +3 -0
  123. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +3 -0
  124. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +4 -5
  125. package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +4 -0
  126. package/dist/types/bin/publish-application.d.ts +1 -1
  127. package/dist/types/bin/tag-application.d.ts +1 -1
  128. package/dist/types/bin/upload-application.d.ts +1 -1
  129. package/dist/types/bin/utils/execute-command.d.ts +8 -0
  130. package/dist/types/bin/utils/format.d.ts +0 -2
  131. package/dist/types/bin/utils/getEndpointUrl.d.ts +10 -0
  132. package/dist/types/bin/utils/index.d.ts +14 -0
  133. package/dist/types/bin/utils/isAppRegistered.d.ts +7 -0
  134. package/dist/types/bin/utils/load-app-config.d.ts +1 -1
  135. package/dist/types/bin/utils/load-manifest.d.ts +3 -2
  136. package/dist/types/bin/utils/proxy-request-logger.d.ts +15 -0
  137. package/dist/types/bin/utils/publishAppConfig.d.ts +9 -0
  138. package/dist/types/bin/utils/requireToken.d.ts +4 -0
  139. package/dist/types/bin/utils/spinner.d.ts +1 -0
  140. package/dist/types/bin/utils/tagAppBundle.d.ts +7 -0
  141. package/dist/types/bin/utils/uploadAppBundle.d.ts +7 -0
  142. package/dist/types/lib/app-config.d.ts +1 -1
  143. package/dist/types/lib/app-manifest.d.ts +30 -2
  144. package/dist/types/lib/app-package.d.ts +34 -3
  145. package/dist/types/lib/plugins/app-assets/app-asset-plugin.d.ts +36 -0
  146. package/dist/types/lib/plugins/app-assets/emit-asset.d.ts +18 -0
  147. package/dist/types/lib/plugins/app-assets/extension-filter-pattern.d.ts +14 -0
  148. package/dist/types/lib/plugins/app-assets/index.d.ts +3 -0
  149. package/dist/types/lib/plugins/app-assets/read-asset-content.d.ts +14 -0
  150. package/dist/types/lib/plugins/app-assets/resolve-asset-id.d.ts +16 -0
  151. package/dist/types/lib/plugins/app-assets/static.d.ts +5 -0
  152. package/dist/types/lib/plugins/app-proxy/app-proxy-plugin.d.ts +70 -0
  153. package/dist/types/lib/plugins/app-proxy/index.d.ts +1 -0
  154. package/dist/types/lib/plugins/external-public/external-public-plugin.d.ts +30 -0
  155. package/dist/types/lib/plugins/external-public/index.d.ts +1 -0
  156. package/dist/types/lib/utils/assert.d.ts +2 -2
  157. package/dist/types/lib/utils/config.d.ts +7 -1
  158. package/dist/types/lib/utils/expect.d.ts +1 -1
  159. package/dist/types/lib/vite-config.d.ts +1 -1
  160. package/dist/types/version.d.ts +1 -1
  161. package/dist/version.js +2 -1
  162. package/dist/version.js.map +1 -1
  163. package/package.json +49 -35
  164. package/dist/bin/dev-proxy.js +0 -89
  165. package/dist/bin/dev-proxy.js.map +0 -1
  166. package/dist/bin/public/assets/index-Cd994U8q.js +0 -3504
  167. package/dist/bin/utils/app-api.js +0 -169
  168. package/dist/bin/utils/app-api.js.map +0 -1
  169. package/dist/bin/utils/execute-commant.js.map +0 -1
  170. package/dist/index.js +0 -12
  171. package/dist/index.js.map +0 -1
  172. package/dist/types/bin/dev-proxy.d.ts +0 -26
  173. package/dist/types/bin/utils/app-api.d.ts +0 -8
  174. package/dist/types/bin/utils/execute-commant.d.ts +0 -8
  175. package/dist/types/index.d.ts +0 -4
@@ -7,145 +7,117 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { join } from 'node:path';
11
- import { readFileSync } from 'node:fs';
10
+ import { createServer, defineConfig, mergeConfig, } from 'vite';
12
11
  import { assert } from 'node:console';
13
- import { createServer } from 'vite';
14
- import ViteRestart from 'vite-plugin-restart';
12
+ import { join, relative } from 'node:path';
15
13
  import portFinder from 'portfinder';
16
- import { createDevProxy } from './dev-proxy.js';
14
+ import deepmerge from 'deepmerge/index.js';
15
+ import ViteRestart from 'vite-plugin-restart';
16
+ import { appProxyPlugin } from '../lib/plugins/app-proxy/app-proxy-plugin.js';
17
+ import { externalPublicPlugin } from '../lib/plugins/external-public/external-public-plugin.js';
18
+ import { supportedExt } from '../lib/utils/config.js';
19
+ import { manifestConfigFilename } from '../lib/app-manifest.js';
20
+ import { appConfigFilename } from '../lib/app-config.js';
17
21
  import { loadAppConfig } from './utils/load-app-config.js';
18
22
  import { loadViteConfig } from './utils/load-vite-config.js';
19
- import { loadAppManifest } from './utils/load-manifest.js';
23
+ import { loadPackage } from './utils/load-package.js';
20
24
  import { Spinner } from './utils/spinner.js';
21
25
  import { chalk, formatPath } from './utils/format.js';
22
- import { supportedExt } from '../lib/utils/config.js';
23
- import { createManifest, manifestConfigFilename } from '../lib/app-manifest.js';
24
- import { appConfigFilename, createAppConfig } from '../lib/app-config.js';
25
- import { loadPackage } from './utils/load-package.js';
26
- import { rateLimit } from 'express-rate-limit';
26
+ import { loadAppManifest } from './utils/load-manifest.js';
27
+ import { proxyRequestLogger } from './utils/proxy-request-logger.js';
27
28
  export const createDevServer = (options) => __awaiter(void 0, void 0, void 0, function* () {
28
- var _a;
29
- const { configSourceFiles, library, portal, port, devPortalPath } = options;
29
+ var _a, _b, _c, _d;
30
+ const { configSourceFiles, library, port, devPortalPath } = options;
30
31
  const spinner = Spinner.Global({ prefixText: chalk.dim('dev-server') });
31
32
  const pkg = yield loadPackage();
32
- spinner.info(`using portal 🔌${formatPath(portal)} as proxy target`);
33
33
  const env = {
34
34
  command: 'serve',
35
35
  mode: (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development',
36
36
  root: pkg.root,
37
37
  };
38
- const manifest = yield loadAppManifest(env, pkg, { file: configSourceFiles.manifest });
39
- const { key: appKey } = manifest.manifest;
38
+ const generateManifest = () => __awaiter(void 0, void 0, void 0, function* () {
39
+ const { manifest } = yield loadAppManifest(env, pkg, {
40
+ file: configSourceFiles.manifest,
41
+ });
42
+ const assetPath = `bundles/apps/${manifest.appKey}/${pkg.packageJson.version}`;
43
+ return deepmerge(manifest, {
44
+ build: {
45
+ assetPath,
46
+ configUrl: `${assetPath}/config`,
47
+ },
48
+ });
49
+ });
50
+ const generateConfig = () => __awaiter(void 0, void 0, void 0, function* () {
51
+ const { config } = yield loadAppConfig(env, pkg, {
52
+ file: configSourceFiles.app,
53
+ });
54
+ return config;
55
+ });
56
+ const { appKey } = yield generateManifest();
57
+ /**
58
+ * Load application manifest
59
+ * Application might have overridden the `appKey`
60
+ */
40
61
  spinner.info(`resolved application key ${chalk.magenta(appKey)}`);
41
- const { viteConfig, path: viteConfigPath } = yield loadViteConfig(env, {
62
+ const { viteConfig: baseViteConfig, path: viteConfigPath } = yield loadViteConfig(env, {
42
63
  file: configSourceFiles.vite,
43
64
  });
65
+ /**
66
+ * Defines the configuration for the development server.
67
+ */
68
+ const devServerConfig = defineConfig({
69
+ publicDir: devPortalPath,
70
+ appType: 'custom',
71
+ server: {
72
+ open: `/apps/${appKey}`,
73
+ port: port !== null && port !== void 0 ? port : (yield portFinder.getPortPromise({ port: 3000 })),
74
+ },
75
+ plugins: [
76
+ // Serve the dev portal as static files
77
+ externalPublicPlugin(devPortalPath),
78
+ // Proxy requests to the app server
79
+ appProxyPlugin({
80
+ proxy: {
81
+ path: '/apps-proxy',
82
+ target: 'https://fusion-s-apps-ci.azurewebsites.net/',
83
+ onProxyReq: proxyRequestLogger,
84
+ },
85
+ app: {
86
+ key: appKey,
87
+ version: String(pkg.packageJson.version),
88
+ generateConfig,
89
+ generateManifest,
90
+ },
91
+ }),
92
+ // Restart the server when config changes or the dev portal source is updated
93
+ ViteRestart({
94
+ restart: [
95
+ 'package.json',
96
+ viteConfigPath,
97
+ join(relative(process.cwd(), devPortalPath), '/**/*'),
98
+ ].filter((x) => !!x),
99
+ /** reload the CLI when config changes, note change to APP-KEY need restart */
100
+ reload: [
101
+ ...supportedExt.map((ext) => [appConfigFilename, ext].join('')),
102
+ ...supportedExt.map((ext) => [manifestConfigFilename, ext].join('')),
103
+ ],
104
+ }),
105
+ ],
106
+ });
107
+ // Merge the base Vite config with the dev server config
108
+ const viteConfig = mergeConfig(devServerConfig, baseViteConfig);
109
+ /** Add library/framework plugins */
44
110
  if (library === 'react') {
45
111
  const reactPlugin = yield import('@vitejs/plugin-react');
46
112
  viteConfig.plugins.push(reactPlugin.default());
47
113
  }
48
- viteConfig.plugins.push(ViteRestart({
49
- restart: ['package.json', viteConfigPath].filter((x) => !!x),
50
- reload: [
51
- ...supportedExt.map((ext) => [appConfigFilename, ext].join('')),
52
- ...supportedExt.map((ext) => [manifestConfigFilename, ext].join('')),
53
- ],
54
- }));
114
+ assert((_b = viteConfig.build) === null || _b === void 0 ? void 0 : _b.lib, 'expected vite build to have library defined');
115
+ const { entry } = viteConfig.build.lib;
116
+ spinner.info('💾 application entrypoint', formatPath(String(entry), { relative: true }));
117
+ spinner.info('resolving cli internal assets from', formatPath(String(viteConfig.publicDir), { relative: true }));
55
118
  const vite = yield createServer(Object.assign(Object.assign({}, env), viteConfig));
56
- assert(vite.config.build.lib, 'expected vite build to have library defined');
57
- const { entry } = vite.config.build.lib;
58
- spinner.info('💾 application entrypoint', formatPath(String(entry)));
59
- spinner.info('resolving cli internal assets from ', formatPath(devPortalPath));
60
- const server = createDevProxy({
61
- onConfigResponse: (slug, message, data) => __awaiter(void 0, void 0, void 0, function* () {
62
- if (slug.appKey === appKey) {
63
- if (message.statusCode === 404) {
64
- const { config: response, path } = yield loadAppConfig(env, pkg, {
65
- file: configSourceFiles.app,
66
- });
67
- return { response, path, statusCode: 200 };
68
- }
69
- else if (data) {
70
- const { config: response, path } = yield createAppConfig(env, data, {
71
- file: configSourceFiles.app,
72
- });
73
- path && spinner.info('created config from ', formatPath(path));
74
- return { response, path };
75
- }
76
- }
77
- }),
78
- onManifestResponse: (slug, message, data) => __awaiter(void 0, void 0, void 0, function* () {
79
- if (slug.appKey === appKey) {
80
- if (message.statusCode === 404) {
81
- const { manifest: response, path } = yield loadAppManifest(env, pkg, {
82
- file: configSourceFiles.manifest,
83
- });
84
- response.entry = `/${entry}`;
85
- if (response.build) {
86
- response.build.entryPoint = `/${entry}`;
87
- }
88
- return { response, path, statusCode: 200 };
89
- }
90
- else if (data) {
91
- const { manifest: response, path } = yield createManifest(env, data, {
92
- file: configSourceFiles.manifest,
93
- });
94
- response.entry = `/${entry}`;
95
- if (response.build) {
96
- response.build.entryPoint = `/${entry}`;
97
- }
98
- path && spinner.info('created manifest from ', formatPath(path));
99
- return { response, path };
100
- }
101
- }
102
- }),
103
- onManifestListResponse: (slug, message, data) => __awaiter(void 0, void 0, void 0, function* () {
104
- var _b, _c;
105
- if (!data) {
106
- const { manifest, path } = yield loadAppManifest(env, pkg, {
107
- file: configSourceFiles.manifest,
108
- });
109
- manifest.entry = `/${entry}`;
110
- return { response: [manifest], path };
111
- }
112
- let path;
113
- const atIndex = (_b = data === null || data === void 0 ? void 0 : data.findIndex((manifest) => manifest.key === appKey)) !== null && _b !== void 0 ? _b : -1;
114
- if (atIndex > -1) {
115
- data[atIndex].entry = `/${entry}`;
116
- data[atIndex].build = Object.assign((_c = data[atIndex].build) !== null && _c !== void 0 ? _c : {}, {
117
- entryPoint: `/${entry}`,
118
- });
119
- }
120
- else {
121
- const { manifest, path: manifestPath } = yield loadAppManifest(env, pkg, {
122
- file: configSourceFiles.manifest,
123
- });
124
- manifest.entry = `/${entry}`;
125
- if (manifest.build) {
126
- manifest.build.entryPoint = `/${entry}`;
127
- }
128
- path = manifestPath;
129
- data.push(manifest);
130
- }
131
- return { response: data, path };
132
- }),
133
- }, {
134
- target: portal,
135
- staticAssets: [{ path: devPortalPath }],
136
- });
137
- server.use(vite.middlewares);
138
- server.use('*', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
139
- const htmlRaw = readFileSync(join(devPortalPath + '/index.html'), 'utf-8');
140
- const html = yield vite.transformIndexHtml(req.url, htmlRaw);
141
- res.send(html);
142
- }), rateLimit({
143
- max: 10,
144
- }));
145
- const serverPort = port !== null && port !== void 0 ? port : (yield portFinder.getPortPromise({ port: 3000 }));
146
119
  spinner.start('🚀 start server');
147
- server.listen(serverPort);
148
- spinner.succeed();
149
- spinner.succeed('🔗', chalk.underline.green(new URL(`/apps/${appKey}`, `http://localhost:${serverPort}`).href));
120
+ yield vite.listen();
121
+ spinner.succeed('🔗', chalk.underline.green(new URL(`/apps/${appKey}`, (_d = (_c = vite.resolvedUrls) === null || _c === void 0 ? void 0 : _c.local[0]) !== null && _d !== void 0 ? _d : `https://localhost:/${vite.config.server.port}`).href));
150
122
  });
151
123
  //# sourceMappingURL=create-dev-serve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-dev-serve.js","sourceRoot":"","sources":["../../src/bin/create-dev-serve.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAkB,YAAY,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAE9C,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,OAUrC,EAAE,EAAE;;IACD,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;IAEhC,OAAO,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAErE,MAAM,GAAG,GAAsB;QAC3B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,aAAa;QAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;KACjB,CAAC;IAMF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACnE,IAAI,EAAE,iBAAiB,CAAC,IAAI;KAC/B,CAAC,CAAC;IAGH,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACzD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,IAAI,CACnB,WAAW,CAAC;QACR,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzE,MAAM,EAAE;YACJ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvE;KACJ,CAAC,CACL,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,iCAAM,GAAG,GAAK,UAAU,EAAG,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;IAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAqB,CAAC;IAE1D,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAG/E,MAAM,MAAM,GAAG,cAAc,CACzB;QACI,gBAAgB,EAAE,CAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE;wBAC7D,IAAI,EAAE,iBAAiB,CAAC,GAAG;qBAC9B,CAAC,CAAC;oBACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;gBAC/C,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBACd,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE;wBAChE,IAAI,EAAE,iBAAiB,CAAC,GAAG;qBAC9B,CAAC,CAAC;oBACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACL,CAAC;QACL,CAAC,CAAA;QACD,kBAAkB,EAAE,CAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC7B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;wBACjE,IAAI,EAAE,iBAAiB,CAAC,QAAQ;qBACnC,CAAC,CAAC;oBACH,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;oBAC5C,CAAC;oBACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;gBAC/C,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBACd,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;wBACjE,IAAI,EAAE,iBAAiB,CAAC,QAAQ;qBACnC,CAAC,CAAC;oBAGH,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;oBAC5C,CAAC;oBAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACL,CAAC;QACL,CAAC,CAAA;QACD,sBAAsB,EAAE,CAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YAElD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;oBACvD,IAAI,EAAE,iBAAiB,CAAC,QAAQ;iBACnC,CAAC,CAAC;gBACH,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,IAAwB,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,MAAM,CAAC,mCAAI,CAAC,CAAC,CAAC;YAE7E,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,mCAAI,EAAE,EAAE;oBAC3D,UAAU,EAAE,IAAI,KAAK,EAAE;iBAC1B,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;oBACrE,IAAI,EAAE,iBAAiB,CAAC,QAAQ;iBACnC,CAAC,CAAC;gBAGH,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC7B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC5C,CAAC;gBACD,IAAI,GAAG,YAAY,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC,CAAA;KACJ,EACD;QACI,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KAC1C,CACJ,CAAC;IAGF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAG7B,MAAM,CAAC,GAAG,CACN,GAAG,EACH,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QAEf,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAA,EACD,SAAS,CAAC;QACN,GAAG,EAAE,EAAE;KACV,CAAC,CACL,CAAC;IAGF,MAAM,UAAU,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,CAAC,OAAO,EAAE,CAAC;IAClB,OAAO,CAAC,OAAO,CACX,IAAI,EACJ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,MAAM,EAAE,EAAE,oBAAoB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAC3F,CAAC;AACN,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"create-dev-serve.js","sourceRoot":"","sources":["../../src/bin/create-dev-serve.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,9 @@ import { dirname } from 'node:path';
13
13
  import semverValid from 'semver/functions/valid.js';
14
14
  import { chalk, formatPath } from './utils/format.js';
15
15
  import { Spinner } from './utils/spinner.js';
16
- import { loadPackage } from './utils/load-package.js';
17
- import { loadAppConfig } from './utils/load-app-config.js';
18
- import { publishAppConfig, validateToken } from './utils/app-api.js';
16
+ import { getEndpointUrl, loadAppConfig, loadPackage, isAppRegistered, requireToken, publishAppConfig, } from './utils/index.js';
19
17
  import { resolveAppKey } from '../lib/app-package.js';
18
+ import { exit } from 'node:process';
20
19
  export const createExportConfig = (options) => __awaiter(void 0, void 0, void 0, function* () {
21
20
  var _a;
22
21
  const { command = 'build', outputFile, configFile, publish, env, service } = options;
@@ -50,20 +49,63 @@ export const createExportConfig = (options) => __awaiter(void 0, void 0, void 0,
50
49
  console.log(config);
51
50
  }
52
51
  if (publish) {
53
- spinner.info('Publishing config');
54
- const validToken = validateToken();
55
- if (!validToken) {
56
- return;
57
- }
52
+ spinner.info('Preparing to publishing config');
53
+ /* Make sure version is valid */
58
54
  const version = publish === 'current' ? pkg.packageJson.version : publish;
59
- if (!version || !semverValid(version)) {
55
+ if (!version || (!semverValid(version) && !['latest', 'preview'].includes(version))) {
60
56
  spinner.fail('🙅‍♂️', 'Can not publish config to invalid version', chalk.redBright(version), '');
61
- return;
57
+ exit(1);
58
+ }
59
+ /** make sure user has a valid token */
60
+ try {
61
+ spinner.info('Validating FUSION_TOKEN');
62
+ // make sure token exist
63
+ requireToken();
64
+ // call service discovery with token, will throw error if failed
65
+ yield getEndpointUrl('apps', env, '');
66
+ spinner.succeed('Found valid FUSION_TOKEN');
67
+ }
68
+ catch (e) {
69
+ const err = e;
70
+ spinner.fail(chalk.bgRed(err.message));
71
+ exit(1);
62
72
  }
63
- const published = yield publishAppConfig(appKey, version, config, env, service);
64
- if (published) {
73
+ try {
74
+ spinner.info('Verifying that App is registered');
75
+ const state = { endpoint: '' };
76
+ try {
77
+ state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service);
78
+ }
79
+ catch (e) {
80
+ const err = e;
81
+ throw new Error(`Could not get endpoint from service discovery while verifying app. service-discovery status: ${err.message}`);
82
+ }
83
+ yield isAppRegistered(state.endpoint, appKey);
84
+ spinner.succeed(`${appKey} is registered`);
85
+ }
86
+ catch (e) {
87
+ const err = e;
88
+ spinner.fail('🙅‍♂️', chalk.bgRed(err.message));
89
+ exit(1);
90
+ }
91
+ try {
92
+ spinner.info(`Publishing config to "${appKey}@${version}"`);
93
+ const state = { endpoint: '' };
94
+ try {
95
+ state.endpoint = yield getEndpointUrl(`apps/${appKey}/builds/${version}/config`, env, service);
96
+ }
97
+ catch (e) {
98
+ const err = e;
99
+ throw new Error(`Could not get endpoint from service discovery while publishig config. service-discovery status: ${err.message}`);
100
+ }
101
+ yield publishAppConfig(state.endpoint, appKey, config);
65
102
  spinner.succeed('✅', 'Published config to version', chalk.yellowBright(version));
66
103
  }
104
+ catch (e) {
105
+ const err = e;
106
+ spinner.fail('🙅‍♂️', chalk.bgRed(err.message));
107
+ exit(1);
108
+ }
67
109
  }
68
110
  return config;
69
111
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-export-config.js","sourceRoot":"","sources":["../../src/bin/create-export-config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,WAAW,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAO,OAOxC,EAAE,EAAE;;IACD,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAErF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAsB;QAC9B,OAAO;QACP,IAAI,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,aAAa;QAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE;QAChD,IAAI,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CACR,OAAO,EACP,2CAA2C,EAC3C,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EACxB,EAAE,CACL,CAAC;YACF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAChF,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"create-export-config.js","sourceRoot":"","sources":["../../src/bin/create-export-config.ts"],"names":[],"mappings":"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"}
@@ -10,60 +10,68 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import nodeFs from 'node:fs';
11
11
  import { writeFile } from 'node:fs/promises';
12
12
  import assert from 'node:assert';
13
- import { execSync } from 'node:child_process';
14
13
  import { SemVer, parse as parseSemver } from 'semver';
15
14
  import { chalk, formatPath } from './utils/format.js';
16
15
  import { Spinner } from './utils/spinner.js';
17
16
  import { loadAppManifest } from './utils/load-manifest.js';
18
17
  import { loadPackage } from './utils/load-package.js';
19
18
  import { dirname } from 'node:path';
19
+ // TODO why do we do this??? can`t backend parse semver?
20
20
  export const normalizeVersion = (version) => {
21
21
  const semverVersion = parseSemver(version);
22
22
  assert(semverVersion instanceof SemVer, 'expected version in AppManifest to be SemVer');
23
23
  const { major, minor, patch } = semverVersion;
24
24
  return { major, minor, patch };
25
25
  };
26
- export const createExportManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
27
- var _a;
28
- const { command = 'build', outputFile } = options !== null && options !== void 0 ? options : {};
29
- const spinner = Spinner.Global({ prefixText: chalk.dim('manifest') });
26
+ export const createAppManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
27
+ Spinner.Global({ prefixText: chalk.dim('app manifest') });
28
+ const manifest = yield createManifest(options);
29
+ if (options === null || options === void 0 ? void 0 : options.outputFile) {
30
+ yield writeManifestToDisk(manifest, options.outputFile);
31
+ }
32
+ else {
33
+ console.log(JSON.stringify(manifest, undefined, 2));
34
+ }
35
+ return manifest;
36
+ });
37
+ export const createBuildManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
38
+ Spinner.Global({ prefixText: chalk.dim('build manifest') });
39
+ const { build } = yield createManifest(options);
40
+ if (options === null || options === void 0 ? void 0 : options.outputFile) {
41
+ yield writeManifestToDisk(build, options.outputFile);
42
+ }
43
+ else {
44
+ console.log(JSON.stringify(build, undefined, 2));
45
+ }
46
+ return build;
47
+ });
48
+ const writeManifestToDisk = (content, outputFile) => __awaiter(void 0, void 0, void 0, function* () {
49
+ const spinner = Spinner.Clone();
50
+ spinner.start(`Exporting manifest to ${formatPath(outputFile)}`);
51
+ try {
52
+ const dir = dirname(outputFile).trim();
53
+ if (!nodeFs.existsSync(dirname(outputFile))) {
54
+ nodeFs.mkdirSync(dir, { recursive: true });
55
+ }
56
+ yield writeFile(outputFile, JSON.stringify(content));
57
+ spinner.succeed();
58
+ }
59
+ catch (err) {
60
+ spinner.fail();
61
+ throw err;
62
+ }
63
+ });
64
+ const createManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
65
+ var _a, _b;
30
66
  const pkg = yield loadPackage();
31
67
  const env = {
32
- command,
33
- mode: (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development',
68
+ command: (_a = options === null || options === void 0 ? void 0 : options.command) !== null && _a !== void 0 ? _a : 'build',
69
+ mode: (_b = process.env.NODE_ENV) !== null && _b !== void 0 ? _b : 'development',
34
70
  root: pkg.root,
35
71
  };
36
72
  const { manifest } = yield loadAppManifest(env, pkg, {
37
73
  file: options === null || options === void 0 ? void 0 : options.configFile,
38
74
  });
39
- const commitSha = execSync('git rev-parse HEAD').toString().trim();
40
- const repoUrl = execSync('git remote get-url origin').toString().trim();
41
- const githubRepo = repoUrl
42
- ? repoUrl.indexOf('git') === 0
43
- ? encodeURIComponent(repoUrl.replace('git@github.com:', 'https://github.com/').replace('.git', ''))
44
- : encodeURIComponent(repoUrl)
45
- : '';
46
- const manifestExport = Object.assign(Object.assign({}, manifest), { entryPoint: 'app-bundle.js', commitSha,
47
- githubRepo, timestamp: new Date().toISOString() });
48
- if (outputFile) {
49
- spinner.start(`outputting manifest to ${formatPath(outputFile)}`);
50
- try {
51
- const dir = dirname(outputFile).trim();
52
- if (!nodeFs.existsSync(dirname(outputFile))) {
53
- nodeFs.mkdirSync(dir, { recursive: true });
54
- }
55
- yield writeFile(outputFile, JSON.stringify(manifestExport));
56
- spinner.succeed();
57
- }
58
- catch (err) {
59
- spinner.fail();
60
- throw err;
61
- }
62
- }
63
- else {
64
- console.log(manifestExport);
65
- }
66
- return manifestExport;
75
+ return manifest;
67
76
  });
68
- export default createExportManifest;
69
77
  //# sourceMappingURL=create-export-manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-export-manifest.js","sourceRoot":"","sources":["../../src/bin/create-export-manifest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;IAChD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,aAAa,YAAY,MAAM,EAAE,8CAA8C,CAAC,CAAC;IAExF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAO,OAI1C,EAAE,EAAE;;IACD,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAExD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAC;IAEhC,MAAM,GAAG,GAAsB;QAC3B,OAAO;QACP,IAAI,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,aAAa;QAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;QACjD,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;KAC5B,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAExE,MAAM,UAAU,GAAG,OAAO;QACtB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,kBAAkB,CACd,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAChF;YACH,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,cAAc,mCACb,QAAQ,KACX,UAAU,EAAE,eAAe,EAC3B,SAAS;QACT,UAAU,EACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GACtC,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAA,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"create-export-manifest.js","sourceRoot":"","sources":["../../src/bin/create-export-manifest.ts"],"names":[],"mappings":"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"}
@@ -6,40 +6,63 @@ import { useObservableState } from '@equinor/fusion-observable/react';
6
6
  import { AppManifestError } from '@equinor/fusion-framework-module-app/errors.js';
7
7
  import { ErrorViewer } from './ErrorViewer';
8
8
  import EquinorLoader from './EquinorLoader';
9
+ /**
10
+ * React Functional Component for handling current application
11
+ *
12
+ * this component will set the current app by provided appKey.
13
+ * when the appKey changes, this component will try to initialize the referred application
14
+ * and render it.
15
+ */
9
16
  export const AppLoader = (props) => {
10
17
  const { appKey } = props;
11
18
  const fusion = useFramework();
19
+ /** reference of application section/container */
12
20
  const ref = useRef(null);
13
21
  const [loading, setLoading] = useState(false);
14
22
  const [error, setError] = useState();
23
+ // TODO change to `useCurrentApp`
24
+ /** observe and use the current selected application from framework */
15
25
  const { value: currentApp } = useObservableState(useMemo(() => fusion.modules.app.current$, [fusion.modules.app]));
16
26
  useEffect(() => {
27
+ /** when appKey property change, assign it to current */
17
28
  fusion.modules.app.setCurrentApp(appKey);
18
29
  }, [appKey, fusion]);
19
30
  useEffect(() => {
31
+ /** flag that application is loading */
20
32
  setLoading(true);
33
+ /** clear previous errors */
21
34
  setError(undefined);
35
+ /** create a teardown of load */
22
36
  const subscription = new Subscription();
37
+ /** make sure that initialize is canceled and disposed if current app changes */
23
38
  subscription.add(currentApp === null || currentApp === void 0 ? void 0 : currentApp.initialize().subscribe({
24
39
  next: ({ manifest, script, config }) => {
25
40
  var _a, _b;
41
+ /** generate basename for application */
26
42
  const [basename] = (_a = window.location.pathname.match(/\/?apps\/[a-z|-]+(\/)?/g)) !== null && _a !== void 0 ? _a : [''];
43
+ /** create a 'private' element for the application */
27
44
  const el = document.createElement('div');
28
45
  if (!ref.current) {
29
46
  throw Error('Missing application mounting point');
30
47
  }
31
48
  ref.current.appendChild(el);
49
+ /** extract render callback function from javascript module */
32
50
  const render = (_b = script.renderApp) !== null && _b !== void 0 ? _b : script.default;
51
+ /** add application teardown to current render effect teardown */
33
52
  subscription.add(render(el, { fusion, env: { basename, config, manifest } }));
53
+ /** remove app element when application unmounts */
34
54
  subscription.add(() => el.remove());
35
55
  },
36
56
  complete: () => {
57
+ /** flag that application is no longer loading */
37
58
  setLoading(false);
38
59
  },
39
60
  error: (err) => {
61
+ /** set error if initialization of application fails */
40
62
  setError(err);
41
63
  },
42
64
  }));
65
+ /** teardown application when hook unmounts */
43
66
  return () => subscription.unsubscribe();
44
67
  }, [fusion, currentApp, ref]);
45
68
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"AppLoader.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/AppLoader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppLoader.js","sourceRoot":"","sources":["../../../src/bin/dev-portal/AppLoader.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useCallback } from 'react';
3
- import { ContextProvider, ContextSearch, } from '@equinor/fusion-react-context-selector';
2
+ import { useCallback, useEffect, useMemo } from 'react';
3
+ import { ContextProvider, ContextSearch, ContextClearEvent, } from '@equinor/fusion-react-context-selector';
4
4
  import { useContextResolver } from './useContextResolver';
5
+ /**
6
+ * See fusion-react-component storybook for available attributes
7
+ * @link https://equinor.github.io/fusion-react-components/?path=/docs/data-contextselector--component
8
+ * @returns JSX element
9
+ */
5
10
  export const ContextSelector = (props) => {
6
11
  var _a, _b, _c, _d;
7
12
  const { resolver, provider, currentContext: [selectedContextItem], } = useContextResolver();
13
+ /** callback handler for context selector, when context is changed or cleared */
8
14
  const onContextSelect = useCallback((e) => {
9
15
  if (provider) {
10
16
  if (e.type === 'select') {
@@ -18,6 +24,15 @@ export const ContextSelector = (props) => {
18
24
  }
19
25
  }
20
26
  }, [provider]);
27
+ /**
28
+ * Clears context when ctx has been cleared outside the selector.
29
+ */
30
+ const clearEvent = useMemo(() => new ContextClearEvent({ date: Date.now() }), []);
31
+ useEffect(() => {
32
+ if (!selectedContextItem) {
33
+ document.dispatchEvent(clearEvent);
34
+ }
35
+ }, [clearEvent, selectedContextItem]);
21
36
  if (!resolver)
22
37
  return null;
23
38
  return (_jsx("div", { style: { flex: 1, maxWidth: '480px' }, children: _jsx(ContextProvider, { resolver: resolver, children: _jsx(ContextSearch, { id: "context-selector-cli-header", placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : 'Search for context', initialText: (_b = props.initialText) !== null && _b !== void 0 ? _b : 'Start typing to search', dropdownHeight: (_c = props.dropdownHeight) !== null && _c !== void 0 ? _c : '300px', variant: (_d = props.variant) !== null && _d !== void 0 ? _d : 'header', onSelect: (e) => onContextSelect(e), selectTextOnFocus: true, previewItem: selectedContextItem, onClearContext: onContextSelect }) }) }));