Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@equinor/fusion-framework-cli

Package Overview
Dependencies
Maintainers
0
Versions
284
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@equinor/fusion-framework-cli - npm Package Compare versions

Comparing version 10.0.0-alpha-2e0570c4bda6180049fc0620aa03048d737e5831 to 10.0.0-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521

dist/bin/public/assets/index-jTM3B4Be.js

4

dist/bin/build-application.js

@@ -38,8 +38,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

viteConfig.build.outDir = outDir.trim();
spinner.attachConsole = true;
console.log('Building application...');
const viteBuild = yield build(viteConfig);
spinner.attachConsole = false;
return {
viteConfig,
viteBuild,
pkg,
};
});
//# sourceMappingURL=build-application.js.map

14

dist/bin/bundle-application.js

@@ -13,7 +13,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { mkdir } from 'node:fs/promises';
import { loadPackage } from './utils/load-package.js';
import { chalk, formatByteSize, formatPath } from './utils/format.js';
import { Spinner } from './utils/spinner.js';
import { buildApplication } from './build-application.js';
import createExportManifest from './create-export-manifest.js';
import { createBuildManifest } from './create-export-manifest.js';
import { fileExistsSync } from '../lib/utils/file-exists.js';

@@ -23,10 +22,8 @@ export const bundleApplication = (options) => __awaiter(void 0, void 0, void 0, function* () {

const spinner = Spinner.Global({ prefixText: chalk.dim('pack') });
const pkg = yield loadPackage();
spinner.start('build application');
yield buildApplication({ outDir });
const { pkg } = yield buildApplication({ outDir });
spinner.succeed();
spinner.start('generate manifest');
const manifest = yield createExportManifest({ outputFile: `${outDir}/app-manifest.json` });
spinner.succeed();
console.log(chalk.dim(JSON.stringify(manifest, undefined, 2)));
const buildManifest = yield createBuildManifest({ outputFile: `${outDir}/app-manifest.json` });
spinner.succeed('generated manifest:', '\n' + JSON.stringify(buildManifest, undefined, 2));
const bundle = new AdmZip();

@@ -59,5 +56,4 @@ bundle.addLocalFile(pkg.path);

bundle.writeZip(archive);
spinner.info(formatPath(archive), formatByteSize(archive));
spinner.succeed();
spinner.succeed('Bundle complete', formatPath(archive, { relative: true }), formatByteSize(archive));
});
//# sourceMappingURL=bundle-application.js.map

@@ -26,10 +26,46 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

};
export const createExportManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const { command = 'build', outputFile } = options !== null && options !== void 0 ? options : {};
const spinner = Spinner.Global({ prefixText: chalk.dim('manifest') });
export const createAppManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
Spinner.Global({ prefixText: chalk.dim('app manifest') });
const manifest = yield createManifest(options);
if (options === null || options === void 0 ? void 0 : options.outputFile) {
yield writeManifestToDisk(manifest, options.outputFile);
}
else {
console.log(JSON.stringify(manifest, undefined, 2));
}
return manifest;
});
export const createBuildManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
Spinner.Global({ prefixText: chalk.dim('build manifest') });
const { build } = yield createManifest(options);
if (options === null || options === void 0 ? void 0 : options.outputFile) {
yield writeManifestToDisk(build, options.outputFile);
}
else {
console.log(JSON.stringify(build, undefined, 2));
}
return build;
});
const writeManifestToDisk = (content, outputFile) => __awaiter(void 0, void 0, void 0, function* () {
const spinner = Spinner.Clone();
spinner.start(`Exporting manifest to ${formatPath(outputFile)}`);
try {
const dir = dirname(outputFile).trim();
if (!nodeFs.existsSync(dirname(outputFile))) {
nodeFs.mkdirSync(dir, { recursive: true });
}
yield writeFile(outputFile, JSON.stringify(content));
spinner.succeed();
}
catch (err) {
spinner.fail();
throw err;
}
});
const createManifest = (options) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b;
const pkg = yield loadPackage();
const env = {
command,
mode: (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development',
command: (_a = options === null || options === void 0 ? void 0 : options.command) !== null && _a !== void 0 ? _a : 'build',
mode: (_b = process.env.NODE_ENV) !== null && _b !== void 0 ? _b : 'development',
root: pkg.root,

@@ -40,23 +76,4 @@ };

});
if (outputFile) {
spinner.start(`outputting manifest to ${formatPath(outputFile)}`);
try {
const dir = dirname(outputFile).trim();
if (!nodeFs.existsSync(dirname(outputFile))) {
nodeFs.mkdirSync(dir, { recursive: true });
}
yield writeFile(outputFile, JSON.stringify(manifest));
spinner.succeed();
}
catch (err) {
spinner.fail();
throw err;
}
}
else {
console.log(manifest);
}
return manifest;
});
export default createExportManifest;
//# sourceMappingURL=create-export-manifest.js.map

