@equinor/fusion-framework-cli 11.0.0-next.3 → 11.0.0-next.5
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 +28 -0
- package/bin/build/bin.js +1 -1
- package/bin/build/cli.js +11 -20
- package/bin/build/{portal-pack-tYUpOtku.js → portal-pack-qpEBTWNW.js} +40 -29
- package/dist/esm/bin/app-dev.js +17 -7
- package/dist/esm/bin/app-dev.js.map +1 -1
- package/dist/esm/bin/portal-dev.js +11 -18
- package/dist/esm/bin/portal-dev.js.map +1 -1
- package/dist/esm/bin/utils/create-dev-server.js +3 -5
- package/dist/esm/bin/utils/create-dev-server.js.map +1 -1
- package/dist/esm/lib/portal/create-portal-manifest.js +5 -5
- package/dist/esm/lib/portal/create-portal-manifest.js.map +1 -1
- package/dist/esm/lib/portal/load-portal-manifest.js +1 -1
- package/dist/esm/lib/portal/load-portal-manifest.js.map +1 -1
- package/dist/esm/lib/portal/portal-manifest.schema.js +1 -1
- package/dist/esm/lib/portal/portal-manifest.schema.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/bin/utils/create-dev-server.d.ts +3 -3
- package/dist/types/lib/portal/load-portal-manifest.d.ts +3 -3
- package/dist/types/lib/portal/portal-manifest.schema.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 11.0.0-next.5
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#3075](https://github.com/equinor/fusion-framework/pull/3075) [`a3ce07a`](https://github.com/equinor/fusion-framework/commit/a3ce07a367ae8d5a6dbac438c25928df54aefecf) Thanks [@odinr](https://github.com/odinr)! - - Portal manifest now uses `name` (unscoped) and `templateEntry` instead of `id` and `entrypoint` for improved consistency with app manifests.
|
|
8
|
+
|
|
9
|
+
- Dev server configuration and routing updated to expect and utilize the new manifest structure.
|
|
10
|
+
- Asset paths for development and preview builds now use `/@fs` for more reliable local development.
|
|
11
|
+
- Type safety and schema validation for portal manifests have been improved.
|
|
12
|
+
- Minor typos fixed and comments clarified throughout related files.
|
|
13
|
+
|
|
14
|
+
This refactor unifies manifest handling between apps and portals, simplifies local development, and ensures better type safety and validation. It also improves maintainability and developer experience by making configuration more predictable and robust.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [[`2ed792a`](https://github.com/equinor/fusion-framework/commit/2ed792a1118f3726f811c4dbdf8d25c69d7bb756), [`d9a7ada`](https://github.com/equinor/fusion-framework/commit/d9a7ada786bfac3a0714f38c1379b5aac09a0f71)]:
|
|
19
|
+
- @equinor/fusion-framework-dev-server@1.0.0-next.3
|
|
20
|
+
- @equinor/fusion-imports@1.1.1-next.0
|
|
21
|
+
- @equinor/fusion-framework-dev-portal@1.0.0-next.2
|
|
22
|
+
|
|
23
|
+
## 11.0.0-next.4
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies []:
|
|
28
|
+
- @equinor/fusion-framework-dev-server@1.0.0-next.2
|
|
29
|
+
- @equinor/fusion-framework-dev-portal@1.0.0-next.2
|
|
30
|
+
|
|
3
31
|
## 11.0.0-next.3
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
package/bin/build/bin.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { b as buildApplication, c as buildPortal, a as bundleApp, d as bundlePortal, g as generateApplicationConfig, l as loadPortalManifest, e as pack, p as publishAppConfig, s as startAppDevServer } from './portal-pack-
|
|
1
|
+
export { b as buildApplication, c as buildPortal, a as bundleApp, d as bundlePortal, g as generateApplicationConfig, l as loadPortalManifest, e as pack, p as publishAppConfig, s as startAppDevServer } from './portal-pack-qpEBTWNW.js';
|
|
2
2
|
import 'vite';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import '@azure/msal-node';
|
package/bin/build/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createCommand, createOption, InvalidOptionArgumentError, Command } from
|
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
7
|
import 'pretty-bytes';
|
|
8
|
-
import { S as Spinner, b as buildApplication, a as bundleApp, F as FusionEnv, r as resolveDefaultEnv, f as resolveProjectPackage, h as resolveAppManifest, i as initializeFramework, p as publishAppConfig, g as generateApplicationConfig, j as formatPath, H as HttpJsonResponseError, k as loadAppManifest, s as startAppDevServer, m as fileExistsSync, N as NoAccountsError, n as createDevServer, l as loadPortalManifest,
|
|
8
|
+
import { S as Spinner, b as buildApplication, a as bundleApp, F as FusionEnv, r as resolveDefaultEnv, f as resolveProjectPackage, h as resolveAppManifest, i as initializeFramework, p as publishAppConfig, g as generateApplicationConfig, j as formatPath, H as HttpJsonResponseError, k as loadAppManifest, s as startAppDevServer, m as fileExistsSync, N as NoAccountsError, n as resolvePortalManifest, o as createDevServer, l as loadPortalManifest, q as getDefaultExportFromCjs, t as loadPortalSchema, w as writeFile$1, c as buildPortal, d as bundlePortal } from './portal-pack-qpEBTWNW.js';
|
|
9
9
|
import { importJSON } from '@equinor/fusion-imports';
|
|
10
10
|
import 'lodash.mergewith';
|
|
11
11
|
import '@equinor/fusion-framework-dev-server';
|
|
@@ -174,10 +174,6 @@ const command$o = createCommand('build')
|
|
|
174
174
|
await buildApplication({ log, manifest });
|
|
175
175
|
});
|
|
176
176
|
|
|
177
|
-
function getDefaultExportFromCjs (x) {
|
|
178
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
177
|
const defaultArchive = 'app-bundle.zip';
|
|
182
178
|
/**
|
|
183
179
|
* CLI command: `pack`
|
|
@@ -1473,20 +1469,11 @@ const startPortalDevServer = async (options) => {
|
|
|
1473
1469
|
mode: 'development', // Force development mode
|
|
1474
1470
|
command: 'serve', // Command is always 'serve' for dev
|
|
1475
1471
|
};
|
|
1476
|
-
//
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
id: 'dev-portal-dummy',
|
|
1482
|
-
build: {
|
|
1483
|
-
entrypoint: resolve$1(env.root || '', 'src/index.ts'),
|
|
1484
|
-
// if this is portal - portal-template-manifest
|
|
1485
|
-
template: {},
|
|
1486
|
-
},
|
|
1487
|
-
};
|
|
1488
|
-
};
|
|
1489
|
-
const portalManifest = await resolvePortalManifest();
|
|
1472
|
+
// Resolve the portal manifest using the environment and manifest path
|
|
1473
|
+
const portalManifest = await resolvePortalManifest(env, pkg, {
|
|
1474
|
+
log,
|
|
1475
|
+
manifestPath: options?.manifest,
|
|
1476
|
+
});
|
|
1490
1477
|
// Dummy implementation for resolving the portal config
|
|
1491
1478
|
const resolvePortalConfig = async (...args) => ({ foo: 'bar' });
|
|
1492
1479
|
// Resolve the portal config (replace with real logic as needed)
|
|
@@ -1496,15 +1483,19 @@ const startPortalDevServer = async (options) => {
|
|
|
1496
1483
|
const devServer = await createDevServer(env, {
|
|
1497
1484
|
template: {
|
|
1498
1485
|
portal: {
|
|
1499
|
-
id: portalManifest.
|
|
1486
|
+
id: portalManifest.name,
|
|
1500
1487
|
},
|
|
1501
1488
|
},
|
|
1502
1489
|
portal: {
|
|
1503
1490
|
manifest: portalManifest,
|
|
1504
1491
|
config: portalConfig,
|
|
1505
1492
|
},
|
|
1493
|
+
}, {
|
|
1506
1494
|
server: {
|
|
1507
1495
|
port: options?.server?.port,
|
|
1496
|
+
fs: {
|
|
1497
|
+
allow: [pkg.root], // Allow access to the root directory
|
|
1498
|
+
},
|
|
1508
1499
|
},
|
|
1509
1500
|
});
|
|
1510
1501
|
await devServer.listen();
|
|
@@ -290,12 +290,10 @@ const applyAppRouting = (base, manifest, config) => {
|
|
|
290
290
|
throw new Error('App manifest does not contain build information');
|
|
291
291
|
}
|
|
292
292
|
base.api.routes ??= [];
|
|
293
|
-
console.warn('\n\n:::', 'Adding app routing for', appKey, 'version', build.version, 'tag', build.tag, ':::\n\n');
|
|
294
293
|
// add rewrite to local fs
|
|
295
294
|
base.api.routes.push({
|
|
296
295
|
match: `/apps/bundles/apps/${appKey}@${build.version}/*path`,
|
|
297
296
|
middleware: async (req, res, next) => {
|
|
298
|
-
console.warn('\n\n\n--', req.params, '--\n\n\n');
|
|
299
297
|
const location = req.params?.path;
|
|
300
298
|
if (Array.isArray(location) === false) {
|
|
301
299
|
next();
|
|
@@ -340,8 +338,9 @@ const applyAppRouting = (base, manifest, config) => {
|
|
|
340
338
|
*/
|
|
341
339
|
const applyPortalRouting = (base, manifest, config) => {
|
|
342
340
|
base.api.routes ??= [];
|
|
341
|
+
// @todo - might add correct tag handling later
|
|
343
342
|
base.api.routes.push({
|
|
344
|
-
match: `/portals/portals/${manifest.
|
|
343
|
+
match: `/portals/portals/${manifest.name}{@:tag}`,
|
|
345
344
|
middleware: async (_req, res) => {
|
|
346
345
|
res.writeHead(200, {
|
|
347
346
|
'content-type': 'application/json',
|
|
@@ -350,7 +349,7 @@ const applyPortalRouting = (base, manifest, config) => {
|
|
|
350
349
|
},
|
|
351
350
|
});
|
|
352
351
|
base.api.routes.push({
|
|
353
|
-
match: `/portals/portals/${manifest.
|
|
352
|
+
match: `/portals/portals/${manifest.name}{@:tag}/config`,
|
|
354
353
|
middleware: async (_req, res) => {
|
|
355
354
|
res.writeHead(200, {
|
|
356
355
|
'content-type': 'application/json',
|
|
@@ -386,7 +385,6 @@ const createDevServerConfig = (options) => {
|
|
|
386
385
|
};
|
|
387
386
|
},
|
|
388
387
|
},
|
|
389
|
-
server: options.server,
|
|
390
388
|
};
|
|
391
389
|
if (options.app) {
|
|
392
390
|
applyAppRouting(config, options.app.manifest, options.app.config);
|
|
@@ -1463,6 +1461,10 @@ class ServerSentEventResponseError extends HttpResponseError {
|
|
|
1463
1461
|
}
|
|
1464
1462
|
}
|
|
1465
1463
|
|
|
1464
|
+
function getDefaultExportFromCjs (x) {
|
|
1465
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1466
1468
|
var re = {exports: {}};
|
|
1467
1469
|
|
|
1468
1470
|
var constants;
|
|
@@ -1819,11 +1821,11 @@ function requireIdentifiers () {
|
|
|
1819
1821
|
return identifiers;
|
|
1820
1822
|
}
|
|
1821
1823
|
|
|
1822
|
-
var semver$
|
|
1824
|
+
var semver$2;
|
|
1823
1825
|
var hasRequiredSemver$1;
|
|
1824
1826
|
|
|
1825
1827
|
function requireSemver$1 () {
|
|
1826
|
-
if (hasRequiredSemver$1) return semver$
|
|
1828
|
+
if (hasRequiredSemver$1) return semver$2;
|
|
1827
1829
|
hasRequiredSemver$1 = 1;
|
|
1828
1830
|
|
|
1829
1831
|
const debug = requireDebug();
|
|
@@ -2142,8 +2144,8 @@ function requireSemver$1 () {
|
|
|
2142
2144
|
}
|
|
2143
2145
|
}
|
|
2144
2146
|
|
|
2145
|
-
semver$
|
|
2146
|
-
return semver$
|
|
2147
|
+
semver$2 = SemVer;
|
|
2148
|
+
return semver$2;
|
|
2147
2149
|
}
|
|
2148
2150
|
|
|
2149
2151
|
var parse_1;
|
|
@@ -4063,11 +4065,11 @@ function requireSubset () {
|
|
|
4063
4065
|
return subset_1;
|
|
4064
4066
|
}
|
|
4065
4067
|
|
|
4066
|
-
var semver;
|
|
4068
|
+
var semver$1;
|
|
4067
4069
|
var hasRequiredSemver;
|
|
4068
4070
|
|
|
4069
4071
|
function requireSemver () {
|
|
4070
|
-
if (hasRequiredSemver) return semver;
|
|
4072
|
+
if (hasRequiredSemver) return semver$1;
|
|
4071
4073
|
hasRequiredSemver = 1;
|
|
4072
4074
|
|
|
4073
4075
|
// just pre-load all the stuff that index.js lazily exports
|
|
@@ -4112,7 +4114,7 @@ function requireSemver () {
|
|
|
4112
4114
|
const intersects = requireIntersects();
|
|
4113
4115
|
const simplifyRange = requireSimplify();
|
|
4114
4116
|
const subset = requireSubset();
|
|
4115
|
-
semver = {
|
|
4117
|
+
semver$1 = {
|
|
4116
4118
|
parse,
|
|
4117
4119
|
valid,
|
|
4118
4120
|
clean,
|
|
@@ -4159,18 +4161,19 @@ function requireSemver () {
|
|
|
4159
4161
|
compareIdentifiers: identifiers.compareIdentifiers,
|
|
4160
4162
|
rcompareIdentifiers: identifiers.rcompareIdentifiers,
|
|
4161
4163
|
};
|
|
4162
|
-
return semver;
|
|
4164
|
+
return semver$1;
|
|
4163
4165
|
}
|
|
4164
4166
|
|
|
4165
4167
|
var semverExports = requireSemver();
|
|
4168
|
+
var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
4166
4169
|
|
|
4167
4170
|
/**
|
|
4168
4171
|
* Extension of {@link SemVer} to expose `satisfies`
|
|
4169
4172
|
* @see {@link [SemVer](https://www.npmjs.com/package/semver)}
|
|
4170
4173
|
*/
|
|
4171
|
-
class SemanticVersion extends
|
|
4174
|
+
class SemanticVersion extends semver.SemVer {
|
|
4172
4175
|
satisfies(arg) {
|
|
4173
|
-
return
|
|
4176
|
+
return semver.satisfies(this, arg);
|
|
4174
4177
|
}
|
|
4175
4178
|
}
|
|
4176
4179
|
|
|
@@ -11529,11 +11532,14 @@ const startAppDevServer = async (options) => {
|
|
|
11529
11532
|
// Resolve the application config using the environment and config path
|
|
11530
11533
|
const appConfig = await resolveAppConfig(env, { log, config: options?.config });
|
|
11531
11534
|
// Attempt to resolve the portal entry point if the portal is local
|
|
11532
|
-
let
|
|
11535
|
+
let templateEntry;
|
|
11536
|
+
let templateFilePath;
|
|
11533
11537
|
const portalFilePath = fileURLToPath(import.meta.resolve(portalId));
|
|
11534
11538
|
if (fileExistsSync(portalFilePath)) {
|
|
11535
11539
|
// If the portal file exists locally, set the entry point for the dev server
|
|
11536
|
-
|
|
11540
|
+
templateEntry = portalFilePath;
|
|
11541
|
+
// Resolve the directory of the portal file for potential asset paths
|
|
11542
|
+
templateFilePath = await readPackageUp({ cwd: portalFilePath }).then((x) => x ? dirname(x?.path) : undefined);
|
|
11537
11543
|
}
|
|
11538
11544
|
else {
|
|
11539
11545
|
// Otherwise, log that the portal is external and skip entry point resolution
|
|
@@ -11548,13 +11554,14 @@ const startAppDevServer = async (options) => {
|
|
|
11548
11554
|
},
|
|
11549
11555
|
},
|
|
11550
11556
|
// If a local portal entry point is found, add it to the config
|
|
11551
|
-
...(
|
|
11557
|
+
...(templateEntry
|
|
11552
11558
|
? {
|
|
11553
11559
|
portal: {
|
|
11554
11560
|
manifest: {
|
|
11555
|
-
|
|
11561
|
+
name: portalId,
|
|
11556
11562
|
build: {
|
|
11557
|
-
|
|
11563
|
+
templateEntry,
|
|
11564
|
+
assetPath: '/@fs',
|
|
11558
11565
|
},
|
|
11559
11566
|
},
|
|
11560
11567
|
// @todo - replace with real portal config when available
|
|
@@ -11566,9 +11573,13 @@ const startAppDevServer = async (options) => {
|
|
|
11566
11573
|
manifest: appManifest,
|
|
11567
11574
|
config: appConfig,
|
|
11568
11575
|
},
|
|
11576
|
+
}, {
|
|
11569
11577
|
server: {
|
|
11570
|
-
port: options?.port || 3000,
|
|
11571
|
-
host: 'localhost',
|
|
11578
|
+
port: options?.port || 3000,
|
|
11579
|
+
host: 'localhost',
|
|
11580
|
+
fs: {
|
|
11581
|
+
allow: templateFilePath ? [pkg.root, templateFilePath] : [pkg.root],
|
|
11582
|
+
},
|
|
11572
11583
|
},
|
|
11573
11584
|
});
|
|
11574
11585
|
await devServer.listen();
|
|
@@ -11721,7 +11732,7 @@ const PortalManifestSchema = z$1.object({
|
|
|
11721
11732
|
* @template T - The type of the portal manifest, extending Partial<PortalManifest>. Defaults to PortalManifest.
|
|
11722
11733
|
* @param env - The runtime environment containing configuration such as the root directory and environment name.
|
|
11723
11734
|
* @param options - Optional settings for loading the manifest.
|
|
11724
|
-
* @returns A promise that resolves to a `
|
|
11735
|
+
* @returns A promise that resolves to a `LoadPortalManifestResult<T>` containing the loaded manifest, the file path, and the file extension.
|
|
11725
11736
|
*
|
|
11726
11737
|
* This function is the main entry point for loading portal manifest files. It supports merging with a base manifest, custom file name suggestions, and extension filtering.
|
|
11727
11738
|
*
|
|
@@ -11811,13 +11822,13 @@ const createPortalManifestFromPackage = (env, packageJson) => {
|
|
|
11811
11822
|
assert(packageJson.name, 'expected [name] in packageJson');
|
|
11812
11823
|
assert(packageJson.version, 'expected [version] in packageJson');
|
|
11813
11824
|
// Determine the entry point for the portal based on environment (prod/dev)
|
|
11814
|
-
const
|
|
11815
|
-
// Extract
|
|
11816
|
-
// Example: '@scope/
|
|
11825
|
+
const templateEntry = resolvePortalEntryPoint(env, packageJson);
|
|
11826
|
+
// Extract portal id from package name by removing the scope and leading @
|
|
11827
|
+
// Example: '@scope/portal-name' -> 'portal-name'
|
|
11817
11828
|
const name = packageJson.name.replace(/^@|\w.*\//gm, '');
|
|
11818
11829
|
const version = packageJson.version;
|
|
11819
11830
|
// Only set assetPath when not building for production (used for dev/preview)
|
|
11820
|
-
const assetPath = env.command === 'build' ? undefined :
|
|
11831
|
+
const assetPath = env.command === 'build' ? undefined : '/@fs';
|
|
11821
11832
|
// Attempt to resolve GitHub repo from package, fallback to local git remote
|
|
11822
11833
|
const githubRepo = resolveRepoFromPackage(packageJson) ?? resolveGitRemoteUrl();
|
|
11823
11834
|
// Construct the portal manifest object with all required fields
|
|
@@ -11826,7 +11837,7 @@ const createPortalManifestFromPackage = (env, packageJson) => {
|
|
|
11826
11837
|
displayName: packageJson.name,
|
|
11827
11838
|
description: packageJson.description || '',
|
|
11828
11839
|
build: {
|
|
11829
|
-
templateEntry
|
|
11840
|
+
templateEntry,
|
|
11830
11841
|
schemaEntry: 'portal.schema.json',
|
|
11831
11842
|
assetPath,
|
|
11832
11843
|
githubRepo,
|
|
@@ -12070,4 +12081,4 @@ const bundlePortal = async (options) => {
|
|
|
12070
12081
|
};
|
|
12071
12082
|
};
|
|
12072
12083
|
|
|
12073
|
-
export { FusionEnv as F, HttpJsonResponseError as H, NoAccountsError as N, Spinner as S, bundleApp as a, buildApplication as b, buildPortal as c, bundlePortal as d, pack as e, resolveProjectPackage as f, generateApplicationConfig as g, resolveAppManifest as h, initializeFramework as i, formatPath as j, loadAppManifest as k, loadPortalManifest as l, fileExistsSync as m,
|
|
12084
|
+
export { FusionEnv as F, HttpJsonResponseError as H, NoAccountsError as N, Spinner as S, bundleApp as a, buildApplication as b, buildPortal as c, bundlePortal as d, pack as e, resolveProjectPackage as f, generateApplicationConfig as g, resolveAppManifest as h, initializeFramework as i, formatPath as j, loadAppManifest as k, loadPortalManifest as l, fileExistsSync as m, resolvePortalManifest as n, createDevServer as o, publishAppConfig as p, getDefaultExportFromCjs as q, resolveDefaultEnv as r, startAppDevServer as s, loadPortalSchema as t, writeFile as w };
|
package/dist/esm/bin/app-dev.js
CHANGED
|
@@ -4,6 +4,8 @@ import { resolveAppConfig } from './helpers/resolve-app-config.js';
|
|
|
4
4
|
import { resolveProjectPackage } from './helpers/resolve-project-package.js';
|
|
5
5
|
import { resolveAppManifest } from './helpers/resolve-app-manifest.js';
|
|
6
6
|
import { createDevServer } from './utils/create-dev-server.js';
|
|
7
|
+
import { readPackageUp } from 'read-package-up';
|
|
8
|
+
import { dirname } from 'node:path';
|
|
7
9
|
/**
|
|
8
10
|
* Starts the application development server for local development.
|
|
9
11
|
*
|
|
@@ -37,11 +39,14 @@ export const startAppDevServer = async (options) => {
|
|
|
37
39
|
// Resolve the application config using the environment and config path
|
|
38
40
|
const appConfig = await resolveAppConfig(env, { log, config: options?.config });
|
|
39
41
|
// Attempt to resolve the portal entry point if the portal is local
|
|
40
|
-
let
|
|
42
|
+
let templateEntry;
|
|
43
|
+
let templateFilePath;
|
|
41
44
|
const portalFilePath = fileURLToPath(import.meta.resolve(portalId));
|
|
42
45
|
if (fileExistsSync(portalFilePath)) {
|
|
43
46
|
// If the portal file exists locally, set the entry point for the dev server
|
|
44
|
-
|
|
47
|
+
templateEntry = portalFilePath;
|
|
48
|
+
// Resolve the directory of the portal file for potential asset paths
|
|
49
|
+
templateFilePath = await readPackageUp({ cwd: portalFilePath }).then((x) => x ? dirname(x?.path) : undefined);
|
|
45
50
|
}
|
|
46
51
|
else {
|
|
47
52
|
// Otherwise, log that the portal is external and skip entry point resolution
|
|
@@ -56,13 +61,14 @@ export const startAppDevServer = async (options) => {
|
|
|
56
61
|
},
|
|
57
62
|
},
|
|
58
63
|
// If a local portal entry point is found, add it to the config
|
|
59
|
-
...(
|
|
64
|
+
...(templateEntry
|
|
60
65
|
? {
|
|
61
66
|
portal: {
|
|
62
67
|
manifest: {
|
|
63
|
-
|
|
68
|
+
name: portalId,
|
|
64
69
|
build: {
|
|
65
|
-
|
|
70
|
+
templateEntry,
|
|
71
|
+
assetPath: '/@fs',
|
|
66
72
|
},
|
|
67
73
|
},
|
|
68
74
|
// @todo - replace with real portal config when available
|
|
@@ -74,9 +80,13 @@ export const startAppDevServer = async (options) => {
|
|
|
74
80
|
manifest: appManifest,
|
|
75
81
|
config: appConfig,
|
|
76
82
|
},
|
|
83
|
+
}, {
|
|
77
84
|
server: {
|
|
78
|
-
port: options?.port || 3000,
|
|
79
|
-
host: 'localhost',
|
|
85
|
+
port: options?.port || 3000,
|
|
86
|
+
host: 'localhost',
|
|
87
|
+
fs: {
|
|
88
|
+
allow: templateFilePath ? [pkg.root, templateFilePath] : [pkg.root],
|
|
89
|
+
},
|
|
80
90
|
},
|
|
81
91
|
});
|
|
82
92
|
await devServer.listen();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-dev.js","sourceRoot":"","sources":["../../../src/bin/app-dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"app-dev.js","sourceRoot":"","sources":["../../../src/bin/app-dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
1
|
import { createDevServer } from './utils';
|
|
3
2
|
import { resolveProjectPackage } from './helpers/resolve-project-package.js';
|
|
3
|
+
import { resolvePortalManifest } from './helpers/resolve-portal-manifest';
|
|
4
4
|
/**
|
|
5
5
|
* Starts the portal development server for local development and testing.
|
|
6
6
|
*
|
|
@@ -14,8 +14,6 @@ import { resolveProjectPackage } from './helpers/resolve-project-package.js';
|
|
|
14
14
|
*/
|
|
15
15
|
export const startPortalDevServer = async (options) => {
|
|
16
16
|
const { log } = options ?? {};
|
|
17
|
-
// The portalId is currently hardcoded, but could be made configurable in the future
|
|
18
|
-
const portalId = '@equinor/fusion-framework-dev-portal';
|
|
19
17
|
// Resolve the application's package.json for root and metadata
|
|
20
18
|
const pkg = await resolveProjectPackage(log);
|
|
21
19
|
// Setup the runtime environment for the dev server
|
|
@@ -26,20 +24,11 @@ export const startPortalDevServer = async (options) => {
|
|
|
26
24
|
mode: 'development', // Force development mode
|
|
27
25
|
command: 'serve', // Command is always 'serve' for dev
|
|
28
26
|
};
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
id: 'dev-portal-dummy',
|
|
35
|
-
build: {
|
|
36
|
-
entrypoint: resolve(env.root || '', 'src/index.ts'),
|
|
37
|
-
// if this is portal - portal-template-manifest
|
|
38
|
-
template: {},
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
const portalManifest = await resolvePortalManifest();
|
|
27
|
+
// Resolve the portal manifest using the environment and manifest path
|
|
28
|
+
const portalManifest = await resolvePortalManifest(env, pkg, {
|
|
29
|
+
log,
|
|
30
|
+
manifestPath: options?.manifest,
|
|
31
|
+
});
|
|
43
32
|
// Dummy implementation for resolving the portal config
|
|
44
33
|
const resolvePortalConfig = async (...args) => ({ foo: 'bar' });
|
|
45
34
|
// Resolve the portal config (replace with real logic as needed)
|
|
@@ -49,15 +38,19 @@ export const startPortalDevServer = async (options) => {
|
|
|
49
38
|
const devServer = await createDevServer(env, {
|
|
50
39
|
template: {
|
|
51
40
|
portal: {
|
|
52
|
-
id: portalManifest.
|
|
41
|
+
id: portalManifest.name,
|
|
53
42
|
},
|
|
54
43
|
},
|
|
55
44
|
portal: {
|
|
56
45
|
manifest: portalManifest,
|
|
57
46
|
config: portalConfig,
|
|
58
47
|
},
|
|
48
|
+
}, {
|
|
59
49
|
server: {
|
|
60
50
|
port: options?.server?.port,
|
|
51
|
+
fs: {
|
|
52
|
+
allow: [pkg.root], // Allow access to the root directory
|
|
53
|
+
},
|
|
61
54
|
},
|
|
62
55
|
});
|
|
63
56
|
await devServer.listen();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-dev.js","sourceRoot":"","sources":["../../../src/bin/portal-dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"portal-dev.js","sourceRoot":"","sources":["../../../src/bin/portal-dev.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAsB,MAAM,SAAS,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAuB1C,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE9B,+DAA+D;IAC/D,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE7C,mDAAmD;IACnD,MAAM,GAAG,GAAe;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,OAAO,EAAE,oCAAoC;QAC1D,GAAG,OAAO,EAAE,GAAG,EAAE,+BAA+B;QAChD,IAAI,EAAE,aAAa,EAAE,yBAAyB;QAC9C,OAAO,EAAE,OAAO,EAAE,oCAAoC;KACvD,CAAC;IAEF,sEAAsE;IACtE,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC3D,GAAG;QACH,YAAY,EAAE,OAAO,EAAE,QAAQ;KAChC,CAAC,CAAC;IAEH,uDAAuD;IACvD,MAAM,mBAAmB,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3E,gEAAgE;IAChE,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtF,GAAG,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,eAAe,CACrC,GAAG,EACH;QACE,QAAQ,EAAE;YACR,MAAM,EAAE;gBACN,EAAE,EAAE,cAAc,CAAC,IAAI;aACxB;SACF;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,YAAY;SACrB;KACF,EACD;QACE,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI;YAC3B,EAAE,EAAE;gBACF,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,qCAAqC;aACzD;SACF;KACF,CACF,CAAC;IAEF,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IAEzB,gDAAgD;IAChD,GAAG,EAAE,OAAO,CAAC,qCAAqC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExF,iDAAiD;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -53,12 +53,10 @@ const applyAppRouting = (base, manifest, config) => {
|
|
|
53
53
|
throw new Error('App manifest does not contain build information');
|
|
54
54
|
}
|
|
55
55
|
base.api.routes ??= [];
|
|
56
|
-
console.warn('\n\n:::', 'Adding app routing for', appKey, 'version', build.version, 'tag', build.tag, ':::\n\n');
|
|
57
56
|
// add rewrite to local fs
|
|
58
57
|
base.api.routes.push({
|
|
59
58
|
match: `/apps/bundles/apps/${appKey}@${build.version}/*path`,
|
|
60
59
|
middleware: async (req, res, next) => {
|
|
61
|
-
console.warn('\n\n\n--', req.params, '--\n\n\n');
|
|
62
60
|
const location = req.params?.path;
|
|
63
61
|
if (Array.isArray(location) === false) {
|
|
64
62
|
next();
|
|
@@ -103,8 +101,9 @@ const applyAppRouting = (base, manifest, config) => {
|
|
|
103
101
|
*/
|
|
104
102
|
const applyPortalRouting = (base, manifest, config) => {
|
|
105
103
|
base.api.routes ??= [];
|
|
104
|
+
// @todo - might add correct tag handling later
|
|
106
105
|
base.api.routes.push({
|
|
107
|
-
match: `/portals/portals/${manifest.
|
|
106
|
+
match: `/portals/portals/${manifest.name}{@:tag}`,
|
|
108
107
|
middleware: async (_req, res) => {
|
|
109
108
|
res.writeHead(200, {
|
|
110
109
|
'content-type': 'application/json',
|
|
@@ -113,7 +112,7 @@ const applyPortalRouting = (base, manifest, config) => {
|
|
|
113
112
|
},
|
|
114
113
|
});
|
|
115
114
|
base.api.routes.push({
|
|
116
|
-
match: `/portals/portals/${manifest.
|
|
115
|
+
match: `/portals/portals/${manifest.name}{@:tag}/config`,
|
|
117
116
|
middleware: async (_req, res) => {
|
|
118
117
|
res.writeHead(200, {
|
|
119
118
|
'content-type': 'application/json',
|
|
@@ -149,7 +148,6 @@ export const createDevServerConfig = (options) => {
|
|
|
149
148
|
};
|
|
150
149
|
},
|
|
151
150
|
},
|
|
152
|
-
server: options.server,
|
|
153
151
|
};
|
|
154
152
|
if (options.app) {
|
|
155
153
|
applyAppRouting(config, options.app.manifest, options.app.config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-dev-server.js","sourceRoot":"","sources":["../../../../src/bin/utils/create-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,eAAe,IAAI,iBAAiB,GAIrC,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-dev-server.js","sourceRoot":"","sources":["../../../../src/bin/utils/create-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,eAAe,IAAI,iBAAiB,GAIrC,MAAM,sCAAsC,CAAC;AAyC9C;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,CAC9B,SAAsC,EACA,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE;QACN,EAAE,EAAE,sCAAsC;KAC3C;IACD,KAAK,EAAE,mBAAmB;IAC1B,gBAAgB,EAAE;QAChB,GAAG,EAAE,mBAAmB;QACxB,MAAM,EAAE,CAAC,+CAA+C,CAAC;KAC1D;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,sCAAsC;QAChD,QAAQ,EAAE,sCAAsC;QAChD,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,MAAM;KACrB;IACD,aAAa,EAAE;QACb,kBAAkB;QAClB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,aAAa;gBAClB,OAAO,EAAE,mBAAmB;gBAC5B,MAAM,EAAE,CAAC,+CAA+C,CAAC;aAC1D;YACD;gBACE,GAAG,EAAE,aAAa;gBAClB,OAAO,EAAE,mBAAmB;gBAC5B,MAAM,EAAE,CAAC,+CAA+C,CAAC;aAC1D;SACF;KACF;IACD,qCAAqC;IACrC,GAAG,SAAS;CACb,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,IAAsB,EAAE,QAAqB,EAAE,MAAqB,EAAE,EAAE;IAC/F,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;IAEvB,0BAA0B;IAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,sBAAsB,MAAM,IAAI,KAAK,CAAC,OAAO,QAAQ;QAC5D,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,IAAgB,CAAC;YAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;gBACtC,IAAI,EAAE,CAAC;YACT,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,wBAAwB;gBACxC,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aACnC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,yBAAyB,MAAM,EAAE;QACxC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,EAAE,yBAAyB;gBAC7B,GAAG,QAAQ;aACZ,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,cAAc,MAAM,WAAW,KAAK,CAAC,OAAO,SAAS;QAC5D,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,CACzB,IAAsB,EACtB,QAAwB,EACxB,MAAoB,EACpB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;IAEvB,+CAA+C;IAE/C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,oBAAoB,QAAQ,CAAC,IAAI,SAAS;QACjD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,oBAAoB,QAAQ,CAAC,IAAI,gBAAgB;QACxD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACvE,MAAM,MAAM,GAAqB;QAC/B,GAAG,EAAE;YACH,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACvD;QACD,GAAG,EAAE;YACH,mBAAmB,EACjB,iFAAiF;YACnF,eAAe,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;gBACvC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC9D,OAAO;oBACL,4DAA4D;oBAC5D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;wBAChB,GAAG,EAAE,SAAS;wBACd,IAAI,EAAE,uBAAuB;wBAC7B,GAAG,EAAE,sBAAsB;qBAC5B,CAAC;oBACF,MAAM;iBACP,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAe,EACf,OAA+B,EAC/B,SAAsB,EACtB,EAAE;IACF,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
|
@@ -50,13 +50,13 @@ export const createPortalManifestFromPackage = (env, packageJson) => {
|
|
|
50
50
|
assert(packageJson.name, 'expected [name] in packageJson');
|
|
51
51
|
assert(packageJson.version, 'expected [version] in packageJson');
|
|
52
52
|
// Determine the entry point for the portal based on environment (prod/dev)
|
|
53
|
-
const
|
|
54
|
-
// Extract
|
|
55
|
-
// Example: '@scope/
|
|
53
|
+
const templateEntry = resolvePortalEntryPoint(env, packageJson);
|
|
54
|
+
// Extract portal id from package name by removing the scope and leading @
|
|
55
|
+
// Example: '@scope/portal-name' -> 'portal-name'
|
|
56
56
|
const name = packageJson.name.replace(/^@|\w.*\//gm, '');
|
|
57
57
|
const version = packageJson.version;
|
|
58
58
|
// Only set assetPath when not building for production (used for dev/preview)
|
|
59
|
-
const assetPath = env.command === 'build' ? undefined :
|
|
59
|
+
const assetPath = env.command === 'build' ? undefined : '/@fs';
|
|
60
60
|
// Attempt to resolve GitHub repo from package, fallback to local git remote
|
|
61
61
|
const githubRepo = resolveRepoFromPackage(packageJson) ?? resolveGitRemoteUrl();
|
|
62
62
|
// Construct the portal manifest object with all required fields
|
|
@@ -65,7 +65,7 @@ export const createPortalManifestFromPackage = (env, packageJson) => {
|
|
|
65
65
|
displayName: packageJson.name,
|
|
66
66
|
description: packageJson.description || '',
|
|
67
67
|
build: {
|
|
68
|
-
templateEntry
|
|
68
|
+
templateEntry,
|
|
69
69
|
schemaEntry: 'portal.schema.json',
|
|
70
70
|
assetPath,
|
|
71
71
|
githubRepo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/create-portal-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAI3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,uBAAuB,GAAG,CAAC,GAAe,EAAE,WAAwB,EAAU,EAAE;IACpF,gFAAgF;IAChF,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC7C,qEAAqE;QACrE,OAAO,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,IAAI,gBAAgB,CAAC;IACpE,CAAC;IACD,iEAAiE;IACjE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,GAAe,EACf,WAAwB,EACR,EAAE;IAClB,2EAA2E;IAC3E,YAAY,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAClD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAEjE,2EAA2E;IAC3E,MAAM,
|
|
1
|
+
{"version":3,"file":"create-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/create-portal-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { PortalManifestSchema } from './portal-manifest.schema.js';
|
|
|
6
6
|
* @template T - The type of the portal manifest, extending Partial<PortalManifest>. Defaults to PortalManifest.
|
|
7
7
|
* @param env - The runtime environment containing configuration such as the root directory and environment name.
|
|
8
8
|
* @param options - Optional settings for loading the manifest.
|
|
9
|
-
* @returns A promise that resolves to a `
|
|
9
|
+
* @returns A promise that resolves to a `LoadPortalManifestResult<T>` containing the loaded manifest, the file path, and the file extension.
|
|
10
10
|
*
|
|
11
11
|
* This function is the main entry point for loading portal manifest files. It supports merging with a base manifest, custom file name suggestions, and extension filtering.
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAuDnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAAe,EACf,OAAsC,
|
|
1
|
+
{"version":3,"file":"load-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAuDnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAAe,EACf,OAAsC,EACA,EAAE;IACxC,iGAAiG;IACjG,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAE/F,+EAA+E;IAC/E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;QACnD,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,iDAAiD;QACpE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,2CAA2C;QAC5E,MAAM,EAAE;YACN,uCAAuC;YACvC,OAAO,EAAE,KAAK,EAAE,MAA4C,EAAc,EAAE;gBAC1E,0EAA0E;gBAC1E,MAAM,IAAI,GAAM,OAAO,EAAE,IAAI,IAAK,EAAQ,CAAC;gBAC3C,uFAAuF;gBACvF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,+EAA+E;oBAC/E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;oBAC7D,OAAO,MAAM,IAAI,IAAI,CAAC;gBACxB,CAAC;gBACD,mEAAmE;gBACnE,OAAQ,MAAM,CAAC,OAAa,IAAI,IAAI,CAAC;YACvC,CAAC;SACF;KACF,CAAC,CAAC;IAEH,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAW,CAAC;IAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
/**
|
|
2
3
|
* Zod schema for validating the build section of the PortalManifest object.
|
|
3
4
|
*
|
|
@@ -7,7 +8,6 @@
|
|
|
7
8
|
* - Maintainers: Update this schema if the build contract changes.
|
|
8
9
|
* - This schema is the canonical source for portal build validation and structure.
|
|
9
10
|
*/
|
|
10
|
-
import { z } from 'zod';
|
|
11
11
|
export const PortalManifestBuildSchema = z.object({
|
|
12
12
|
// Main entry point for the portal (required)
|
|
13
13
|
templateEntry: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-manifest.schema.js","sourceRoot":"","sources":["../../../../src/lib/portal/portal-manifest.schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"portal-manifest.schema.js","sourceRoot":"","sources":["../../../../src/lib/portal/portal-manifest.schema.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.js
CHANGED