@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.
- package/CHANGELOG.md +10 -15
- package/bin/cli.mjs +1 -1
- package/dist/bin/build-application.js +65 -0
- package/dist/bin/build-application.js.map +1 -0
- package/dist/bin/bundle-application.js +56 -0
- package/dist/bin/bundle-application.js.map +1 -0
- package/dist/bin/create-dev-serve.js +123 -0
- package/dist/bin/create-dev-serve.js.map +1 -0
- package/dist/bin/create-export-config.js +50 -0
- package/dist/bin/create-export-config.js.map +1 -0
- package/dist/bin/create-export-manifest.js +77 -0
- package/dist/bin/create-export-manifest.js.map +1 -0
- package/dist/bin/dev-portal/AppLoader.js +77 -0
- package/dist/bin/dev-portal/AppLoader.js.map +1 -0
- package/dist/bin/dev-portal/BookMarkSideSheet.js +15 -0
- package/dist/bin/dev-portal/BookMarkSideSheet.js.map +1 -0
- package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +41 -0
- package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +1 -0
- package/dist/bin/dev-portal/ContextSelector/index.js +2 -0
- package/dist/bin/dev-portal/ContextSelector/index.js.map +1 -0
- package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +171 -0
- package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +1 -0
- package/dist/bin/dev-portal/EquinorLoader.js +14 -0
- package/dist/bin/dev-portal/EquinorLoader.js.map +1 -0
- package/dist/bin/dev-portal/ErrorViewer.js +7 -0
- package/dist/bin/dev-portal/ErrorViewer.js.map +1 -0
- package/dist/bin/dev-portal/FusionLogo.js +4 -0
- package/dist/bin/dev-portal/FusionLogo.js.map +1 -0
- package/dist/bin/dev-portal/Header.js +37 -0
- package/dist/bin/dev-portal/Header.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/index.js +32 -0
- package/dist/bin/dev-portal/PersonSideSheet/index.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +16 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +16 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +16 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +19 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js +30 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js +3 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js.map +1 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js +2 -0
- package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js.map +1 -0
- package/dist/bin/dev-portal/Router.js +59 -0
- package/dist/bin/dev-portal/Router.js.map +1 -0
- package/dist/bin/dev-portal/config.js +69 -0
- package/dist/bin/dev-portal/config.js.map +1 -0
- package/dist/bin/dev-portal/main.js +13 -0
- package/dist/bin/dev-portal/main.js.map +1 -0
- package/dist/bin/dev-portal/resources/fallback-photo.svg.js +3 -0
- package/dist/bin/dev-portal/resources/fallback-photo.svg.js.map +1 -0
- package/dist/bin/dev-portal/useAppContextNavigation.js +68 -0
- package/dist/bin/dev-portal/useAppContextNavigation.js.map +1 -0
- package/dist/bin/main.app.js +171 -0
- package/dist/bin/main.app.js.map +1 -0
- package/dist/bin/main.js +20 -0
- package/dist/bin/main.js.map +1 -0
- package/dist/bin/public/assets/{index-Cb85_fOB.js → index-D0eBBcR8.js} +483 -483
- package/dist/bin/public/index.html +1 -1
- package/dist/bin/publish-application.js +104 -0
- package/dist/bin/publish-application.js.map +1 -0
- package/dist/bin/tag-application.js +82 -0
- package/dist/bin/tag-application.js.map +1 -0
- package/dist/bin/upload-application.js +72 -0
- package/dist/bin/upload-application.js.map +1 -0
- package/dist/bin/upload-export-config.js +87 -0
- package/dist/bin/upload-export-config.js.map +1 -0
- package/dist/bin/utils/execute-command.js +23 -0
- package/dist/bin/utils/execute-command.js.map +1 -0
- package/dist/bin/utils/format.js +17 -0
- package/dist/bin/utils/format.js.map +1 -0
- package/dist/bin/utils/getEndpointUrl.js +49 -0
- package/dist/bin/utils/getEndpointUrl.js.map +1 -0
- package/dist/bin/utils/index.js +14 -0
- package/dist/bin/utils/index.js.map +1 -0
- package/dist/bin/utils/isAppRegistered.js +35 -0
- package/dist/bin/utils/isAppRegistered.js.map +1 -0
- package/dist/bin/utils/load-app-config.js +35 -0
- package/dist/bin/utils/load-app-config.js.map +1 -0
- package/dist/bin/utils/load-manifest.js +40 -0
- package/dist/bin/utils/load-manifest.js.map +1 -0
- package/dist/bin/utils/load-package.js +24 -0
- package/dist/bin/utils/load-package.js.map +1 -0
- package/dist/bin/utils/load-vite-config.js +54 -0
- package/dist/bin/utils/load-vite-config.js.map +1 -0
- package/dist/bin/utils/proxy-request-logger.js +34 -0
- package/dist/bin/utils/proxy-request-logger.js.map +1 -0
- package/dist/bin/utils/publishAppConfig.js +36 -0
- package/dist/bin/utils/publishAppConfig.js.map +1 -0
- package/dist/bin/utils/requireToken.js +10 -0
- package/dist/bin/utils/requireToken.js.map +1 -0
- package/dist/bin/utils/spinner.js +77 -0
- package/dist/bin/utils/spinner.js.map +1 -0
- package/dist/bin/utils/tagAppBundle.js +35 -0
- package/dist/bin/utils/tagAppBundle.js.map +1 -0
- package/dist/bin/utils/uploadAppBundle.js +54 -0
- package/dist/bin/utils/uploadAppBundle.js.map +1 -0
- package/dist/lib/app-config.js +1 -1
- package/dist/lib/app-config.js.map +1 -1
- package/dist/schemas.js +14 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types/bin/build-application.d.ts +13 -0
- package/dist/types/bin/bundle-application.d.ts +4 -0
- package/dist/types/bin/create-dev-serve.d.ts +11 -0
- package/dist/types/bin/create-export-config.d.ts +13 -0
- package/dist/types/bin/create-export-manifest.d.ts +16 -0
- package/dist/types/bin/dev-portal/AppLoader.d.ts +11 -0
- package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +6 -0
- package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +8 -0
- package/dist/types/bin/dev-portal/ContextSelector/index.d.ts +1 -0
- package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +15 -0
- package/dist/types/bin/dev-portal/EquinorLoader.d.ts +5 -0
- package/dist/types/bin/dev-portal/ErrorViewer.d.ts +4 -0
- package/dist/types/bin/dev-portal/FusionLogo.d.ts +5 -0
- package/dist/types/bin/dev-portal/Header.d.ts +3 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +11 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +6 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +5 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +5 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +5 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +6 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/index.d.ts +2 -0
- package/dist/types/bin/dev-portal/PersonSideSheet/sheets/types.d.ts +5 -0
- package/dist/types/bin/dev-portal/Router.d.ts +1 -0
- package/dist/types/bin/dev-portal/config.d.ts +3 -0
- package/dist/types/bin/dev-portal/main.d.ts +1 -0
- package/dist/types/bin/dev-portal/resources/fallback-photo.svg.d.ts +2 -0
- package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +5 -0
- package/dist/types/bin/main.app.d.ts +3 -0
- package/dist/types/bin/main.d.ts +1 -0
- package/dist/types/bin/publish-application.d.ts +6 -0
- package/dist/types/bin/tag-application.d.ts +12 -0
- package/dist/types/bin/upload-application.d.ts +6 -0
- package/dist/types/bin/upload-export-config.d.ts +10 -0
- package/dist/types/bin/utils/execute-command.d.ts +8 -0
- package/dist/types/bin/utils/format.d.ts +8 -0
- package/dist/types/bin/utils/getEndpointUrl.d.ts +10 -0
- package/dist/types/bin/utils/index.d.ts +14 -0
- package/dist/types/bin/utils/isAppRegistered.d.ts +5 -0
- package/dist/types/bin/utils/load-app-config.d.ts +10 -0
- package/dist/types/bin/utils/load-manifest.d.ts +10 -0
- package/dist/types/bin/utils/load-package.d.ts +5 -0
- package/dist/types/bin/utils/load-vite-config.d.ts +10 -0
- package/dist/types/bin/utils/proxy-request-logger.d.ts +15 -0
- package/dist/types/bin/utils/publishAppConfig.d.ts +9 -0
- package/dist/types/bin/utils/requireToken.d.ts +4 -0
- package/dist/types/bin/utils/spinner.d.ts +20 -0
- package/dist/types/bin/utils/tagAppBundle.d.ts +7 -0
- package/dist/types/bin/utils/uploadAppBundle.d.ts +7 -0
- package/dist/types/{app-config.d.ts → lib/app-config.d.ts} +1 -1
- package/dist/types/{plugins → lib/plugins}/app-proxy/app-proxy-plugin.d.ts +1 -1
- package/dist/types/schemas.d.ts +30 -0
- package/dist/types/version.d.ts +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +20 -23
- package/dist/bin/main.mjs +0 -2003
- /package/dist/types/{app-manifest.d.ts → lib/app-manifest.d.ts} +0 -0
- /package/dist/types/{app-package.d.ts → lib/app-package.d.ts} +0 -0
- /package/dist/types/{index.d.ts → lib/index.d.ts} +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/app-asset-plugin.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/emit-asset.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/extension-filter-pattern.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/index.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/read-asset-content.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/resolve-asset-id.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-assets/static.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/app-proxy/index.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/external-public/external-public-plugin.d.ts +0 -0
- /package/dist/types/{plugins → lib/plugins}/external-public/index.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/assert.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/config.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/expect.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/file-exists.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/ts-transpile.d.ts +0 -0
- /package/dist/types/{utils → lib/utils}/types.d.ts +0 -0
- /package/dist/types/{vite-config.d.ts → lib/vite-config.d.ts} +0 -0
- /package/dist/types/{vite-logger.d.ts → lib/vite-logger.d.ts} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
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 { chalk } from './utils/format.js';
|
|
11
|
+
import { Spinner } from './utils/spinner.js';
|
|
12
|
+
import { bundleApplication } from './bundle-application.js';
|
|
13
|
+
import { resolveAppPackage, resolveAppKey } from '../lib/app-package.js';
|
|
14
|
+
import { isAppRegistered, getEndpointUrl, requireToken, tagAppBundle, uploadAppBundle, } from './utils/index.js';
|
|
15
|
+
import { exit } from 'node:process';
|
|
16
|
+
import assert from 'node:assert';
|
|
17
|
+
export const publishApplication = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const { tag, env, service } = options;
|
|
19
|
+
const spinner = Spinner.Global({ prefixText: chalk.dim('Publish') });
|
|
20
|
+
try {
|
|
21
|
+
spinner.info('Validating FUSION_TOKEN');
|
|
22
|
+
// make sure token exist
|
|
23
|
+
requireToken();
|
|
24
|
+
// call service discovery with token, will throw error if failed
|
|
25
|
+
yield getEndpointUrl('apps', env, '');
|
|
26
|
+
spinner.succeed('Found valid FUSION_TOKEN');
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
const err = e;
|
|
30
|
+
spinner.fail(chalk.bgRed(err.message));
|
|
31
|
+
exit(1);
|
|
32
|
+
}
|
|
33
|
+
const pkg = yield resolveAppPackage();
|
|
34
|
+
const appKey = resolveAppKey(pkg.packageJson);
|
|
35
|
+
try {
|
|
36
|
+
spinner.info('Verifying that App is registered');
|
|
37
|
+
const state = { endpoint: '' };
|
|
38
|
+
try {
|
|
39
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
const err = e;
|
|
43
|
+
throw new Error(`Could not get endpoint from service discovery while verifying app is registered. service-discovery status: ${err.message}`);
|
|
44
|
+
}
|
|
45
|
+
const exist = yield isAppRegistered(state.endpoint);
|
|
46
|
+
assert(exist, `${appKey} is not registered`);
|
|
47
|
+
spinner.succeed(`${appKey} is registered`);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
const err = e;
|
|
51
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
const bundle = 'app-bundle.zip';
|
|
55
|
+
/* Zip app bundle */
|
|
56
|
+
spinner.info('Creating zip bundle');
|
|
57
|
+
yield bundleApplication({
|
|
58
|
+
archive: bundle,
|
|
59
|
+
outDir: 'dist',
|
|
60
|
+
});
|
|
61
|
+
const state = {
|
|
62
|
+
uploadedBundle: { version: '' },
|
|
63
|
+
endpoint: '',
|
|
64
|
+
};
|
|
65
|
+
spinner.info(`Publishing app: "${appKey}" with tag: "${tag}"`);
|
|
66
|
+
/* Upload app bundle */
|
|
67
|
+
try {
|
|
68
|
+
spinner.info(`Uploading bundle ${chalk.yellowBright(bundle)} to appKey ${chalk.yellowBright(appKey)}`);
|
|
69
|
+
try {
|
|
70
|
+
state.endpoint = yield getEndpointUrl(`bundles/apps/${appKey}`, env, service);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
const err = e;
|
|
74
|
+
throw new Error(`Could not get endpoint from service discovery while uploading app bundle. service-discovery status: ${err.message}`);
|
|
75
|
+
}
|
|
76
|
+
spinner.info(`Posting bundle to => ${state.endpoint}`);
|
|
77
|
+
state.uploadedBundle = yield uploadAppBundle(state.endpoint, bundle);
|
|
78
|
+
spinner.succeed('✅', `Uploaded bundle: "${chalk.greenBright(bundle)}" with version: ${chalk.greenBright(state.uploadedBundle.version)}"`);
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
const err = e;
|
|
82
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
83
|
+
exit(1);
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
spinner.info(`Tagging ${state.uploadedBundle.version} with ${tag}`);
|
|
87
|
+
try {
|
|
88
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}/tags/${tag}`, env, service);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
const err = e;
|
|
92
|
+
throw new Error(`Could not get endpoint from service discovery while tagging app. service-discovery status: ${err.message}`);
|
|
93
|
+
}
|
|
94
|
+
const tagged = yield tagAppBundle(state.endpoint, state.uploadedBundle.version);
|
|
95
|
+
spinner.succeed('✅', `Tagged version ${chalk.greenBright(tagged.version)} with ${chalk.greenBright(tagged.tagName)}`);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
const err = e;
|
|
99
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
100
|
+
exit(1);
|
|
101
|
+
}
|
|
102
|
+
spinner.succeed('⭐️', `Published app: "${chalk.greenBright(appKey)}" version: "${chalk.greenBright(state.uploadedBundle.version)}" with tagg: "${chalk.greenBright(tag)}"`);
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=publish-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-application.js","sourceRoot":"","sources":["../../src/bin/publish-application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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 { exit } from 'node:process';
|
|
11
|
+
import { chalk } from './utils/format.js';
|
|
12
|
+
import { Spinner } from './utils/spinner.js';
|
|
13
|
+
import { resolveAppPackage, resolveAppKey } from '../lib/app-package.js';
|
|
14
|
+
import { isAppRegistered, getEndpointUrl, requireToken, tagAppBundle } from './utils/index.js';
|
|
15
|
+
import assert from 'node:assert';
|
|
16
|
+
var Tags;
|
|
17
|
+
(function (Tags) {
|
|
18
|
+
Tags["preview"] = "preview";
|
|
19
|
+
Tags["latest"] = "latest";
|
|
20
|
+
})(Tags || (Tags = {}));
|
|
21
|
+
export const tagApplication = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
const { tag, version, env, service } = options;
|
|
23
|
+
const spinner = Spinner.Global({ prefixText: chalk.dim('Tag') });
|
|
24
|
+
if (!Object.values(Tags).includes(tag)) {
|
|
25
|
+
spinner.fail('😞', `Tag must match (${Tags.latest} | ${Tags.preview})`);
|
|
26
|
+
exit(1);
|
|
27
|
+
}
|
|
28
|
+
/** make sure user has a valid token */
|
|
29
|
+
try {
|
|
30
|
+
spinner.info('Validating FUSION_TOKEN');
|
|
31
|
+
// make sure token exist
|
|
32
|
+
requireToken();
|
|
33
|
+
// call service discovery with token, will throw error if failed
|
|
34
|
+
yield getEndpointUrl('apps', env, '');
|
|
35
|
+
spinner.succeed('Found valid FUSION_TOKEN');
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
const err = e;
|
|
39
|
+
spinner.fail(chalk.bgRed(err.message));
|
|
40
|
+
exit(1);
|
|
41
|
+
}
|
|
42
|
+
const pkg = yield resolveAppPackage();
|
|
43
|
+
const appKey = resolveAppKey(pkg.packageJson);
|
|
44
|
+
try {
|
|
45
|
+
spinner.info('Verifying that App is registered');
|
|
46
|
+
const state = { endpoint: '' };
|
|
47
|
+
try {
|
|
48
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service);
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
const err = e;
|
|
52
|
+
throw new Error(`Could not get endpoint from service discovery while verifying app is registered. service-discovery status: ${err.message}`);
|
|
53
|
+
}
|
|
54
|
+
const exist = yield isAppRegistered(state.endpoint);
|
|
55
|
+
assert(exist, `${appKey} is not registered`);
|
|
56
|
+
spinner.succeed(`${appKey} is registered`);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
const err = e;
|
|
60
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
spinner.info(`Tagging "${appKey}@${version}" with: "${tag}"`);
|
|
65
|
+
const state = { endpoint: '' };
|
|
66
|
+
try {
|
|
67
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}/tags/${tag}`, env, service);
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
const err = e;
|
|
71
|
+
throw new Error(`Could not get endpoint from service discovery while tagging app. service-discovery status: ${err.message}`);
|
|
72
|
+
}
|
|
73
|
+
const tagged = yield tagAppBundle(state.endpoint, version);
|
|
74
|
+
spinner.succeed('✅', `Tagged app: "${chalk.greenBright(appKey)}"`, `version: "${chalk.greenBright(tagged.version)}"`, `with tag: "${chalk.greenBright(tagged.tagName)}"`);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
const err = e;
|
|
78
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
79
|
+
exit(1);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=tag-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-application.js","sourceRoot":"","sources":["../../src/bin/tag-application.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE/F,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,IAAK,IAGJ;AAHD,WAAK,IAAI;IACL,2BAAmB,CAAA;IACnB,yBAAiB,CAAA;AACrB,CAAC,EAHI,IAAI,KAAJ,IAAI,QAGR;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,OAKpC,EAAE,EAAE;IACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAExC,wBAAwB;QACxB,YAAY,EAAE,CAAC;QAEf,gEAAgE;QAChE,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,CAAU,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,MAAM,IAAI,KAAK,CACX,8GAA8G,GAAG,CAAC,OAAO,EAAE,CAC9H,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,CAAC;QAE7C,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,CAAU,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,IAAI,OAAO,YAAY,GAAG,GAAG,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,MAAM,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,MAAM,IAAI,KAAK,CACX,8FAA8F,GAAG,CAAC,OAAO,EAAE,CAC9G,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,CAAC,OAAO,CACX,GAAG,EACH,gBAAgB,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAC5C,aAAa,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EACjD,cAAc,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CACrD,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,CAAU,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;AACL,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 { exit } from 'node:process';
|
|
11
|
+
import { Spinner } from './utils/spinner.js';
|
|
12
|
+
import { chalk } from './utils/format.js';
|
|
13
|
+
import { resolveAppPackage, resolveAppKey } from '../lib/app-package.js';
|
|
14
|
+
import { isAppRegistered, getEndpointUrl, requireToken, uploadAppBundle } from './utils/index.js';
|
|
15
|
+
import assert from 'node:assert';
|
|
16
|
+
export const uploadApplication = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
const { bundle, env, service } = options;
|
|
18
|
+
const spinner = Spinner.Global({ prefixText: chalk.dim('Upload') });
|
|
19
|
+
try {
|
|
20
|
+
spinner.info('Validating FUSION_TOKEN');
|
|
21
|
+
// make sure token exist
|
|
22
|
+
requireToken();
|
|
23
|
+
// call service discovery with token, will throw error if failed
|
|
24
|
+
yield getEndpointUrl('apps', env, '');
|
|
25
|
+
spinner.succeed('Found valid FUSION_TOKEN');
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
const err = e;
|
|
29
|
+
spinner.fail(chalk.bgRed(err.message));
|
|
30
|
+
exit(1);
|
|
31
|
+
}
|
|
32
|
+
/* get package.json */
|
|
33
|
+
const pkg = yield resolveAppPackage();
|
|
34
|
+
const appKey = resolveAppKey(pkg.packageJson);
|
|
35
|
+
try {
|
|
36
|
+
spinner.info(`Verifying that ${appKey} is registered`);
|
|
37
|
+
const state = { endpoint: '' };
|
|
38
|
+
try {
|
|
39
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
const err = e;
|
|
43
|
+
throw new Error(`Could not get endpoint from service discovery while verifying app. service-discovery status: ${err.message}`);
|
|
44
|
+
}
|
|
45
|
+
spinner.info('Using endpoint:', state.endpoint);
|
|
46
|
+
const exist = yield isAppRegistered(state.endpoint);
|
|
47
|
+
assert(exist, `${appKey} is not registered`);
|
|
48
|
+
spinner.succeed(`${appKey} is registered`);
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
const err = e;
|
|
52
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
/* Upload app bundle */
|
|
56
|
+
try {
|
|
57
|
+
spinner.info(`Uploading bundle ${chalk.yellowBright(bundle)} to appKey ${chalk.yellowBright(appKey)}`);
|
|
58
|
+
const endpoint = yield getEndpointUrl(`bundles/apps/${appKey}`, env, service);
|
|
59
|
+
if (!endpoint) {
|
|
60
|
+
throw new Error('Could not get endpoint from service discovery');
|
|
61
|
+
}
|
|
62
|
+
spinner.info(`Posting bundle to => ${endpoint}`);
|
|
63
|
+
const uploadedBundle = yield uploadAppBundle(endpoint, bundle);
|
|
64
|
+
spinner.succeed('✅', `Uploaded app: "${chalk.greenBright(appKey)}"`, `Version: "${chalk.greenBright(uploadedBundle.version)}"`);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
const err = e;
|
|
68
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
69
|
+
exit(1);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=upload-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-application.js","sourceRoot":"","sources":["../../src/bin/upload-application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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 { existsSync, readFileSync } from 'node:fs';
|
|
11
|
+
import semverValid from 'semver/functions/valid.js';
|
|
12
|
+
import { chalk } from './utils/format.js';
|
|
13
|
+
import { Spinner } from './utils/spinner.js';
|
|
14
|
+
import { getEndpointUrl, loadPackage, isAppRegistered, requireToken, publishAppConfig, } from './utils/index.js';
|
|
15
|
+
import { resolveAppKey } from '../lib/app-package.js';
|
|
16
|
+
import { exit } from 'node:process';
|
|
17
|
+
import assert from 'node:assert';
|
|
18
|
+
export const uploadExportConfig = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const { configFile, version: pubVersion, env, service } = options;
|
|
20
|
+
const spinner = Spinner.Global({ prefixText: chalk.dim('config') });
|
|
21
|
+
const pkg = yield loadPackage();
|
|
22
|
+
const appKey = resolveAppKey(pkg.packageJson);
|
|
23
|
+
if (!existsSync(`${configFile}`)) {
|
|
24
|
+
throw new Error(`Config file ${configFile} does not exist`);
|
|
25
|
+
}
|
|
26
|
+
const config = JSON.parse(readFileSync(`${configFile}`, 'utf8'));
|
|
27
|
+
spinner.info('Preparing to publishing config');
|
|
28
|
+
/* Make sure version is valid */
|
|
29
|
+
const version = pubVersion === 'current' ? pkg.packageJson.version : pubVersion;
|
|
30
|
+
if (!version || (!semverValid(version) && !['latest', 'preview'].includes(version))) {
|
|
31
|
+
spinner.fail('🙅♂️', 'Can not publish config to invalid version', chalk.redBright(version), '');
|
|
32
|
+
exit(1);
|
|
33
|
+
}
|
|
34
|
+
/** make sure user has a valid token */
|
|
35
|
+
try {
|
|
36
|
+
spinner.info('Validating FUSION_TOKEN');
|
|
37
|
+
// make sure token exist
|
|
38
|
+
requireToken();
|
|
39
|
+
// call service discovery with token, will throw error if failed
|
|
40
|
+
yield getEndpointUrl('apps', env, '');
|
|
41
|
+
spinner.succeed('Found valid FUSION_TOKEN');
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
const err = e;
|
|
45
|
+
spinner.fail(chalk.bgRed(err.message));
|
|
46
|
+
exit(1);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
spinner.info('Verifying that App is registered');
|
|
50
|
+
const state = { endpoint: '' };
|
|
51
|
+
try {
|
|
52
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
const err = e;
|
|
56
|
+
throw new Error(`Could not get endpoint from service discovery while verifying app. service-discovery status: ${err.message}`);
|
|
57
|
+
}
|
|
58
|
+
const exist = yield isAppRegistered(state.endpoint);
|
|
59
|
+
assert(exist, `${appKey} is not registered`);
|
|
60
|
+
spinner.succeed(`${appKey} is registered`);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
const err = e;
|
|
64
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
spinner.info(`Publishing config to "${appKey}@${version}"`);
|
|
69
|
+
const state = { endpoint: '' };
|
|
70
|
+
try {
|
|
71
|
+
state.endpoint = yield getEndpointUrl(`apps/${appKey}/builds/${version}/config`, env, service);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
const err = e;
|
|
75
|
+
throw new Error(`Could not get endpoint from service discovery while publishig config. service-discovery status: ${err.message}`);
|
|
76
|
+
}
|
|
77
|
+
yield publishAppConfig(state.endpoint, appKey, config);
|
|
78
|
+
spinner.succeed('✅', 'Published config to version', chalk.yellowBright(version));
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
const err = e;
|
|
82
|
+
spinner.fail('🙅♂️', chalk.bgRed(err.message));
|
|
83
|
+
exit(1);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
export default uploadExportConfig;
|
|
87
|
+
//# sourceMappingURL=upload-export-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-export-config.js","sourceRoot":"","sources":["../../src/bin/upload-export-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 { fork } from 'node:child_process';
|
|
11
|
+
import { assert } from 'node:console';
|
|
12
|
+
export const executeCommand = (program, command,
|
|
13
|
+
// TODO map command args
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
...options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
assert(process.env.CLI_BIN, 'expected bin path in env');
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
const job = fork(String(process.env.CLI_BIN), [program, command, ...(options !== null && options !== void 0 ? options : [])], {});
|
|
19
|
+
job.addListener('close', resolve);
|
|
20
|
+
job.addListener('error', reject);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=execute-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-command.js","sourceRoot":"","sources":["../../../src/bin/utils/execute-command.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAUtC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,OAAiB,EACjB,OAAiC;AACjC,wBAAwB;AACxB,8DAA8D;AAC9D,GAAG,OAAc,EACnB,EAAE;IACA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { relative } from 'node:path';
|
|
2
|
+
import { statSync } from 'node:fs';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import prettyBytes from 'pretty-bytes';
|
|
5
|
+
export { chalk };
|
|
6
|
+
export const formatPath = (path, opt) => {
|
|
7
|
+
var _a;
|
|
8
|
+
return chalk.blueBright((opt === null || opt === void 0 ? void 0 : opt.relative) ? './' + relative((_a = opt === null || opt === void 0 ? void 0 : opt.cwd) !== null && _a !== void 0 ? _a : process.cwd(), path) : path);
|
|
9
|
+
};
|
|
10
|
+
export const formatByteSize = (input) => {
|
|
11
|
+
if (typeof input === 'string') {
|
|
12
|
+
return formatByteSize(statSync(input).size);
|
|
13
|
+
}
|
|
14
|
+
return chalk.yellowBright(prettyBytes(input));
|
|
15
|
+
};
|
|
16
|
+
export default chalk;
|
|
17
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/bin/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,GAA0C,EAAE,EAAE;;IACnF,OAAO,KAAK,CAAC,UAAU,CACnB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,mCAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1E,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 fetch from 'node-fetch';
|
|
11
|
+
/**
|
|
12
|
+
* Retreive full endpoint URI to env in service-discovery
|
|
13
|
+
* @param endpoint <string> The endpoint to call in+ uri
|
|
14
|
+
* @param fusionEnv <FusionEnv> The Fusion env to get uri for
|
|
15
|
+
* @param service <string> Custom service uri to use insted of Fusion
|
|
16
|
+
* @param version <string> The version of the api to use
|
|
17
|
+
* @returns <string> The uri with endpoint
|
|
18
|
+
*/
|
|
19
|
+
export const getEndpointUrl = (endpoint_1, fusionEnv_1, service_1, ...args_1) => __awaiter(void 0, [endpoint_1, fusionEnv_1, service_1, ...args_1], void 0, function* (endpoint, fusionEnv, service, version = '1.0') {
|
|
20
|
+
const { CUSTOM_APPAPI, FUSION_CLI_ENV, FUSION_TOKEN } = process.env;
|
|
21
|
+
/* use consumer provided api url */
|
|
22
|
+
if (service || CUSTOM_APPAPI) {
|
|
23
|
+
return service !== null && service !== void 0 ? service : CUSTOM_APPAPI;
|
|
24
|
+
}
|
|
25
|
+
/* Env has changed get new api url */
|
|
26
|
+
if (FUSION_CLI_ENV !== fusionEnv || !process.env.FUSION_CLI_APPAPI) {
|
|
27
|
+
process.env.FUSION_CLI_ENV = fusionEnv;
|
|
28
|
+
const requestService = yield fetch(`https://discovery.fusion.equinor.com/service-registry/environments/${fusionEnv}/services/apps`, {
|
|
29
|
+
headers: {
|
|
30
|
+
Authorization: `Bearer ${FUSION_TOKEN}`,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (requestService.status === 401) {
|
|
34
|
+
throw new Error(`The provided FUSION_TOKEN is not valid. Refresh your token and try again.`);
|
|
35
|
+
}
|
|
36
|
+
if (!requestService.ok) {
|
|
37
|
+
const response = yield requestService.json();
|
|
38
|
+
console.log(response);
|
|
39
|
+
throw new Error(`Failed getEndpointUrl from service-discovery. HTTP status: ${requestService.status} - ${requestService.statusText}`);
|
|
40
|
+
}
|
|
41
|
+
const responseService = (yield requestService.json());
|
|
42
|
+
process.env.FUSION_CLI_APPAPI = responseService.uri;
|
|
43
|
+
}
|
|
44
|
+
const uri = new URL(`${process.env.FUSION_CLI_APPAPI}/${endpoint}`);
|
|
45
|
+
uri.searchParams.set('api-version', version);
|
|
46
|
+
/* return fresh/cached endpoint url */
|
|
47
|
+
return uri.href;
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=getEndpointUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEndpointUrl.js","sourceRoot":"","sources":["../../../src/bin/utils/getEndpointUrl.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,gDAKX,EAAE,uFAJjB,QAAgB,EAChB,SAAoB,EACpB,OAAe,EACf,UAAkB,KAAK;IAEvB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAEpE,mCAAmC;IACnC,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;QAC3B,OAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,aAAa,CAAC;IACpC,CAAC;IAED,qCAAqC;IACrC,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;QAEvC,MAAM,cAAc,GAAG,MAAM,KAAK,CAC9B,sEAAsE,SAAS,gBAAgB,EAC/F;YACI,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,YAAY,EAAE;aAC1C;SACJ,CACJ,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACX,2EAA2E,CAC9E,CAAC;QACN,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,8DAA8D,cAAc,CAAC,MAAM,MAAM,cAAc,CAAC,UAAU,EAAE,CACvH,CAAC;QACN,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAoB,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC;IACxD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAE7C,sCAAsC;IACtC,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { getEndpointUrl } from './getEndpointUrl.js';
|
|
2
|
+
export { requireToken } from './requireToken.js';
|
|
3
|
+
export { isAppRegistered } from './isAppRegistered.js';
|
|
4
|
+
export { loadAppConfig } from './load-app-config.js';
|
|
5
|
+
export { loadAppManifest } from './load-manifest.js';
|
|
6
|
+
export { loadPackage } from './load-package.js';
|
|
7
|
+
export { loadViteConfig } from './load-vite-config.js';
|
|
8
|
+
export { formatPath, formatByteSize } from './format.js';
|
|
9
|
+
export { executeCommand } from './execute-command.js';
|
|
10
|
+
export { publishAppConfig } from './publishAppConfig.js';
|
|
11
|
+
export { tagAppBundle } from './tagAppBundle.js';
|
|
12
|
+
export { uploadAppBundle } from './uploadAppBundle.js';
|
|
13
|
+
export { Spinner } from './spinner.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,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
|
+
import fetch from 'node-fetch';
|
|
11
|
+
/**
|
|
12
|
+
* Make sure the app is registerred in the app-service
|
|
13
|
+
* @param endpoint <string> The endpoint to make a call to
|
|
14
|
+
*/
|
|
15
|
+
export const isAppRegistered = (endpoint) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const requestApp = yield fetch(endpoint, {
|
|
17
|
+
method: 'HEAD',
|
|
18
|
+
headers: {
|
|
19
|
+
Authorization: `Bearer ${process.env.FUSION_TOKEN}`,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
/** Assume that ok response asserts that app exists */
|
|
23
|
+
if (requestApp.ok) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (requestApp.status === 404) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (requestApp.status === 410) {
|
|
30
|
+
throw Error('App is deleted.');
|
|
31
|
+
}
|
|
32
|
+
const data = yield requestApp.json();
|
|
33
|
+
throw Error('Custom Fusion error, see cause.', { cause: data });
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=isAppRegistered.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAppRegistered.js","sourceRoot":"","sources":["../../../src/bin/utils/isAppRegistered.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,QAAgB,EAAoB,EAAE;IACxE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;SACtD;KACJ,CAAC,CAAC;IAEH,sDAAsD;IACtD,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC,CAAA,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
|
+
import { Spinner } from './spinner.js';
|
|
11
|
+
import { formatPath, chalk } from './format.js';
|
|
12
|
+
import { createAppConfig } from '../../lib/app-config.js';
|
|
13
|
+
export const loadAppConfig = (env, pkg, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
const spinner = Spinner.Current;
|
|
15
|
+
try {
|
|
16
|
+
spinner.start('create application configuration');
|
|
17
|
+
spinner.info(`generating config with ${chalk.red.dim(env.command)} command in ${chalk.green.dim(env.mode)} mode`);
|
|
18
|
+
const baseAppConfig = {};
|
|
19
|
+
const appConfig = yield createAppConfig(env, baseAppConfig, { file: options === null || options === void 0 ? void 0 : options.file });
|
|
20
|
+
spinner.succeed();
|
|
21
|
+
if (appConfig.path) {
|
|
22
|
+
spinner.info(`generating config from ${formatPath(appConfig.path, { relative: true })}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
spinner.info(chalk.dim('no local application config applied, using built-in'));
|
|
26
|
+
}
|
|
27
|
+
return appConfig;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
spinner.fail(`failed to resolve application config ${(options === null || options === void 0 ? void 0 : options.file) ? formatPath(options === null || options === void 0 ? void 0 : options.file) : ''}`);
|
|
31
|
+
throw err;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export default loadAppConfig;
|
|
35
|
+
//# sourceMappingURL=load-app-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-app-config.js","sourceRoot":"","sources":["../../../src/bin/utils/load-app-config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,GAAsB,EACtB,GAAuB,EACvB,OAEC,EACH,EAAE;IACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CACR,0BAA0B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CACtG,CAAC;QACF,MAAM,aAAa,GAAiB,EAAkB,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CACR,0BAA0B,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAC7E,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CACR,wCACI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAChD,EAAE,CACL,CAAC;QACF,MAAM,GAAG,CAAC;IACd,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,eAAe,aAAa,CAAC"}
|