@@ -16,3 +16,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { formatPath, chalk } from './utils/format.js';
import createExportManifest from './create-export-manifest.js';
import { createAppManifest, createBuildManifest } from './create-export-manifest.js';
import { bundleApplication } from './bundle-application.js';

@@ -52,2 +52,12 @@ import { createExportConfig } from './create-export-config.js';

}));
app.command('manifest')
.description('Generate manifest')
.option('-o, --output <string>', 'output file')
.option('-c, --config <string>', 'manifest config file')
.action((opt) => {
createAppManifest({
outputFile: opt.output,
configFile: opt.config,
});
});
app.command('build')

@@ -67,7 +77,7 @@ .description('Builds application')

}));
app.command('config')
app.command('build-config')
.description('Generate config')
.option('-o, --output <string>', 'output file')
.option('-c, --config <string>', 'application config file')
.option('-p, --publish <string>', `Publish app config to version [${chalk.yellowBright('(semver | current | latest | preview)')}]`)
.option('-p, --publish <string>', `Publish app config to version [${chalk.yellowBright('(semver | current | latest | preview)')}]`, 'current')
.option('-e, --env, <ci | fqa | tr | fprd>', 'Fusion environment to build api urls from. used when publishing config.')

@@ -84,3 +94,3 @@ .option('-s, --service, <string>', 'Define uri to custom app service. You can also define the env variable CUSTOM_APPAPI to be used on all publish commands. the --env parameter is ignored when set')

});
app.command('manifest')
app.command('build-manifest')
.description('Generate manifest')

@@ -90,3 +100,3 @@ .option('-o, --output <string>', 'output file')

.action((opt) => {
createExportManifest({
createBuildManifest({
outputFile: opt.output,

@@ -96,3 +106,3 @@ configFile: opt.config,

});
app.command('pack')
app.command('build-pack')
.description('Create distributable app bundle of the application')

@@ -105,3 +115,3 @@ .option('-o, --outDir, <string>', 'output directory of package', 'dist')

}));
app.command('publish')
app.command('build-publish')
.description('Publish application to app api')

@@ -115,3 +125,3 @@ .option('-t, --tag, <string>', `Tagname to publish this build as [${chalk.yellowBright('(latest | preview)')}]`, 'latest')

}));
app.command('upload')
app.command('build-upload')
.description('Upload packaged app bundle to app api')

@@ -125,3 +135,3 @@ .option('-b, --bundle, <string>', 'The packaged app bundle file to upload', 'app-bundle.zip')

}));
app.command('tag')
app.command('build-tag')
.description('Tag a published version')

@@ -128,0 +138,0 @@ .option('-t, --tag, <string>', `Tag the published version with tagname [${chalk.yellowBright('(latest | preview)')}]`, 'latest')

@@ -17,2 +17,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

spinner.start('create application configuration');
spinner.info(`generating config with ${chalk.red.dim(env.command)} command in ${chalk.green.dim(env.mode)} mode`);
const baseAppConfig = createAppConfigFromPackage(pkg);

@@ -19,0 +20,0 @@ const appConfig = yield createAppConfig(env, baseAppConfig, { file: options === null || options === void 0 ? void 0 : options.file });

@@ -12,5 +12,5 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { formatPath, chalk } from './format.js';
import { createManifest, createManifestFromPackage, } from '../../lib/app-manifest.js';
import { createManifest, createManifestFromPackage } from '../../lib/app-manifest.js';
export const loadAppManifest = (env, pkg, options) => __awaiter(void 0, void 0, void 0, function* () {
const spinner = Spinner.Current;
const spinner = Spinner.Clone();
try {

@@ -22,11 +22,12 @@ spinner.start('create application manifest');

if (env.mode !== 'development') {
baseManifest.entryPoint = pkg.packageJson.type === 'module' ? 'app-bundle.js' : 'app-bundle.mjs';
baseManifest.build.entryPoint =
pkg.packageJson.type === 'module' ? 'app-bundle.js' : 'app-bundle.mjs';
}
spinner.info(`generating manifest with ${chalk.red.dim(env.command)} command in ${chalk.green.dim(env.mode)} mode`);
const manifest = yield createManifest(env, baseManifest, { file: options === null || options === void 0 ? void 0 : options.file });
spinner.succeed();
if (options === null || options === void 0 ? void 0 : options.file) {
spinner.info(`generating manifest from ${formatPath(options.file, { relative: true })}`);
if (manifest.path) {
spinner.succeed(`Created manifest from ${formatPath(manifest.path, { relative: true })}`);
}
else {
spinner.info(chalk.dim('no local manifest config applied, using default generated'));
spinner.succeed(chalk.dim('no local manifest config applied, using default generated'));
}

@@ -33,0 +34,0 @@ return manifest;

@@ -15,2 +15,3 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {

const parseArgs = (args) => args.length ? args.join(' ') : undefined;
const originalConsole = console;
export class Spinner {

@@ -20,2 +21,11 @@ get ora() {

}
set attachConsole(value) {
if (value) {
console.log = this.info.bind(this);
console.info = this.info.bind(this);
}
else {
console = originalConsole;
}
}
static Global(options) {

@@ -22,0 +32,0 @@ _spinner = new Spinner(options);

@@ -41,5 +41,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

export const createAppConfig = (env, base, options) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const resolved = yield resolveAppConfig(options);
if (resolved) {
const config = yield initiateConfig(resolved.config, env, { base });
const config = (_a = (yield initiateConfig(resolved.config, env, { base }))) !== null && _a !== void 0 ? _a : {};
assertAppConfig(config);

@@ -46,0 +47,0 @@ return { config, path: resolved.path };

@@ -10,7 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

};
import deepmerge from 'deepmerge';
import deepMerge from 'deepmerge';
import { execSync } from 'node:child_process';
import { resolveEntryPoint } from './app-package.js';
import { resolveAppKey, resolveEntryPoint, } from './app-package.js';
import { loadConfig, initiateConfig, resolveConfig, } from './utils/config.js';
import { AssertionError, assert, assertObject } from './utils/assert.js';
import { parse as parseSemver } from 'semver';
/** base filename for configuration files */

@@ -38,3 +39,6 @@ export const manifestConfigFilename = 'app.manifest.config';

export function assertAppManifest(value) {
var _a;
assert(value, 'expected manifest');
assert(value.build, 'expected build');
assert(parseSemver((_a = value.build) === null || _a === void 0 ? void 0 : _a.version), 'invalid version');
// TODO make assertions

@@ -64,3 +68,3 @@ }

export const mergeManifests = (base, overrides) => {
const manifest = deepmerge(base, overrides);
const manifest = deepMerge(base, overrides);
assertAppManifest(manifest);

@@ -119,10 +123,15 @@ return manifest;

const manifest = {
version: packageJson.version,
entryPoint,
timestamp: new Date().toISOString(),
githubRepo: resolveGithubRepo(packageJson),
commitSha: resolveGitCommitSha(),
projectPage: packageJson.homepage,
appKey: resolveAppKey(pkg.packageJson),
displayName: packageJson.name,
description: packageJson.description,
keywords: packageJson.keywords,
build: {
entryPoint,
version: packageJson.version,
timestamp: new Date().toISOString(),
githubRepo: resolveGithubRepo(packageJson),
commitSha: resolveGitCommitSha(),
projectPage: packageJson.homepage,
},
};
assertAppManifest(manifest);
return manifest;

@@ -133,3 +142,4 @@ };

if (resolved) {
const manifest = yield initiateConfig(resolved.config, env, { base });
const configuredManifest = yield initiateConfig(resolved.config, env, { base });
const manifest = deepMerge(base, configuredManifest !== null && configuredManifest !== void 0 ? configuredManifest : {});
assertAppManifest(manifest);

@@ -136,0 +146,0 @@ return { manifest, path: resolved.path };

@@ -41,6 +41,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

.map((x) => relative(dirname(pkgPath), x))
.find((entry) => {
console.log(entry, existsSync(entry));
return existsSync(entry);
});
.find((entry) => existsSync(entry));
assert(entrypoint, 'failed to resolve entrypoint');

@@ -47,0 +44,0 @@ return entrypoint;

@@ -74,2 +74,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

}
default:
throw Error('unsupported file type');
}

@@ -76,0 +78,0 @@ });

@@ -35,5 +35,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

export const createAppViteConfig = (env, options) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const resolved = yield resolveViteConfig(options);
if (resolved) {
const config = yield initiateConfig(resolved.config, env);
const config = (_a = (yield initiateConfig(resolved.config, env))) !== null && _a !== void 0 ? _a : {};
return { config, path: resolved.path };

@@ -40,0 +41,0 @@ }

@@ -12,2 +12,3 @@ export declare const buildApplication: (options: {

viteBuild: import("rollup").RollupOutput | import("rollup").RollupOutput[] | import("rollup").RollupWatcher;
pkg: import("../lib/app-package.js").ResolvedAppPackage;
}>;
import { ConfigExecuterEnv } from '../lib/utils/config.js';
import type { AppManifestExport } from '../lib/app-manifest.js';
import type { AppManifest } from '@equinor/fusion-framework-module-app';
export declare const normalizeVersion: (version: string) => {

@@ -8,7 +8,10 @@ major: number;

};
export declare const createExportManifest: (options?: {
command?: ConfigExecuterEnv["command"];
type CreateManifestOptions = {
command?: ConfigExecuterEnv['command'];
configFile?: string;
outputFile?: string;
}) => Promise<AppManifestExport>;
export default createExportManifest;
onlyBuild?: boolean;
};
export declare const createAppManifest: (options?: CreateManifestOptions) => Promise<AppManifest>;
export declare const createBuildManifest: (options?: CreateManifestOptions) => Promise<import("@equinor/fusion-framework-module-app").AppBuildManifest | undefined>;
export {};
import { Plugin } from 'vite';
import { AppConfig, ApplicationManifest } from '@equinor/fusion-framework-app';
import { AppConfig, AppManifest } from '@equinor/fusion-framework-app';
import { ClientRequest, IncomingMessage, ServerResponse } from 'node:http';

@@ -29,3 +29,3 @@ /**

/** callback function for generating manifest for the application */
generateManifest: () => Promise<ApplicationManifest>;
generateManifest: () => Promise<AppManifest>;
};

@@ -32,0 +32,0 @@ };

@@ -1,2 +0,2 @@

import { AppManifestExport } from '../../lib/app-manifest.js';
import type { AppManifest } from '@equinor/fusion-framework-module-app';
import { type ConfigExecuterEnv } from '../../lib/utils/config.js';

@@ -7,5 +7,5 @@ import { type ResolvedAppPackage } from '../../lib/app-package.js';

}) => Promise<{
manifest: AppManifestExport;
manifest: AppManifest;
path?: string;
}>;
export default loadAppManifest;

@@ -5,2 +5,3 @@ import { Options, type Ora } from 'ora';

get ora(): Ora;
set attachConsole(value: boolean);
static Global(options?: Options): Spinner;

@@ -7,0 +8,0 @@ static Clone(spinner?: Spinner): Spinner;

@@ -9,3 +9,3 @@ import { type ResolvedConfig, type FindConfigOptions, ConfigExecuterEnv } from './utils/config.js';

base: AppConfig;
}) => AppConfig | Promise<AppConfig>;
}) => AppConfig | Promise<AppConfig | void> | void;
export type AppConfigExport = AppConfig | AppConfigFn;

@@ -12,0 +12,0 @@ export declare const appConfigFilename = "app.config";

import { ResolvedAppPackage } from './app-package.js';
import { type FindConfigOptions, type ResolvedConfig, ConfigExecuterEnv } from './utils/config.js';
import { RecursivePartial } from './utils/types.js';
export type AppManifestExport = {
version: string;
entryPoint: string;
timestamp?: string;
commitSha?: string;
githubRepo?: string;
projectPage?: string;
annotations?: Record<string, string>;
allowedExtensions?: string[];
};
import { AppManifest } from '@equinor/fusion-framework-module-app';
export type AppManifestFn = (env: ConfigExecuterEnv, args: {
base: AppManifestExport;
}) => AppManifestExport | Promise<AppManifestExport>;
base: AppManifest;
}) => AppManifest | Promise<AppManifest | void> | void;
type FindManifestOptions = FindConfigOptions & {

@@ -41,3 +32,3 @@ file?: string;

export declare const defineAppManifest: (fn: AppManifestFn) => AppManifestFn;
export declare function assertAppManifest(value: AppManifestExport): asserts value;
export declare function assertAppManifest(value: AppManifest): asserts value;
/**

@@ -52,5 +43,5 @@ * @example

*/
export declare const mergeManifests: (base: RecursivePartial<AppManifestExport>, overrides: RecursivePartial<AppManifestExport>) => AppManifestExport;
export declare const mergeManifests: (base: RecursivePartial<AppManifest>, overrides: RecursivePartial<AppManifest>) => AppManifest;
/** loads manifestFn from file */
export declare const loadManifest: (filename?: string) => Promise<import("./utils/config.js").ConfigExecuter<AppManifestExport, import("./utils/config.js").ConfigExecuterArgs>>;
export declare const loadManifest: (filename?: string) => Promise<import("./utils/config.js").ConfigExecuter<AppManifest, import("./utils/config.js").ConfigExecuterArgs>>;
/**

@@ -63,7 +54,7 @@ * tries to resolve manifest

}) => Promise<ResolvedConfig<AppManifestFn> | void>;
export declare const createManifestFromPackage: (pkg: ResolvedAppPackage) => AppManifestExport;
export declare const createManifest: (env: ConfigExecuterEnv, base: AppManifestExport, options?: FindManifestOptions) => Promise<{
manifest: AppManifestExport;
export declare const createManifestFromPackage: (pkg: ResolvedAppPackage) => AppManifest;
export declare const createManifest: (env: ConfigExecuterEnv, base: AppManifest, options?: FindManifestOptions) => Promise<{
manifest: AppManifest;
path?: string;
}>;
export {};
import { PackageJson, type NormalizeOptions as ResolveAppPackageOptions } from 'read-package-up';
import { ApplicationManifest } from '@equinor/fusion-framework-module-app';
import { AppManifest } from '@equinor/fusion-framework-module-app';
export type AppPackageJson = PackageJson & {
manifest?: ApplicationManifest;
manifest?: AppManifest;
};

@@ -6,0 +6,0 @@ type DefinePackageFn = () => AppPackageJson | Promise<AppPackageJson>;

@@ -31,3 +31,3 @@ import { Options } from 'find-up';

export declare const loadConfig: <TType>(file: string) => Promise<ConfigExecuter<TType>>;
export declare function initiateConfig<TConfig extends ConfigExecuter>(config: TConfig, ...args: Parameters<TConfig>): Promise<ConfigExecuterType<TConfig>>;
export declare function initiateConfig<TConfig extends ConfigExecuter>(config: TConfig, ...args: Parameters<TConfig>): Promise<ConfigExecuterType<TConfig> | void>;
export default loadConfig;

@@ -11,3 +11,3 @@ import { type UserConfig, type UserConfigFn } from 'vite';

}) => Promise<{
config: UserConfig;
config?: UserConfig;
path?: string;

@@ -14,0 +14,0 @@ } | void>;

{
"name": "@equinor/fusion-framework-cli",
"version": "10.0.0-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"version": "10.0.0-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"keywords": [

@@ -68,17 +68,17 @@ "Fusion",

"typescript": "^5.5.4",
"@equinor/fusion-framework": "^7.2.7-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-app": "^9.1.8-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-bookmark": "^1.2.12-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-app": "^5.3.12-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-context": "^5.0.12-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-feature-flag": "^1.1.9-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-msal": "^3.1.5-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-navigation": "^4.0.7-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-module-services": "^4.1.4-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-react-components-bookmark": "^0.4.16-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-react-components-people-provider": "^1.4.7-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-react": "^7.2.2-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-framework-react-module-bookmark": "^2.1.16-alpha-2e0570c4bda6180049fc0620aa03048d737e5831",
"@equinor/fusion-query": "^5.1.3",
"@equinor/fusion-observable": "^8.4.1"
"@equinor/fusion-framework-app": "^9.1.8-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-app": "^6.0.0-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework": "^7.2.7-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-bookmark": "^1.2.12-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-context": "^5.0.12-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-msal": "^3.1.5-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-feature-flag": "^1.1.9-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-navigation": "^4.0.7-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-module-services": "^4.1.4-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-react-components-bookmark": "^0.4.16-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-react-components-people-provider": "^1.4.7-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-react": "^7.2.2-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-framework-react-module-bookmark": "^2.1.16-alpha-52e7df9067d9a1af015e2e6f0af2a5bcfb49f521",
"@equinor/fusion-observable": "^8.4.1",
"@equinor/fusion-query": "^5.1.3"
},

@@ -85,0 +85,0 @@ "scripts": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc